当前位置:文档之家› FPGA实验报告

FPGA实验报告

南京理工大学泰州科技学院FPGA系统设计实验报告教材名称:FPGA系统设计与应用开发指导教师:周莉莉实验室:4401学院(系):电子电气工程学院专业班级:10电信(1)班姓名:周根生朱守超学号:1002040149 1002040150实验学期:2013-2014学年第一学期总评成绩:教师签字:南京理工大学泰州科技学院FPGA系统设计实验报告目录实验一Max+plusII原理图设计输入 (1)实验二简单逻辑电路设计与仿真 (6)实验三组合逻辑电路设计(一) (11)实验四组合逻辑电路设计(二) (16)实验五有限状态机的设计 (26)实验六数字频率计 (32)南京理工大学泰州科技学院FPGA系统设计实验报告课程: FPGA系统设计班级:10电信1班姓名:周根生朱守超学号:10020401491002040150指导教师:周莉莉实验日期:实验题目:Max+plusII原理图设计输入成绩:一、设计任务采用原理图设计输入法,设计一个具有四舍五入功能的电路,其输入为4位二进制数,要求输入大于或等于0101时,电路输出为高电平,小于0101时电路输出为低电平。

二、设计过程根据设计要求列出四舍五入的真值表,如图1.1所示。

图1.1 四舍五入真值表由图1.1可得化简的表达式为OUT=A+BD+BC,由逻辑表达式可知,要设计的电路图有四个输入端(A,B,C,D)和一个输出端OUT,整个电路由两个2输入端的与门和一个3输入的或门组成。

启动MAX+plusII,新建Graphic Editor file文件,后缀为.gdf。

在编辑界面空白处双击左键,出现输入元件对话框如图1.2所示,在Symbol Name栏中直接输入元件的符号名OK,输入端(input),输出端(output),连接电路如图1.3所示。

图1.2 操作图1.3 原理图芯片型号选择单击Assign,选择Device,如图1.4所示。

图1.4 型号引脚命名双击PIN_NAME,使其变黑后输入引脚名,并保存文件然后编译,如图1.5所示。

图1.5 编译编译后,进行波形仿真如图1.6所示,在空白处右键,添加Enter Node from SNF,图1.7所示。

图1.6 新建波形图图1.7 步骤波形列出如图1.8所示,然后进行编译无误后可以修改引脚。

图1.8 波形图修改引脚如图所示图1.9所示。

图1.9 引脚图分配修改引脚后将接线联入到试验箱,进行下载仿真。

当拨动开关为0100时,输出的为灭即为0,但是当拨动到0101时,输出为亮即为1符合四舍五入的程序。

三、总结这个实验锻炼了我们对电路测试的动手能力。

对四舍五入电路测试时可以用四个拨码开关设置输入数据,输出端接发光二极管,若输出为高电平时发光二极管亮,则输出为低电平时发光二极管不亮,只要输入小于5,输出为低电平,大于等于5时输出为高电平。

则这个设计是合理的。

南京理工大学泰州科技学院FPGA系统设计实验报告课程:FPGA系统设计班级:10电信1班姓名:周根生朱守超学号:10020401491002040150指导教师:周莉莉实验日期:实验题目:简单逻辑电路设计与仿真成绩:一、设计任务1、学习并掌握MAX+PLUSⅡCPLD开发系统的基本操作。

2、学习在MAX+PLUSⅡ下设计简单逻辑电路与功能仿真方法。

分别用行为描述方式、数据流描述方式、结构化描述方式设计一位二进制的半加器。

二、设计过程一位二进制加法计数器设计与仿真1、开机,进入MAX+PLUSⅡ开发系统。

2、在工具条中选择新建文件,弹出NEW界面,在该界面中选择Text Edit File项,然后点击OK,进入文本编辑状态。

然后点击工具条中的保存按钮,在弹出的Save As 界面中选择后缀.VHD,并为当前的实验选择恰当的路径并创建项目名称。

3、编辑输入相应的程序代码。

4、在File菜单中选Project项,选择其中的Set Project to Current File,将项目设置为当前文件。

然后保存当前文件。

5、选择器件。

点击Assign 菜单的Device项,在弹出的Device界面中选择ACEX1K系列的EP1K10TC100-3。

注意界面中的Show Only Fastest Speed Grades 不要选中,否则显示不出该器件。

6、点击MAX+PlusII菜单下的Compiler进行编译,然后点击START按钮开始编译。

对编译的结果进行观察,如果出现错误或告警,检查输入的源代码排除语法错误并重新编译,重复此过程直到编译通过。

7、点击MAX+PLUSⅡ菜单下的Waveform Editor 子菜单出现Waveform Editor窗口。

点击鼠标右键,选择Enter Nodes From SNF子菜单,在Enter Nodes From SNF对话框中点击List 按钮、“=>”按钮和Ok按钮,填入电路节点名称。

8、在时钟输入端CLK处设置好方波脉冲,点击MAX+PLUSⅡ菜单下的Simulater子菜单,进行波形仿真以验证电路的逻辑功能。

9、硬件下载操作。

(按任务要求以及设计步骤写出程序代码或原理图、管脚分配情况、电路生成符号、仿真波形图等,以上步骤需要配图说明;说明下载到硬件实验箱中调试情况)(1)编写程序行为描述方式如图2.1所示。

图2.1行为描述法波形图如图2.2所示图2.2波形图修改管脚如图所示图2.3所示。

图2.3改管脚(2)编写程序数据流描述方式如图2.4所示。

图2.4数据流描述方式其波形图如图2.5所示。

图2.5波形图更改管脚如图2.6所示。

图2.6改管脚(3)结构化描述方式如图2.7所示。

And-gateXor-gate图2.7结构化描述其波形图如图2.8所示。

图2.8波形图其引脚修改如图2.9所示。

图2.9改引脚其电路生成符号为如图2.10所示。

图2.10电路生成符号通过将程序下载到实验箱上时我们可以将其连接到拨码开关中,将a,b,s,c连入对应的开关可以看到,当拨码为ab00时cs为00灭,ab01时cs为01,ab10时cs为01,ab为11是cs为10。

三、总结这个实验锻炼了我们编程和实际动手能力。

行为描述设计目标行为抽象程度高,程序编写简单,适用于大型的,复杂的模块型的设计项目。

数据流方式电路中的逻辑关系明了,适用于小型电路的设计项目。

结构化描述方式电路结构尤其是模块化结构清楚,可以用于模块化层次化设计中。

南京理工大学泰州科技学院FPGA系统设计实验报告课程:FPGA系统设计班级:10电信1班姓名:周根生朱守超学号:10020401491002040150指导教师:周莉莉实验日期:实验题目:组合逻辑电路设计(一)成绩:一、设计任务四舍五入判别电路1、简单信号赋值语句;2、条件信号赋值语句;自行画出真值表,求出逻辑表达式,写出对应程序,并仿真、下载验证三态门电路的实现使用IF语句完成三态门的设计。

在数字电路中,三态门电路是在普通门电路的基础上附加控制电路构成的。

顾名思义,三态门电路不但具有逻辑值0 和逻辑值1,而且还具有高阻态输出的第三种状态(或称禁止态)。

三态门主要用于可编程逻辑器件管脚的双向口设置,在后续实验中会涉及。

三态门电路的逻辑电路图3.1。

根据三态门的逻辑电路图和真值表,不难看出三态门电路的基本工作原理是:当控制端口的输入使能信号EN=‘1’,那么直接将输入端口的数据送到输出端口上;当控制端口的输入使能信号EN=‘0’,那么这时输出端口呈高阻状态。

如表3.1所示。

图3.1 三态门表3.1 三态门真值表二、设计过程如图所示其真值表为图3.2所示。

图3.2真值表用简单信号赋值语句进行描述的程序如图3.3所示。

图3.3简单信号赋值语句程序用条件信号赋值语句进行描述的程序如图3.4所示。

图3.4条件信号赋值语句程序用其进行波形仿真如图3.5所示。

图3.5波形图修改其引脚图如图3.6所示。

图3.6修改引脚图完成好后电路生成的符号如图3.7所示。

图3.7电路生成符号将其下载到实验箱上时,可以观察其变化。

当输入信号大于等于5时,输出信号为1,当输入信号小于5时,输出信号为0。

三态门电路的实现其程序如图3.8所示。

图3.8三态门程序其进行仿真可以得出其波形图如图3.9所示。

图3.9三态门波形图更改其管脚如图3.10所示。

图3.10改管脚其电路生成符号如图3.11所示图3.11电路生成符号三、总结在上面的四舍五入的两种程序中,结构体中用了条件赋值语句,虽然条件赋值语句比简单赋值语句复杂,但是条件赋值的设计过程比简单赋值简单,条件赋值中可以不列真值表,不必求逻辑方程,用行为描述方式以条件信号赋值语句来实现,使设计简单,更加明了。

南京理工大学泰州科技学院FPGA系统设计实验报告课程:FPGA系统设计班级:10电信1班姓名:周根生朱守超学号:10020401491002040150指导教师:周莉莉实验日期:实验题目:组合逻辑电路设计(二)成绩:一、设计任务1、加法计数器的实现;2、七段数码显示译码器的设计;3、数码管动态扫描电路;4、八位数码扫描显示电路的设计。

二、设计过程1.加法计数器的实现加法计数器的动作是,每次时钟脉冲信号c lk 为上升沿时,计数器会将计数值加1。

以图4.1为例,它是2bits 的计数器,所以计数值(由Q1Q0 组成),依次是0,1,2,3,0,1…,周而复始。

图4.1 二位加法计数器电路符号及相关波形步骤:1、新建一个VHDL文本文件;2、VHDL程序输入用VHDL设计一个四位十进制加法计数器,要求具有异步清零端 CLR、使能端 EN、时钟输入端 CLK、计数输出段Q[3..0]、进位输出端 C,数据类型std_logic。

实体名:counter。

3、对源程序进行语法检查和编译;4、波形仿真;其新建的程序如图下所示LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT(clk,en,clr:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c:OUT STD_LOGIC);END counter;ARCHITECTURE one OF counter ISSIGNAL QOUT:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(clk,en,clr)BEGINIF(CLR='0')THENQOUT<="0000";ELSIF(clk'event and clk='1')THENIF(en='1')THENIF QOUT=9 THENQOUT<="0000";c<='1';ELSEQOUT<=QOUT+1;c<='0';END IF;END IF;END IF;END PROCESS;q<=QOUT;END ONE;其波形图如图4.2所示。

相关主题