文档库 最新最全的文档下载
当前位置:文档库 › Verilog HDL程序设计

Verilog HDL程序设计

Verilog HDL程序设计
Verilog HDL程序设计

上机实验1:Verilog HDL程序设计

一、实验目的:

1.掌握Verilog HDL程序的设计方法

2.熟悉Quartus_II 9.0的安装

3.熟悉Quartus_II 9.0的使用

二、实验工具:Quartus_II 9.0

三、上机内容:

本上机实验采用Verilog HDL描述一个基本的数字逻辑单元(数据选择器、加法器、计数器等),在Quartus_II 9.0中进行仿真,并观察逻辑综合后得到的RTL图。

Verilog HDL是一种硬件描述语言(HDL: Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

模块是Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。一个模块可以在另一个模块中调用。

模块的定义从关键字module开始,到关键字endmodule结束,每条Verilog HDL语句以“;”做为结束(块语句、编译向导、endmodule等少数除外)。

一个完整的Verilog模块由以下五个部分组成:

1.模块定义行:module module_name (port_list);

2.说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性, 最好将所有的说明部分放在语句前。

说明部分包括:

寄存器,线网,参数:reg, wire, parameter

端口类型说明行:input, output, inout

函数、任务:function, task, 等

3.描述体部分:这是一个模块最重要的部分,在这里描述模块的行为和功能,子模块的调用和连接,逻辑门的调用,用户自定义部件的调用,初始态赋值,always块,连续赋值语句等等。

4.结束行,以endmodule结束,注意后面没有分号了。

在模块中,可用下述方式描述一个设计:

1) 数据流方式;

2) 行为方式;

3) 结构方式;

4) 上述描述方式的混合。

Quartus II是著名FPGA厂商Altera 公司提供的FPGA/CPLD开发集成环境,属于平台化设计工具。用户可以在Quartus II中实现整个数字集成电路的FPGA设计流程。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

四、实验步骤:

1. 新建项目工程

(1)先建一个文件夹。就在电脑本地硬盘找个地方建一个用于保存下一步工作中要产生的工程项目的文件夹,注意:文件夹的命名及其保存的路径中不能有中文字符。

(2)再开始建立新项目工程,方法如右图点击:【File】菜单,选择下拉列表中的【New Project Wizard...】命令,打开建立新项目工程的向导对话框。选择项目工程保存位置、定义项目工程名称以及设计文件顶层实体名称。第二栏(项目工程名称)和第三栏(设计实体名称)软件会默认为与之前建立的文件夹名称一致。没有特别需要,我们一般选择软件的默认,不必特意去修改。需要注意的是:以上名称的命名中不能出现中文字符,否则软件的后续工作会出错。完成以上命名工作后,点击Next,进入下一步。

第2步的工作是让你将之前已经设计好的工程文件添加到本项目工程里来,若没有之前设计好的文件,直接点Next,再进入下一步。

第3步的工作是让你选择好设计文件下载所需要的可编程芯片的型号,本实验中可任选一种,比如Cyclone ⅢEP3C40Q240C8。

第4步是让你选择第三方开发工具,如不需要,直接点击Next,进入下一步。

2. 新建设计文件

建立好一个新的项目工程后,接下来可以开始建立设计文件了。Quartus II软件可以用两种方法来建立设计文件,一种是利用软件自带的元器件库,以编辑电路原理图的方式来设计一个数字逻辑电路,另一种方法是应用硬件描述语言(如VHDL或Verilog)以编写源程序的方法来设计一个数字电路。

本实验采用Verilog HDL编写源程序。

(1)创建Verilog HDL文件

从File菜单中选择【New…】命令,打开新建设计文件对话框,如下图。

(2)编写Verilog HDL程序

(3)保存Verilog HDL文件

选择File—〉Save,要求文件与模块名称一致。

3. 项目工程编译

设计好的程序若要让软件能认识并检查设计的电路是否有错误,需要进行项目工程编译,Quartus II软件能自动程序进行编译和检查设计的正确性。方法如下:

在【Processing】菜单下,点击【Start Compilation】命令,或直接点击常用工具栏上

的按钮,开始项目。编译成功后,点击确定按钮。

4. 功能仿真

仿真是指利用QuartusII软件对所设计电路的逻辑功能进行验证,在进行仿真之前,需要先建立一个输入信号波形文件。方法和步骤如下:

(1)在【File】菜单下,点击【New】命令。在随后弹出的对话框中,切换到【Other Files】页。选中【Vector Waveform File】选项,点击OK按钮。

方的空白处双击鼠标左键,打开编辑输入、输出引脚对话框。

(3)在上图新打开的对话框中点击【Node Finder…】按钮,打开【Node Finder】对话框。点击【List】按钮,列出电路所有的端子。点击>>按钮,全部加入。点击OK按钮,

确认。

点击OK回到Insert Node or Bus对话框,再点击OK按钮,确认。

(4)设置输出参数,可根据实际情况设置,例如:

选择Edit—〉Endtime 1μs

选择View—〉Fit In Window

选择Edit—〉Gridsize—〉50ns

(5)为输入端口赋值。

(6)QuartusII软件集成了电路仿真模块,电路有两种模式:时序仿真和功能仿真,时序仿真模式按芯片实际工作方式来模拟,考虑了元器件工作时的延时情况,而功能仿真只是对设计的电路其逻辑功能是否正确进行模拟仿真。在验证所设计的电路是否正确时,常选择“功

能仿真”模式。将仿真模式设置为“功能仿真”模式,操作方法如下图所示:

(7)选择好“功能仿真”模式后,需要生成一个“功能仿真的网表文件”,方法是如下图,选择【Processing】菜单,点击【Generate Functional Simulation Netlist】命令。软件运行完成后,点击确定。

8)开始功能仿真,在【Processing】菜单下,选择【Start Simulation】启动仿真工具,

或直接点击常用工具栏上的按钮。仿真结束后,点击确认按钮。观察仿真结果,对比输

入与输出之间的逻辑关系是否符合电路的逻辑功能。

相关文档