关于初学者而言,FPGA的规划流程是否显的“又臭又长”呢??嗬嗬,假如真的有这样的感觉,没有关系,下面我就经过对软体的运用来了解FPGA的规划流程。
1)运用synplify pro对硬件描绘言语编译并生成netlist
归纳前要留意对器材的挑选,办法是在project-》implementaTIon opTIon中对要下载的器材和网表的生成状况进行挑选。归纳后的网表有两种: RTL级网表和门级网表(gate netlist),经过对网表的剖析能够对规划的完成办法有开始的了解,并剖析其间的过错和不合理的当地,别的还能够对要害途径的delay和slack进行剖析。
运用synplify pro要先新建工程,留意修改作业目录,然后增加所要编译的文件,要留意top文件要最终一个增加,这样才能够确保生成的文件是以top文件来命名的
2)运用modelsim进行功用仿真
导入源程序和testbench进行仿真,并保存波形文件(.wlf)
3)运用quartusⅡ依据netlist进行布线,并进行时序剖析
在运用quartusⅡ前要做一些必要的设置,在assignments-》eda tools setTIng中的simulaTIon中挑选modelsim,并挑选选项run this tools automatically after compilation。假如没有提早做这些设置,能够quartus做完编译布线后,做相同的设置,然后运转EDA netlist writer和eda simulation tool
在运用synplify pro得到满足的netlist后,能够在synplify pro中经过option-》 quartusⅡ直接调用quartusⅡ,quartusⅡ对synplify pro生成的.vqm文件进行编译,布线。然后依据规划要求进行时序剖析和引脚调整。
4)运用modelsim进行布线后仿真
因为quartusⅡ提早做了设置,因此在编译布线完成后,会在作业目录下生成modelsim仿真所需求的文件和库(modelsim_work),在modelsim中将发生的文件和库地点的文件夹设置为当时目录,modelsim_work库会主动导入,新建工程会提示所运用的modelsim.ini文件,应运用quartus生成的,然后导入文件(包括testbench),进行编译,仿真的时分在library中增加modelsim_work库,在sdf选项中能够增加quartus生成的推迟信息文件.sdo,留意效果域的挑选,假如testbench中调用被测验模块的句子是send3a tb,那幺效果域应该写tb,在option挑选中能够挑选是否看代码覆盖率。别的,还能够将布线后的仿真成果与功用仿真的成果进行比照。下图便是小型Soc中send3a模块前后仿真的比照图
从图中能够看出,除了有必定的推迟外,输出波形不变。
5)将quartus的波形转化成testbench的办法:画好波形后,经过file-》export能够将波形输出到quatus的作业目录,verilog言语扩展名为.vt,修改为.v后能够在modelsim中运用,需求阐明的是假如波形中包括输出端口的话,输出的testbench包括叁个模块,一般状况下,只需将输入波形画好后,输出到testbench就
实践上,咱们能够看出,整个进程实践便是: 代码编写—》功用仿真—-》归纳—-》布局,布线—-》门级仿真—–》下载——》板子调试
这样一看,塬来HDL规划流程其实也很明晰和简略。。不是吗??