首页> 互助问答> 当前页

Altera FPGA培训的网上答疑CSIP

简介:

问:关于状态机,状态机编码中会存在我们用不到的状态,最好在定义状态时,全部列出,在我们利用attribute定义了状态编码类型的情况下,也需要这样做,是吗? 谢谢:)
答: 利用FPGA时最好采用一个有效(one hot)编码。但是设计有多少状态,只要列多少状态。利用attribute定义状态编码类型也是这样。
为了避免出现锁存(组合逻辑)和不合理的使能(时序电路),利用case或if then else语句前加确省语句,可以省去列出全部情况。

问:双口ram如何与Nios连接呢
答: 设计的VGA显示是NiosII的外设吗?如果是,就要通过驱动程序来存取数据。所以,可以考虑直接由FPGA驱动VGA显示,双口ram的数据直接加到显示器。

问:我在FPGA内设计了一个VGA显示电路,用双口RAM(3072byte,地址线12位,数据线8位)作为Video RAM使之成为显示电路和Nios系统的桥梁。请问双口RAM如何实例化?
答: 双口RAM可以利用IP核或调用模块来实例化。但是双口ROM只能通过IP核,因为要提供初始化文件。关于块RAM/ROM已有实验提供,可以参考来实现双口RAM/ROM.

问:请问如何把编译好的程序写入FLASH里面呢,请告诉详操作细步骤,谢谢了
答: 这个步骤取决于你使用的Nios II(以及Quartus II)的版本.以5.1及以上的版本是这样的。首先定义一个board scription 文件(只要完成Flash Flow就可以)然后把SOPC的target board选定为该文件。生成SOPC 系统然后用Quartus编译,下载这个.SOF 映象到FPGA中,然后在Nios II IDE中运行flash programmer tool 勾中要烧写的elf文件,就可以开始烧写。

问:在使用quartus2软件的sopc buider工具时,是否需要PC与网络连接,以便更新IP CORE?
答: 可以连上也可以不连上。IP core不会自动更新,只会提示有新版本更新。如果没连上网就不会提示。

问:Error (10482): VHDL error at dff.vhd(18): object "qtemp" is used but not declared这个问题如何解决呢
答: 这个错误的原因是信号"qtemp"没有在dff.vhd中定义,请对这个信号进行定义,问题就可以得到解决。

问:library ieee;
use ieee.std_logic_1164.all;
entity dff1 is
port (d, clk : in std_logic;
      q: out std_logic);
end dff1;
答: 对不起,我这里看不到你完整的代码。请检查一下qtemp在你的设计中是不是在定义前就使用了。

问:请问在PS2实验中,键盘输入的是ASCII码吗?是怎样译码成8421码的?能描述一下它们的转换过程吗?
答: 键盘输入是11位的时钟和代码,每一个键有自己的相应的8位代码,获得此8位代码即可译出是输入什么键。8位代码前有1位起始位,后面是校验位和停止位,共11位。所以不是ASCII码。

问:请问在什么地方增加对36MHz时钟的约束(针对刚才提的问题)
答: 在Assignments菜单下Assignment Editor下点击Timing然后进行设置。

问:信号qtemp定义过了啊
答: 能不能把你的VHDL代码贴过来?谢谢。