VHDL实验半加器等等指导书.docx

上传人:b****7 文档编号:25829420 上传时间:2023-06-15 格式:DOCX 页数:17 大小:75.25KB
下载 相关 举报
VHDL实验半加器等等指导书.docx_第1页
第1页 / 共17页
VHDL实验半加器等等指导书.docx_第2页
第2页 / 共17页
VHDL实验半加器等等指导书.docx_第3页
第3页 / 共17页
VHDL实验半加器等等指导书.docx_第4页
第4页 / 共17页
VHDL实验半加器等等指导书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VHDL实验半加器等等指导书.docx

《VHDL实验半加器等等指导书.docx》由会员分享,可在线阅读,更多相关《VHDL实验半加器等等指导书.docx(17页珍藏版)》请在冰豆网上搜索。

VHDL实验半加器等等指导书.docx

VHDL实验半加器等等指导书

实验一半加器和全加器的设计

一、实验目的

1、掌握图形的设计方式;

2、掌握自建元件及调用自建元件的方法;

3、熟练掌握MAXPLUSII的使用。

二、实验内容

1、熟练软件基本操作,完成半加器和全加器的设计;

2、正确设置仿真激励信号,全面检测设计逻辑;

3、综合下载,进行硬件电路测试。

三、实验原理

1、半加器的设计

半加器只考虑了两个加数本身,没有考虑由低位来的进位。

半加器真值表:

被加数A

加数B

和数S

进位数C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

半加器逻辑表达式:

2.全加器的设计

全加器除考虑两个加数外,还考虑了低位的进位。

全加器真值表:

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

全加器逻辑表达式:

3、利用半加器元件完成全加器的设计

(1)图形方式

其中HADDER为半加器元件。

 

四、实验步骤

1、完成图形半加器设计。

2、完成VHDL半加器设计与仿真(记录仿真波形)。

3、完成VHDL全加器设计与仿真(记录仿真波形)。

4、利用半加器元件进行图形的全加器设计。

五、思考题:

1、怎样自建元件?

自建元件的调用要注意什么?

实验二二位加法计数器的设计

一、实验目的

1、掌握二位加法计数器的原理;

2、掌握二位加法计数器的VHDL描述。

3、深入理解VHDL中元件例化的意义。

二、实验内容

1、完成带进位功能二位加法计数器的VHDL设计;

2、正确设置仿真激励信号,全面检测设计逻辑;

3、综合下载,进行硬件电路测试。

三、实验原理

1、二位加法计数器中使用了矢量类型的数据,用来表示计数的数值。

2、元件的例化就是元件的调用,是层次化设计的基础。

具体设计程序由学生自己完成。

四、实验步骤

1、了解二位加法计数器的工作原理。

2、用VHDL文本方式设计二位加法计数器。

3、进行二位加法计数器的设计仿真(记录仿真波形)。

4、进行二位加法计数器的设计下载与测试。

五、思考题

1、怎样设计“减法”计数器?

2、进位信号的设置应注意什么?

实验三基于QUARTUSII图形输入电路的设计

一、实验目的

1、通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。

2、初步了解QUARTUSII原理图输入设计的全过程。

3、掌握组合逻辑电路的静态测试方法。

二、实验原理

3-8译码器三输入,八输出。

当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。

因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。

其真值表如表1-1所示

输入

输出

A

B

C

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

0

0

1

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

0

1

0

0

1

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

表1-1三-八译码器真值表

译码器不需要像编码器那样用一个输出端指示输出是否有效。

但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。

本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。

三、实验内容

在本实验中,用三个拨动开关来表示三八译码器的三个输入(A、B、C);用八个LED来表示三八译码器的八个输出(D0-D7)。

通过输入不同的值来观察输入的结果与三八译码器的真值表(表1-1)是否一致。

实验箱中的拨动开关与FPGA的接口电路如下图1-1所示,当开关闭合(拨动开关的档位在下方)时其输出为低电平,反之输出高电平。

其电路与FPGA的管脚连接如表1-2所示

 

图1-1拨动开关与FPGA接口电路

信号名称

对应FPGA(EP2C35)管脚名

信号说明

K1

E15

从K1输出到FPGA的E15

K2

B14

从K2输出到FPGA的B14

K3

F9

从K3输出到FPGA的F9

K4

B15

从K4输出到FPGA的B15

K5

A15

从K5输出到FPGA的A15

K6

F11

从K6输出到FPGA的F11

K7

A16

从K7输出到FPGA的A16

K8

F13

从K8输出到FPGA的F13

K9

F14

从K8输出到FPGA的F14

K10

A17

从K8输出到FPGA的A17

K11

H7

从K8输出到FPGA的H7

K12

A18

从K8输出到FPGA的A18

表1-2拨动开关与FPGA管脚连接表

当FPGA与其对应的端口为高电平时LED就会发光,反之LED灯灭。

其与FPGA对应的管脚连接如表1-3所示。

信号名称

对应FPGA(EP1C12)管脚名

说明

D1

E9

从FPGA的E9输出至D1

D2

A11

从FPGA的A11输出至D2

D3

E11

从FPGA的E11输出至D3

D4

B13

从FPGA的B13输出至D4

D5

E14

从FPGA的E14输出至D5

D6

A13

从FPGA的A13输出至D6

D7

L7

从FPGA的L7输出至D7

D8

B19

从FPGA的B19输出至D8

D9

M8

从FPGA的M8输出至D9

D10

A19

从FPGA的A19输出至D10

D11

M7

从FPGA的M7输出至D11

D12

B20

从FPGA的B20输出至D12

表1-3LED灯与FPGA管脚连接表

四、实验步骤

下面将通过这个实验,向读者介绍QUARTUSII的项目文件的生成、编译、管脚分配以及时序仿真等的操作过程。

1、建立工程文件

1)选择开始>程序>Altera>QuartusII5.1,运行QUARTUSII软件。

2)选择软件中的菜单File>NewProjectWizard,新建一个工程。

3)点击图1-4中的NEXT进入工作目录,工程名的设定对话框。

第一个输入框为工程目录输入框,用户可以输入如e:

/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。

第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。

用户可以设定如EXP1,一般情况下工程名称与实体名称相同。

使用者也可以根据自已的实际情况来设定。

4)点击NEXT,进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。

这里我们以选用Cyclone系列芯片EP2C35F484C8为例进行介绍。

用户可以根据使用的不同芯片来进行设定,其方法基本一致。

首先在对话框的左上方的Family下拉菜单中选取Cyclone,在中间右边的Speedgrade下拉菜单中选取8,在左下方的Availabledevices框中选取EP1C12F324C8,点击NEXT完成器件的选取,进入EDATOOL设定界面。

5)按默认选项,点击NEXT出现新建工程以前所有的设定信息,点击FINISH完成新建工程的建立。

2、建立图形设计文件

1)在创建好设计工程后,选择File>NEW…菜单,出现新建设计文件类型选择窗口。

这里我们以建立图形设计文件为例进行说明,其它设计输入方法与之基本相同。

2)在New对话框中选择DeviceDesignFiles页下的BlockDiagram/SchematicFile,点击OK按钮,打开图形编辑器对话框。

图中标明了常用的每个按钮的功能。

QUARTUSII图形编辑器也称块编辑器(BlockEditor),用于以原理图(Schematics)和结构图(BlockDiagrams)的形式输入和编辑图形设计信息。

QUARTUSII图形编辑器可以读取并编译结构图设计文件(BlockDesignFile)和MAXPLUSII图形设计文件(GraphicDesignFiles),可以在QUARTUSII软件中打开图形设计文件并将其另存为结构图设计文件。

在QUARTUSII图形编辑器窗口中,根据个人爱好,可以随时改变BlockEditor的显示选项,如导向线和网格间距、橡皮筋功能、颜色以及基本单元和块的属性等。

3)在这里以用原理图输入设计一个三八译码器为例,介绍基本单元符号输入方法的步骤。

在图形编辑器窗口的工件区双击鼠标的左键,或点击图中的符号工具按钮,或选择菜单Edit>InsertSymbol…,则弹出Symbol对话框。

4)用鼠标点击单元库前面的“+”号,展开单元库,用户可以选择所需要的图元或符号,该符号则显示在右边的显示符号窗口,用户也可以在符号名称里输入你所需要的符号名称,点击OK按钮,所选择的符号将显示在图形编辑器的工作区域。

5)将要选择的器件符号放置在图形编辑器的工件区域,用正交节点工具将原件边接起来,然后定义端口的名称。

在这个例子里,定义三个输入为A、B、C,定义八个输出为D0、D1、D2、D3、D4、D5、D6、D7。

用户也可以根据自己的习惯来定义这些端口名称。

6)完成图形编辑的输入之后,需要保存设计文件或重新命名设计文件。

选择File>SaveAs…项,出现对话框,选择好文件保存目录,并在文件名栏输入设计文件名。

如需要将设计文件添加到当前工程中,则选择对话框下面的Addfiletocurrentproject复选框,单击保存按钮即可保存文件。

需要注意的是,在整个设计文件保存的过程当中,都需要遵循设计输入法的一般规则。

 

3、对设计文件进行编译

QUARTUSII编译器窗口包含了对设计文件处理的全过程。

在QUARTUSII软件中选择Tool>CompilerTool菜单项,则出现QUARTUSII的编译器窗口。

需要说明的是在进行设计文件的综合和分析,也可以单独打开某个分析综合过程不必进行全编译界面。

当完成上述窗口的设定后,点击START按钮进行设计文件的全编译。

如果文件有错,在软件的下方则会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。

整个编译完成,软件会提示编译成功。

4、管脚分配

在前面选择好一个合适的目标器件(在这个实验中选择为EP2C35F484C8),完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。

管脚分配完之后一定要进行再进行一次全编译,以使分配的管脚有效。

5、对设计文件进行仿真

1)创建一个仿真波形文件,选择QUARTUSII软件File>New,进行新建文件对话框。

如图1-24所示。

选取对话框的OtherFile标签页,从中选取VectorWaveformFile,点击OK按钮,则打开了一个空的波形编辑器窗口。

2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1µS,根据仿真需要,可以自由设置仿真的结束时间。

选择QUARTUSII软件的Edit>EndTime命令,弹出线路束时间对话框,在Time框办输入仿真结束时间,点击OK按钮完成设置。

3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择InsertNodeorBus…命令,在弹出的InsertNodeorBus对话框界面中点击NodeFinder…按钮。

在出现的NodeFinder界面中,如图1-27所示,在Filter列表中选择Pins:

all,在Named窗口中输入“*”,点击List在NodesFound窗口出现所有信号的名称,点击中间的

按钮则SelectedNodes窗口下方出现被选择的端口名称。

双击OK按钮,完成设置,回到的InsertNodeorBus对话框,双击OK按钮,所有的输入、输出端口将会在端口名列表区内显示出来。

4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在的波形编辑窗口中,选择要输入波形的输入端口如A端口,在端口名显示区左边的波形编辑器工具栏中有要输入的各种波形,其按钮说明。

根据仿真的需要输入波形。

最后选择软件的File>Save进行保存。

5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。

在QUARTUSII软件中选择Tool>SimulatorTool命令,打开仿真器工具窗口。

首先产生功能仿真网表文件,点击产生功能仿真网表的按钮GenerateFunctionalSimulationNetlist,产生功能仿真网表,然后点击开始仿真的START按钮开始进行仿真,直到仿真进度条为100%完成仿真。

点击仿真报告窗口按钮Report,观察仿真波形。

6、从设计文件到目标器件的加载

完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。

这里我们介绍对目标器件EP2C35F672C8进行加载的方法。

1)使用下载电缆将PC机与实验系统连接起来。

2)选择QUARTUSII软件的Tool>Programmer命令,进行编程器窗口。

如果没有设置编程硬件,则编程硬件类型为NoHardware,需要对编程硬件进行设置。

3)点击AddHardware按钮,出现AddHardware对话框。

4)在AddHardware对话框中,从Hardwaretype列表中选择所需要硬件类型,如果是USB接口的请参照用户使用手册中的USB电缆的安装与使用,如果使用的是并口下载线则选取如图1-35所示的硬件类型,点击OK按钮,完成对硬件类型的设置。

回到编程器硬件设置窗口,点击Close按钮退出设置。

则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。

5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。

选好加载文件后,再点选Progam/Configure,编程模式选取JTAG模式,点击STRAT进行文件加载,直到加载进度变为100%,文件成功加载完成。

五、实验现象与结果

文件加载到目标器件后,拨动拨动开关,LED灯会按表1-1所示的真值表对应的点亮。

六、实验报告

1、进一步熟悉和理解QUARTUSII软件的使用方法。

实验四可控脉冲发生器的设计

一、实验目的

1、了解可控脉冲发生器的实现机理。

2、学会用示波器观察FPGA产生的信号。

3、学习用VHDL编写复杂功能的代码。

二、实验原理

脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周期和占空比可变的脉冲波形。

可控脉冲发生器的实现原理比较简单,可以简单的理解为一个计数器对输入的时钟信号进行分频的过程。

通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的。

下面举个简单的例子来说明其工作原理。

假如有一个计数器T对时钟分频,其计数的范围是从0~N,另取一个

M(0≤M≤N),若输出为Q,那么Q只要满足条件

时,通过改变N值,即可改变输出的脉冲波的周期;改变M值,即可改变脉冲波的占空比。

这样输出的脉冲波的周期和占空比分别为:

三、实验内容

本实验的任务就是要设计一个可控的脉冲发生器,要求输出的脉冲波的周期和占空比都可变。

具体的实验过程中,时钟信号选用时钟模块中的1MHz时钟,然后再用按键模块的S1和S2来控制脉冲波的周期,每按下S1,N会在慢速时钟作用下不断地递增1,按下S2,N会在慢速时钟作用下不断地递减1;用S3和S4来控制脉冲波的占空比,每按下S3,M会在慢速时钟作用下不断地递增1,每按下S4,M会在慢速时钟作用下不断地递减1,S8用作复位信号,当按下S8时,复位FPGA内部的脉冲发生器模块。

脉冲波的输出直接输出到实验箱观测模块的探针,以便用示波器观察输出波形的改变。

四、实验步骤

1、打开QUARTUSII软件,新建一个工程。

2、建完工程之后,再新建一个VHDLFile,打开VHDL编辑器对话框。

3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。

4、编写完VHDL程序后,保存起来。

方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。

6、编译仿真无误后,依照拨动开关、LED与FPGA的管脚连接表(表1-1、表1-2)或参照附录进行管脚分配。

表9-1是示例程序的管脚分配表。

分配完成后,再进行全编译一次,以使管脚分配生效。

端口名

使用模块信号

对应FPGA管脚

说明

CLK

数字信号源

L2

时钟为1MHZ

MD

按键开关S1

F8

频率控制/增加

MU

按键开关S2

A14

频率控制/减少

ND

按键开关S3

F10

占空比控制/增加

NU

按键开关S4

B16

占空比控制/减少

RST

复位按键RESET

B18

复位控制

FOUT

输出观测模块

V15

示波器观测点

表9-1端口管脚分配表

7、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。

观察实验结果是否与自己的编程思想一致。

五、实验结果与现象

以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1MHZ,按下按键开关模块的S8按键,在输出观测模块通过示波器可能观测到一个频率约为1KHZ、占空比为50%的矩形波。

按下S1键或者S2键,这个矩形波的频率会发生相应的增加或者减少。

按下S3键或者S4键,这个矩形波的占空比会相应的增加或减少。

六、实验报告

1、绘出仿真波形,并作说明。

2、在这个实验的基础上重新设计,使程序改变频率的时候不会影响占空比的改变。

3、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。

 

实验五基于VHDL的抢答器的设计

一、实验目的

1、熟悉四人抢答器的工作原理。

2、加深对VHDL语言的理解。

3、掌握EDA开发的基本流程。

二、实验原理

抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。

抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮;如果抢答允许位有效,那么第一个抢答者按下的按钮就将其清楚,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再有人按下按钮的情况。

总的说来,抢答器的实现就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清楚抢答允许位的按钮的序号并显示出来,这就是抢答器的实现原理。

三、实验内容

本实验的任务是设计一个四人抢答器,用按键模块的S8来作抢答允许按钮,用S1~S4来表示1号抢答者~4号抢答者,同时用LED模块的LED1~LED4分别表示于抢答者对应的位子。

具体要求为:

按下S8一次,允许一次抢答,这时S1~S4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。

数码管显示对应抢答成功者的号码。

在此实验中数码管、LED、按键开关与FPGA的连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。

四、实验步骤

1、打开QUARTUSII软件,新建一个工程。

2、建完工程之后,再新建一个VHDLFile,打开VHDL编辑器对话框。

3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。

4、编写完VHDL程序后,保存起来。

方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。

6、编译仿真无误后,依照按键开关、LED、数码管与FPGA的管脚连接表或参照附录进行管脚分配。

表10-1是示例程序的管脚分配表。

分配完成后,再进行全编译一次,以使管脚分配生效。

端口名

使用模块信号

对应FPGA管脚

说明

S1

按键开关S1

F8

表示1号抢答者

S2

按键开关S2

A14

表示2号抢答者

S3

按键开关S3

F10

表示3号抢答者

S4

按键开关S4

B16

表示4号抢答者

S8

按键开关S8

B18

开始抢答按键

DOUT0

LED模块D1

E9

1号抢答者灯

DOUT1

LED模块D2

A11

2号抢答者灯

DOUT2

LED模块D3

E11

3号抢答者灯

DOUT3

LED模块D4

B13

4号抢答者灯

LEDAG0

数码管模块A段

G6

抢答成功者

号码显示

LEDAG1

数码管模块B段

G7

LEDAG2

数码管模块C段

H3

LEDAG3

数码管模块D段

H4

LEDAG4

数码管模块E段

H5

LEDAG5

数码管模块F段

H6

LEDAG6

数码管模块G段

J4

表10-1端口管脚分配表

7、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。

观察实验结果是否与自己的编程思想一致。

五、实验结果与现象

以设计的参考示例为例,当设计文件加载到目标器件后,按下按键开关的S8按键,表示开始抢答。

然后,同时按下S1-S4,首先按下的键的键值被数码管显示出来,对应的LED灯被点亮。

与此同时,其它按键失去抢答作用。

六、实验报告

1、绘出仿真波形,并作说明。

2、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。

 

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

当前位置:首页 > 医药卫生 > 药学

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

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