当前位置:文档之家› FPGA设计实验指导书(2013)

FPGA设计实验指导书(2013)

《FPGA设计》实验指导书安全操作注意事项1、接插下载电缆前,请务必关闭实验箱开关,避免损坏下载电缆或实验箱器件。

2、操作过程中应防止静电。

3、保持实验箱和电路板的表面清洁。

4、小心轻放,避免不必要的硬件损伤或者人身受伤。

实验箱简介实验一简单组合逻辑设计一、实验目的和任务1、熟习Quartus II软件的使用;2、掌握用原理图输入法和硬件描述语言(Verilog HDL)两种方法来设计逻辑电路;3、通过电路的仿真及验证,进一步了解4选1数据选择器的功能;二、实验内容1、用原理图输入法来设计4选1数据选择器参照按图1-1所示来编辑完成4选1数据选择器的原理图输入,其中a、b、c、d 为数据输入端,sel[1]、sel[0]为控制输入端,q为4选1数据输出端。

存盘仿真后,观察仿真波形,以验证数据选择器的功能。

图1-1 4选1数据选择器原理图2、用Verilog HDL硬件描述语言来设计4选1数据选择器用QuartusII中的文本编辑器,编辑输入4选1数据选择器源程序:module m41( a, b, c, d, sel, q);input a,b,c,d;input [1:0]sel;output q;reg q;always @( sel)case(sel)2’b00: q=a;2’b01: q=b;2’b11: q=d; endcase endmodule程序中的a 、b 、c 、d 依然为数据输入端,sel[1]、sel[0]为控制输入端,q 为4选1数据输出端。

同样存盘后进行仿真,并观察仿真波形,以验证数据选择器的功能。

三、实验仪器、设备及材料电脑、EDA 软件、实验箱、下载电缆。

四、实验原理4选1数据选择器的原理框图及真值表如图1-2及表1-1所示,sel[1:0]可能出现四种组合情况: 00 01 10 11,它分别对应选通四个不同的数据输入a 、b 、c 、d ,从q 端输出。

结合以前所学数字电路的知识,可由真值表得出利用“与非门”实现的逻辑电路,进而可用QuartusII 原理图输入方法,设计出该4选1数据选择器;如应用EDA 技术所学的Verilog HDL 硬件描述语言来描述该电路功能,即可设计出该4选1数据选择器的源程序。

图1-2 4选1数据选择器的原理框图q Sel[1]输出选择输入0a 01b 00c 11d1Sel[0]表1-1 真值表五、重点、难点da b c件描述语言(Verilog HDL)两种方法来设计该逻辑电路。

其难点是要仿真出4选1数据选择器的波形,然后通过观测仿真波形,来验证该数据选择器的功能。

六、实验步骤(一)原理图输入法的设计步骤:(1)进入Windows 操作系统,双击Quartus II图标,启动软件。

1、单击File \ New Project Wizard菜单,输入文件名路径与设计项目的名字mux41,点击finish, 完成设计项目建立。

点击Assignment \ Device菜单,选择器件(本设计选用cyclone 系列的EP1C12Q240C8)。

2、启动菜单File \ New,选择Block Diagram/Schematic File,点OK,启动原理图编辑器。

画出图1-1(具体方法见后面说明)。

默认存盘名为mux41,保存。

(2)设计的输入1. 在原理图空白处双击,会出现元件选择对话框,在name处输入元件名,点OK完成元件放置。

依次放置4个三输入端与门(and3)、1个四输入端或门(or4),2个非门(not)器件、及6个输入端(input)、1个输入端(output)在原理图上;2. 添加连线到器件的管脚上把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标右键拖动,即可画出连线,参照图1连好相应元件的输入、输出脚。

3.保存原理图单击保存按钮。

原理图文件出现在红色箭头所指的地方。

(3)编译点击菜单栏上红色箭头所指的工具图标,完成编译。

图1-3 编译编译没有错误可以进行仿真。

点击 File \ New菜单。

选择other files中的vector waveform file。

画出输入波形,执行仿真命令,启动仿真并观察仿真波形,进行设计电路的功能验证。

点击开始仿真图1-4 新建波形文件的选择对话框(二)用Verilog HDL语言完成的设计步骤:(1)、运行Quartus II软件,先建立一个新的项目。

;(2)、启动File \ New菜单命令(如图1-5)(3)、选择verilog hdl file,点击OK后,键入上面“二、实验内容”中的程序。

(4)、以默认文件名和路径保存。

(5)参照原理图输入设计进行仿真,并观察仿真波形,以验证所设计电路的功能。

七、实验报告要求1. 对于原理图设计要求有设计过程。

2. 详细论述实验步骤。

八、实验注意事项1. 使用原理图设计时,其文件名[mux41.gdf]要与仿真的波形文件名[mux41.vwf]相同,只是文件的后缀不同;使用Verilog HDL语言设计时,其文件名(m4_1.V)要与模块名[module m4_1( a, b, c, d, sel, q);]相同,且仿真的波形文件名[m4_1.vwf]也要相同。

2. 用原理图输入法和Verilog HDL语言两种方法所做的设计,一定要建两个不同的工程,最好放在不同的目录中,且目录名不要出现中文字符。

3.在Waveform Editor仿真时,应先在菜单选项的Edit/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的Edit/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题1. 如何用设计好的4选1数据选择器,来实现8选1数据选择器的设计(用原理图输入法来设计),试给出设计与仿真的结果。

2.谈谈使用原理图输入法和Verilog HDL语言设计两种方法的优劣心得。

实验二组合逻辑电路设计一、实验目的1、继续学习Verilog HDL基本语法;2、巩固Quartus II环境下的Verilog HDL编程设计的基础二、主要仪器设备EDA实验系统1台PC机三、实验内容1、设计一个四线至二线编码器,其真值表如下:表2.1 四线至二线编码器的真值表2、设计一个2位信号的比较器,该比较器的电路符号如图2.1所示。

图2.1 比较器电路符号引脚说明:A、B皆为二位信号;CLK为时钟脉冲输入;RST为清除控制信号。

AGTB:当A>B时,其值为1,否则为0;AEQB:当A=B时,其值为1,否则为0;ALTB:当A<B时,其值为1,否则为0;3、设计一个八位全加器。

四、实验报告根据以上实验内容写出实验报告,包括程序设计,软件编译,管脚分配,硬件测试结果等内容。

实验三一般计数器的设计及ModelSim 仿真测试一、实验目的1、掌握一般计数器的设计方法;2、了解ModelSim 仿真测试方法。

二、主要仪器设备EDA实验系统1台PC机三、实验内容1、设计一个8421BCD十进制计数器,并将计数结果在LED或数码管上显示。

2、利用ModelSiml工具进行仿真测试。

四、ModelSim仿真步骤见参考资料《ModelSim操作简介》五、实验报告根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。

实验四时序逻辑电路设计一、实验目的理解触发器和计数器的概念,掌握时序器件的Verilog HDL语言程序设计的方法二、主要仪器设备EDA实验系统1台PC机三、实验内容设计以下内容:1、基本的D触发器;2、同步复位的D触发器;3、异步复位的D触发器;4、同步置位/复位的D触发器;5、设计一个简单的加法或减法计数器,并用LED或数码管显示四、实验报告根据以上实验内容写出实验报告,包括程序设计,管脚分配,用示波器观察D触发器波型;计数器用LED或数码管显示,并提交其仿真结果及分析。

实验五有限状态机(FSM)的设计一、实验目的1、了解FSM的应用范围和两种类型的不同特点;2、掌握FSM的电路结构和设计要点。

二、主要仪器设备EDA实验系统一台三、实验原理FSM适合于设计数字系统的控制模块。

用Verilog HDL的case/if-else等语句能很好地描述基于状态机的设计。

状态机可以认为是组合逻辑和时序逻辑的特殊组合。

时序逻辑部分用于存贮状态,组合电路用于状态译码和产生输出信号。

状态机的下一个状态不仅与输入信号有关,还与状态寄存器当前所处的状态有关。

状态机分为Mealy和Moore两种类型,前者的输出只是当前状态的函数,也就是状态的转换与输入信号无关,后者的输出则是当前状态和当前输入的函数,即状态的转换与输入信号有关。

状态机的表示方法:状态图、状态表和流程图。

四、实验内容检测一个5位二进制序列“10010”五、实验报告根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。

实验六基于模块多层次引用的结构化电路设计一、实验目的1、了解复杂电路与系统的“top-down”设计思想;2、掌握简单多层次电路的描述方法。

二、主要仪器设备EDA/SOPC实验系统1台三、实验原理1、多层次结构电路的设计复杂数字系统可采用“top-down”的方法进行设计:首先把系统分为几个模块,每个模块在分为几个子模块,依次类推,知道易于实现为止。

这种“top-down”的方法能够把复杂的设计分为许多简单的设计来实现,同时也适合于多人进行合作开发。

多层次结构电路的描述既可以采用文本方式,也可以采用图形和文本混合设计的方式。

被调用模块的指定方式:1)文件复制方式;2)使用`include语句;3)库管理方式。

2、设计实例分析这个实例的功能是将并行数据转化为串行数据送交外部电路编码,并将解码后得到的串行数据转化为并行数据交由CPU处理。

显而易见,这实际上是两个独立的逻辑功能,分别设计为独立的模块,然后再合并为一个模块显得目的明确、层次清晰。

模块源代码// ---------------- p_to_s.v ---------------------------------module p_to_s(D_in,T0,data,SEND,ESC,ADD_100);output D_in,T0; // D_in是串行输出,T0是移位时钟并给// CPU中断,以确定何时给出下个数据。

input [7:0] data; //并行输入的数据。

input SEND,ESC,ADD_100; //SEND、ESC共同决定是否进行并到串//的数据转化。

ADD_100决定何时置数。

wire D_in,T0;reg [7:0] DATA_Q,DATA_Q_buf;assign T0 = ! (SEND & ESC); //形成移位时钟。

相关主题