简单功能仿真

掌握FPGA开发的一般流程学习基本外设的设计方法 NIOS II硬件系统的搭建→设计并DIY简单的项目 ……

把共性的东西用好以后再解决特性的问题,当然不能离开实际,在学的过程中动手操作。

一、Netlist Viewers

还是以上一次的HelloFPGA为例,Quartus II除了提供HDL语言的开发环境,还提供了Netlist Viewers工具便于通过可视化界面直观的理解HDL语言在各层的表现形式(如寄存器传送级)。

Netlist Viewer工具包括RTL Viewer、Technology Map Viewer和State Machine Viewer三种,其位置在Task栏中,可分别通过双击相应的图标获取该视图。也可在工具栏的Tools→Netlist Viewers中找到。

 

 

其中RTL Viewer可生成寄存器传送级电路,双击RTL Viewer,可看到RTL视图如下:

 

 

由于这个模块的逻辑结构十分简单,只是将按键信号取反控制LED,基本不需要可视化图形的帮助就能理解,但是一些复杂的工程就需要这些工具的辅助。通过左侧的Hierarchy栏,可以将了解每一层的组成。

 

 

RTL只相当于一种中间形式的描述结构,而Technology Map Viewer描述了代码综合后的实际电路结构,由于本例的结构十分简单,所以和实际电路形式与RTL视图相同。下面是一个四路选择器的Technology Map视图,内部结构已经展开:

 

 

我们可以看到,组合逻辑电路都是靠逻辑门的组合实现的,而这就是PLD器件的基本原理:所有组合逻辑都可以靠逻辑门电路加以实现,而所有时序电路可以靠触发器和逻辑门电路实现。

State Machine Viewer用于状态机,以后用到了再说。了解Verilog代码对应的RTL和硬件结构对于FPGA使用者来说十分重要,毕竟FPGA不仅仅是在使用语言和编写代码,而是在设计实际的硬件。

 

二、简单功能仿真

仿真的作用不消我说,这里说一下不用TestBench的简单功能仿真。通过点击 新建一个波形文件,保存为HelloFPGA.vwf。

 

 

在左侧的空白处点击右键,选择Insert Node or Bus,插入要仿真的信号。

 

 

这里可以直接输入信号名称,我们选择Node Finder,使用查找工具。

 

 

Filter可以设置查找过滤,点击List显示可用的信号节点,通过下面的箭头选择要仿真的信号节点。

 

 

一路OK后,选中输入信号Key,这时候可以在右侧Key的时间轴中拖动选中一段时间,通过左侧工具栏进行置0、置1等操作。这里选择 将Key设置成时钟信号。

 

 

这里将信号终止时间设置为1us,将时钟周期设置为100ns。

 

 

Key信号就被设置成了一个周期100ns的时钟信号。

                                                                           

 

确认一下没有选择第三方的仿真工具,如下图。点 对工程进行编译,再点 进行仿真。

 

 

仿真结果如下,可以看到,LED信号对于Key信号会有延时存在延时。

 

 

通过Zoom选项放大缩小视图,在空白处右键选择Insert Time Bar插入时间条,将两个时间条拖到相应位置,可以看到延时为10ns左右。当然了,这个仿真工具只能在功能上验证波形的正确与否,更加复杂的仿真需要通过第三方工具来进行。

 

 

另外,仿真工具栏常用的功能如下,可以自己琢磨一下:

 

 

 

posted on 2012-12-26 16:43  smile、T  阅读(590)  评论(0)    收藏  举报

导航