《数字系统与fpga设计》实验指导书.docx

上传人:b****6 文档编号:6027352 上传时间:2023-01-03 格式:DOCX 页数:17 大小:155.20KB
下载 相关 举报
《数字系统与fpga设计》实验指导书.docx_第1页
第1页 / 共17页
《数字系统与fpga设计》实验指导书.docx_第2页
第2页 / 共17页
《数字系统与fpga设计》实验指导书.docx_第3页
第3页 / 共17页
《数字系统与fpga设计》实验指导书.docx_第4页
第4页 / 共17页
《数字系统与fpga设计》实验指导书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

《数字系统与fpga设计》实验指导书.docx

《《数字系统与fpga设计》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数字系统与fpga设计》实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。

《数字系统与fpga设计》实验指导书.docx

《数字系统与fpga设计》实验指导书

实验一设计输入(2学时)

一、实验要求

学习使用quartus2设计软件。

学习模块和原理图编辑器、文本编辑器使用,掌握模块图和原理图的输入方法,完成本讲实例my_design的模块图输入和原理图mux2的输入,并完成HDL模块my_dff.v的输入。

完成设计编译。

二、实验设备

PC机一台

QuartusⅡ5.1开发软件

三、设计步骤

1、使用QuartusⅡ5.1软件新建项目my_design。

选择File>NewProjectWizard…选项,输入新建项目名称my_design,单击next完成项目建立;

2、在File>New>Block/Schematicdocument选择DeviceDesignFiles进入模块编辑器,对mux2完成模块图和原理图输入;

3、选择HDL模块,利用文本编辑器完成my_dff.v的输入。

四、实验电路描述与实验结果

1、完成项目my_design的顶层设计(附设计图)。

 

2、对mux2完成模块图和原理图输入(附模块图和模块原理图)。

 

3、对my_dff.v进行HDL输入设计(附VerilogHDL程序)。

 

五、思考题

1、常用的设计输入的方法有哪些?

 

2、图表模块的输入设计流程是什么?

怎样实现模块图和原理图输入(写出具体步骤)。

 

3、在编译设计时有哪些需要注意的问题?

 

实验二简单电路仿真与IP定制(2学时)

一、实验要求

1、学习quartus2设计软件的仿真工具使用,掌握波形编辑器使用,建立my_design的激励波形输入文件,并完成其功能仿真。

2、宏模块的定制与仿真。

建立新工程,如my_design4。

学习quartus2的宏模块定制方法,用LPM宏定制10bit加法器、RAM和ROM,并完成它们的功能仿真。

二、实验设备

PC机一台

QuartusⅡ5.1开发软件

三、设计步骤

1、建立项目my_design,完成激励波形文件输入和仿真。

(1)在File菜单下,点击New命令,在随后弹出的对话框中,切换到OtherFiles页。

选中VectorWaveformFile选项,点击OK按钮进入波形编辑界面。

(2)在Edit菜单下,点击InsertNodeorBus命令。

(3)点击NodeFinder按钮,打开NodeFinder对话框。

点击List按钮,列出电路所有的端子。

点击>>按钮,全部加入。

点击OK按钮,确认。

(4)回到InsertNodeorBus对话框,点击OK按钮,确认。

(5)选中信号,在Edit菜单下,选择Value=>Clock…命令。

在随后弹出的对话框的Period栏目中设定参数,点击OK按钮。

(6)保存文件,在Processing菜单下,选择StartSimulation启动仿真工具。

仿真结束后,点击确认按钮,观察仿真结果。

2、完成10bit加法器的LPM宏定制(参见课件8bit加法器和教材第6章P321)。

3、对RAM和ROM进行宏定制(参见课件ROM使用和教材第6章P321)。

四、实验电路描述与实验结果

1、列出项目my_design的激励波形和仿真结果。

 

2、列出用LPM宏定制10bit加法器的仿真结果。

 

3、列出用LPM宏定制RAM和ROM的仿真结果。

 

五、思考题

1、QuartusⅡ5.1仿真平台由哪三部分组成,各自作用是什么?

 

2、什么是IP,如何进行分类?

 

3、如何进行宏模块定制,在使用上有何原则?

 

实验三8bit无符号数串行硬件乘法器模块设计和功能仿真(2学时)

一、实验要求

用一个8bit加法器串行相加实现,模块如下图。

完成模块设计和功能仿真。

输入输出说明:

Reset:

复位

Clk:

时钟

St:

启动信号

Done:

运算结束信号

Mul:

乘数

Muld:

被乘数

Product:

运算结果

二、实验设备

PC机一台

QuartusⅡ开发软件

三、实验原理:

1.模块体系结构

模块主要由三大部分构成,控制单元负责控制逻辑、移位累加器和加法计数器实现具体数据处理和数据路径。

 

2.乘法原理算法模型如下图:

 

四、实验步骤

1.使用quartus2设计软件建立工程文件。

由file>New>block/…进入,由模块实现选择进入。

2.使用verilog语言设计控制单元,用模块编辑器调用宏器件设计乘法器的移位累加器和加法计数器。

(参见课件第二讲模块编辑器内容)

3.根据设计要求建立仿真激励文件。

(参见课件第二讲Quartus2仿真工具内容)

4.编译定制乘法器模块,并在simulatortool中点击【Start】,运行仿真器进行功能仿真。

五、实验电路描述与实验结果

1.模块算法流程图及说明。

 

2.控制逻辑ASM图及说明及相关程序代码

 

3.功能仿真时序图。

 

六、思考题

1.在数字系统设计中,用户可以利用加入QuartusII提供的基本器件库(primitives)的器件来设计,也可以利用加入QuartusII提供的LPMs,宏功能函数(器件),以及用户自己用HDL构造的库函数来设计。

简述各种设计方法的优缺点。

 

2.分析自己的激励文件波形和功能仿真时序图,根据功能仿真结果说明你的设计是否正确?

给出理由。

 

实验四8bit无符号数串行硬件乘法器模块设计综合与FPGA实现(2学时)

一、实验要求

在完成“8bit无符号数串行硬件乘法器模块设计”的功能仿真基础上实现该模块,即分配芯片管脚,设置设计约束,综合实现该设计。

查看设计的资源使用情况,进一步查看静态时序分析报告,分析芯片管脚的建立、保持时间要求。

使用辅助设计工具查看设计实现结果,加深对设计的理解。

二、实验设备

PC机一台

QuartusⅡ开发软件

三、实验步骤

1.进入QuartusⅡ软件界面,选择Assignments>PinPlanner进入管脚编辑器,分配芯片管脚。

2.在QuartusⅡ软件界面的Assignments>TimeSetting中选择TimeRequirments&Option,设置时序约束输入。

(参见课件第四讲)

3.在QuartusⅡ软件界面的Assignments>Setting中选择Analysis&SynthesisSettings进行综合工具设置。

(参见课件第四讲)

4.在QuartusⅡ软件界面的Assignments>Setting中选择SynthesisNetlistOptimazitions进行综合网表的优化。

(参见课件第四讲)

5.在QuartusⅡ软件界面中的Assignments>Setting中选择FitterSettings进行时序驱动的分配设置。

(参见课件第四讲)

6.在完成上述设置后进入QuartusⅡ软件中的Processing>StartCompilation开始启动综合与布局布线。

7.综合与布局布线完成后,在QuartusⅡ软件中的tools>RTLViewer和TechnologyMapViewer中观察相应的RTL级原理电路图和工艺库映射图的综合结果,并进入QuartusⅡ软件中的tools>TimingAnalyzertool,进行静态时序分析。

8.在tools>Simulatortool,进行动态时序仿真分析验证。

9.改变全局时钟设置重复上次实验,观察静态和动态时序分析结果的异同。

四、实验电路描述与实验结果

1.综合的RTL级原理电路图

 

2.综合的工艺库映射图

 

3.动态时序仿真结果(两种全局时钟)

 

五、思考题

1.动态时序分析与静态时序分析有什么不同作用?

 

2.实验第9步完成后,观察静态和动态时序分析结果,列出几个典型信号延时值,对于不同延时值解释其含义?

 

实验五交通灯控制器设计(4学时)

一、实验目的

1、掌握FPGA综合建模设计方法。

2、掌握FPGA各种建模方法的综合运用。

二、实验设备

PC机

QuartusⅡ开发软件

三、实验要求

设计一个具有主、支干道十字路口的交通灯自动控制芯片。

当主干道与支干道均无车辆要求通行时,主干道应保持畅通,亮绿灯,支干道亮红灯。

如果主干道无车,支干道有车,则允许支干道通行,主干道亮红灯,支干道亮绿灯。

如果主干道和支干道均有车要求通行,则两者应交替通行,并要求主干道每次通行30秒,支干道每次通行20秒,并显示剩余时间。

每次绿灯变红灯时,黄灯应先亮3秒钟,并显示绿灯和黄灯剩余时间。

系统设计依据:

主、支干道上有车时,车辆传感器输出为高电平。

系统实现要求:

要求在Mars-EP1C3-EDA实验平台上,用FPGA实现该交通灯自动控制芯片。

四、实验原理

1.系统设计分析

根据自动交通控制系统设计规范,可对该系统的工作过程作如下分析:

1)一般情况下,如果主干道和支干道均无车辆要求通行,应该保证主干道绿灯亮,支干道红灯亮,剩余时间按30秒循环显示。

2)若支干道有车辆要求通行,主干道无车辆,则应允许支干道车辆通行;在支干道有车辆通行时,若主干道无车辆要求通行,则支干道始终保持畅通,剩余时间按20秒循环显示;如果此时支干道已无车辆要求通行,或主干道有车辆要求通行,并且支干道通行时间已超过20秒钟,则应立刻准备使主干道通行。

3)若主干道、支干道均有车辆要求通行,则应先保证主干道通行30秒钟后,允许支干道通行。

4)在允许主干道通行前,应先使支干道的黄灯亮3秒钟,主干道红灯保持3秒钟后,变成主干道绿灯亮,支干道红灯亮。

在允许支干道车辆通行前,应先使主干道黄灯亮3秒钟,支干道红灯保持3秒钟后,变成主干道红灯亮,支干道绿灯亮。

2.系统模块划分与结构框图

系统结构框图

如图所示系统分为三个模块:

TR_ctl:

交通灯控制。

Clock_cnt:

定时计数。

Disp_ctl:

剩余时间显示。

输入输出信号:

clk:

系统时钟

reset:

’1’,系统复位

b_req:

’1’,支干道通行请求

m_req:

‘1’,主干道通行请求

d_out[7:

0]:

显示数据输出

d_col[1:

0]:

动态显示LED选择

mgreen:

‘1’,主干道绿灯亮

myellow:

‘1’,主干道黄灯亮

mred:

‘1’,主干道红灯亮

bgreen:

‘1’,支干道绿灯亮

byellow:

‘1’,支干道黄灯亮

bred:

‘1’,支干道红灯亮

3.顶层设计

系统顶层模块设计与各模块输入输出信号如图示:

顶层模块结构图

设计规范与说明:

系统时钟和复位规划:

本设计采用一个全局时钟clk和复位reset。

芯片与封装选择:

本设计用EP1C3TFPGA实现,144脚封装,输入输出为LVTTL电平。

系统各模块功能说明:

1)TR_ctl:

交通灯控制模块。

根据主、支干道车辆通行请求和通行规则,控制交通灯。

控制定时计数模块启动,并接收定时到信号。

2)Clock_cnt:

定时计数模块。

接收TR_ctl的定时启动控制,s_3s、s_20s、s_30s分别为3秒、20秒、30秒计时初值加载和减法计数启动的控制脉冲,为‘1’时启动相应计时。

cnt_ok是计时到指示脉冲,为‘1’表示已减到0,计时时间到。

d_time[6:

0]为十进制计时剩余时间,其中d_time[6:

4]为十位数,d_time[3:

0]为个位数。

3)Disp_ctl:

剩余时间显示控制模块,用于控制显示绿灯和黄灯的剩余时间。

采用2个7段LED动态显示方式。

4.系统测试方案

系统验证、测试方案:

1)采用quartus2的功能和时序仿真分析,验证设计的正确性。

2)在Mars-EP1C3-EDA实验平台上实现本设计,并测试其正确性。

具体方案如下图。

测试方案图

对应得管脚定义为:

本设计

信号名

实验板

信号名

FPGA

引脚

备注

本设计

信号名

实验板

信号名

FPGA

引脚

备注

d_out[0]

display7

p5

低显dp段

mgreen

LD5

p75

低灯亮

d_out[1]

display6

p4

低显g段

myellow

LD3

p79

低灯亮

d_out[2]

display5

p3

低显f段

mred

LD1

p85

低灯亮

d_out[3]

display4

p2

低显e段

bgreen

LD11

p74

低灯亮

d_out[4]

display3

p1

低显d段

byellow

LD9

p78

低灯亮

d_out[5]

display2

p143

低显c段

bred

LD7

p84

低灯亮

d_out[6]

display1

p141

低显b段

m_req

KEY1

p107

按下为低

d_out[7]

display0

p142

低显a段

b_req

KEY2

p106

按下为低

d_col[1]

Dis_A1

p27

低显示

clk

CLK_40M

p16

40M时钟

d_col[0]

Dis_A2

p26

低显示

reset

SYS_RST

p144

低复位

注:

实验时,实验板上J1连(2,3),J4连接,J3断开。

电源接FPGA扩展板。

五、实验电路描述与实验结果

(1)画出本交通灯控制器的流程图,要求能详细反映设计中的每一条件、判断和状态转移的过程。

(可以划分成三个功能模块绘制各个模块的流程图)

 

六、思考题

(1)如果外部输入时钟为40MHZ,那么实现准确计时的分频器应如何设计?

 

(2)完成仿真,画出系统时序仿真图,结合仿真图分析说明在时序仿真情况下两干道红绿灯的各个状态的转换是否正常。

 

(3)写出本实验的心得,并列出自己掌握了哪些方面知识?

自己在哪些方面知识的掌握比较欠缺?

自己将要通过怎样的途径来弥补自己的不足?

 

实验六:

数字钟设计(6学时)

一、实验目的

1、掌握FPGA综合建模设计方法。

2、掌握FPGA各种建模方法的综合运用。

3、锻炼和测试个人独立综合设计能力和各方面知识的综合应用。

二、实验设备

PC机

QuartusⅡ开发软件

三、实验要求

系统概述:

设计一个用LED7段显示器显示的24小时制数字钟。

系统目标:

1.用8个LED显示时间,如9点25分10秒显示为,09-25-10。

2.设置2个按键,按键SET用于工作模式选择,按键UP用于设置数值。

(可选)

3.按SET键循环设置工作模式为:

正常显示->时设置->分设置->秒设置

4.在设置工作模式时,被设置相应数字按1秒速率闪烁,其它数字不变。

5.在设置工作模式时,按UP键一次,被设置相应数字增加1,加到最大值后再加返回0,如小时加到23后再加就返回0,分和秒加到59后再加就返回0。

6.系统设计依据:

外部输入时钟为40MHZ。

7.系统实现要求:

要求在Mars-EP1C3-EDA实验平台上,用FPGA实现本系统。

四、实验原理

1.系统设计分析

1)时钟计数:

秒……60进制BCD码计数。

分……60进制BCD码计数。

时……24进制BCD码计数。

2)同时整个计数器有清零、调时、调分、调秒功能。

在接近整数时能提供报时信号。

3)具有驱动8位8段共阴极扫描数码管的片选驱动信号输出和8段字形译码输出。

2.系统输入输出说明

输入输出管脚图

 

顶层模块结构参考图

 

如图所示系统分为三个模块

fen1:

1秒计时模块。

fen60:

模60计数器。

fen24:

模24计数器。

fen100:

模100计数器。

set:

时、分、秒数值设定模块。

sel:

实时输出显示选择模块。

decode47:

输出显示译码模块。

输入输出信号:

clk:

系统时钟

rst:

’1’,系统复位

set:

时、分、秒数值选择

up:

时、分、秒数值设定

d_out[7:

0]:

显示数据输出

en[7:

0];动态显示LED选择

顶层模块结构图只做参考,同学们可以参考上图划分模块,也可以自行划分设计模块。

(如划分为计时模块、显示输出模块、时间设置模块)

clk是外部时钟输入,rst是复位信号,set是工作模式选择信号,up是数值设置输入;

en是8个数码管使能控制信号,当en某一位为高时,其对应的数码管接收dataout输出的数据;

dataout是8位的数值输出,用来点亮LED显示具体数值;

如下图所示,dataout对应图中Display[0..7],而Display[0..7]又对应数码管的A、B、C、D、E、F、G及DP数码段,用来将送入数码管的8位信号转化为0-9的具体数字。

en对应图中Dis_A[1..8],用来选择当前dataout数据输出的数码管。

 

3.系统测试方案

系统验证、测试方案:

1)采用quartus2的功能和时序仿真分析,验证设计的正确性。

2)在Mars-EP1C3-EDA实验平台上实现本设计,并测试其正确性。

对应得管脚定义为:

本设计

信号名

实验板

信号名

FPGA

引脚

备注

本设计

信号名

实验板

信号名

FPGA

引脚

备注

d_out[0]

display7

p5

低显dp段

en[2]

Dis_A3

P11

低灯亮

d_out[1]

display6

p4

低显g段

en[3]

Dis_A4

P06

低灯亮

d_out[2]

display5

p3

低显f段

en[4]

Dis_A5

P07

低灯亮

d_out[3]

display4

p2

低显e段

en[5]

Dis_A6

P10

低灯亮

d_out[4]

display3

p1

低显d段

en[6]

Dis_A7

P28

低灯亮

d_out[5]

display2

p143

低显c段

en[7]

Dis_A8

P31

低灯亮

d_out[6]

display1

p141

低显b段

m_req

set

p107

按下为低

d_out[7]

display0

p142

低显a段

b_req

up

p106

按下为低

en[0]

Dis_A1

p27

低显示

clk

CLK

p16

40M时钟

en[1]

Dis_A2

p26

低显示

reset

RST

p144

低复位

注:

实验时,实验板上J1连(2,3),J4连接,J3断开。

电源接FPGA扩展板。

五、实验电路描述与实验结果

(1)画出本实验数字钟的顶层模块结构图以及各模块之间的输入输出连接关系(可以采用顶层模块结构参考图的层次结构,也可以自行设计划分)。

写出各个模块的verilogHDL语言源程序。

 

(2)画出本实验数字钟的流程图,要求能详细反映设计中的每一条件、判断和状态转移的过程。

(可以划分成不同功能模块绘制各个模块的流程图)

 

六、思考题

(1)完成仿真,画出系统时序仿真图,结合仿真图分析说明时钟的各值变化是否正确。

 

(2)写出本实验的心得,并列出自己掌握了哪些方面知识?

自己在哪些方面知识的掌握比较欠缺?

自己将要通过怎样的途径来弥补自己的不足?

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1