FPGA最小系统之:实例2 在Xilinx的FPGA开发板上运行第一个FPGA程序

时间:2013-08-15来源:网络

然后在进度浏览器的“Process View”对话框里面双击“View Generated Test Bench As HDL”图标,就能看见ISE根据刚才设置的波形文件自动生成的测试文件,如图2.93所示。

图2.93 生成的测试代码

在进度浏览器中双击【Generate Expected Simulation Result】,弹出两个对话框,都选择是(Y),将看见生成的预期输出波形,如图2.94所示。

图2.94 预期仿真波形

在进度浏览器中双击“Add Test Bench to Project”,将测试波形添加到工程里面。将会看到工程浏览器中test文件的图标由变成

如图2.95所示,在进度浏览器中双击“Simulate Behavioral Model”将对工程进行行为仿真,仿真结果如图2.96所示。

图2.95 运行功能仿真

图2.96 功能仿真结果

从图中可以看出功能仿真结果符合设计要求,可以继续进行下面的设计。如果此处仿真发现设计功能不符合要求,则要对原代码进行修改,直到仿真结果符合设计要求为止。

4.约束设计

在源程序输入完成以后,就可以设置约束,规划布局布线了。

约束有很多种:时序约束(Timing Constrains)、管脚约束(Assign Package Pins)以及面积约束(Area Const- raints)等。

如图2.97所示是ISE进度浏览器中包含的用户约束的选项。

图2.97 设置约束

(1)时序约束。

时需约束主要约束设计的时序和时钟频率,双击图2.97中的“Create Timing Constraints”图标,ISE将打开约束编辑器,如图2.98所示。

图2.98 时序约束界面

在约束编辑器里面有4个复选页,定义如表2.5所示。

表2.5 属性定义

属 性

定 义

Global

用于附加全局约束,包括周期约束,输入延迟约束和输出延迟约束

Ports

附加端口约束,可以对每一个端口进行单独设置,包括物理位置、输入延迟和输出延迟。同时,也可以设置分组,进行分组约束

Advanced

附加分组约束(TNM/TNM_NET/TIMEGRP)和时序约束(FROM_TO/TIG O/OFFSET)等

Misc

附加专用约束,包括电压、初始值等

注意

附加约束的原则是先加全局约束后加分组约束。

在本实例中只做简单的时钟约束。在clk的period中输入:20ns HIGH 50%,即设置时钟的周期和占空比。设置后保存,完成时序约束。

(2)管脚约束。

管脚约束即约束工程设计源文件与选定器件对应的输入/输出管脚属性。双击图2.97中的“Assign Package Pins”图标,ISE将打开PACE工具,如图2.99所示。

通过图2.99的“Design Object List”对话框里面的Loc列,可以为设计添加输入/输出管脚,添加形式为“Pxxx”或者“pxxx”。其中P/p代表Pin,xxx是数值。

(3)面积约束。

面积约束目的在于规划FPGA里面的逻辑使用大小。双击图2.97中的“Create Area Constraints”图标,ISE同样打开PACE工具,面积约束和管脚约束用的是一个界面。在面积约束里面我们可以对设计使用的资源面积加以规划,控制使用资源在FPGA里面的位置。

这里只使用到管脚约束,按照按键和LED灯与FPGA的连接,输入管脚分配,然后保存分配。在保存选项中,选择“XST Optional”,如图2.100所示,关闭对话框,完成约束设计。

图2.99 管脚约束工具PACE

图2.100 保存管脚约束结果

1 2 3 4 5 6

关键词: ISE7.1i FPGA Xilinx FPGA最小系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版