第一次下载和运行Quartus后,发现几个问题:
- 下载时安装易出现问题。
解决:在官网下载后,在开始破解;
- 运行程序出现警告;RTL波形时出现问题?
解决:testbench程序出错.
问题3:在视频中testbench程序加延时后有一个Sstop,但实际中加了不能出现仿真波形,删除就可以。
问题4:在2选一多路选择器中,前仿可以,但后仿出错。
解决:cyone v不能进行后仿真。
问题5:在38译码器中,前仿较为顺利,但是后仿时,芯片内型要换,要先进行运行;
后仿中波形会出现干扰。
为题5:前仿后仿区别?
解答:当用quartus进行仿真时,分为功能仿真(al)和时序仿真(TIming);
当用Modelsim-Altera时,分为功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。其中,功能仿真又称为前仿真,布局布线仿真又称为后仿真。
modelsim 是专门进行仿真的软件,可以分别进行前仿真和后仿真。前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与testbench。后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果抽象出来的门级网表、testbench和扩展为sdo或sdf的标准时延文件。sdo、sdf的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。
问题:语法规则详解
define:
可以跨模块的定义;
parameter:
本module内有效的定义,可用于参数传递;
localparam:
关于localparam,这个关键字书上很少会讲到。但是大公司的代码里经常会看到
本module内有效的定义,不可用于参数传递;localparam cannot be used within the module port parameter list.
一般情况下,状态机的参数都是用localparam的。
用来生成循环,生成维数可扩展的模块,localparam是局部参数,但它不能被重定义,也就是说在实例化的时候不能通过层次引用进行重定义,例如parameter可以通过#(参数)来进行重新定义,但是localparam不可以,只能通过源代码来改变。