(VHDL实验报告)一位半加器,全加器的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路EDA设计与应用
一位半加器,全加器设计
二、实验目的
1、掌握一位二进制半加器与全加器的原理。 2、进一步熟悉 QUARTUSII 软件的使用方法和 VHDL 输入。 3、掌握元件例化语句的使用。
4、学习从设计文件到模块符号的创建过程。
三、实验原理
( 1 )半加器两输入,两输出。其电路是 指对两个输入数据位相加,输出一个结果位和 进位,没有进位输入的加法器电路。是实现两 个一位二进制数的加法运算电路。其真值如下 图所示(S为和输出,C为进位输出):
三、实验原理
( 2 )全加器三输入,两输出。其电路是 在半加器的基础上加了个进位输入的加法。其 真值表如下图所示:
三、实验原理
( 3 )由数字电路知识可知,一位全加器 可由两个一位半加器与一个或门构成,其原理 图如下图所示。故可采用元件例化语句来实现 一位全加器。
四、实验内容
在本实验中,征对半加器时,用两个拨动开关来表示半加器 的两个输入( A、B),用两个LED来表示半加器的两个输出(S、 C)。
对于全加器时,其设计利用层次结构描述法,首先设计半加 器电路,将其打包为半加器模块;然后在顶层调用半加器模块组 成全加器电路;最后将全加器电路编译下载到实验箱,其中用三 个拨动开关来表示全加器的三个输入(Ai、Bi、Ci-1),用两个 LED来表示全加器的两个输出(Si、Ci)。
实验箱上拨动开关档位在下方时表示其输出为低电平,反之 输出市电平;当FPGA与其对应的端口为高电平时LED就会发光,反 之LED灯灭。其拨动开关与FPGA管脚的连接表以及 LED灯与FPGA管 脚连接表如下两图所示:
五、实验步骤
(一)半加器的设计
1、建立工程文件 1)运行QUARTUSII 软件。 2)选择软件中的菜单 File>New Project Wizard,新建一个工 程。 3)点击NEXT进入工作目录,设定工程名和实体名。 4 )点击 NEXT ,进入下一设定对话框,(本次实验选用 Cyclone II系列芯片 EP2C35F672C8),在对话框的左上方的 Family 下拉菜 单中选取 CycloneII ,在中间右边的 Pin count 下拉菜单中选取 672 , 在 Speed grade 下拉菜单中选取 8 ,在左下方的 Available devices 框中选取 EP2C35F672C8。点击 NEXT 完成器件的选取,进 入 EDA TOOL设定界面。
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息, 再点击FINISH完成新建工程的建立。
五、实验步骤
(一)半加器的设计
2、建立文本设计文件
1 )选择 File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。 2)在文本编辑器中输入对应 VHDL程序代码,如下图 所示: 3)对文本文件进行编译。选择processing-compiler tool--start或直接点快捷栏上的三角形则会出 现编译器窗口。需要说明的是在进行设计文件的综合和分 析,也可以单独打开某个分析综 合过程不必进行全编译 界面。当完成上述窗口的设定后,点击 START 按钮进行 设计文件的全编译。如果文件有错,在软件的下方则会提 示错误的原因和位置,以便于使用者进行修改直到设计文 件无错。整个编译完成,软件会提示编译成功。
五、实验步骤
(一)半加器的设计
3、管脚分配
1)点击 Assignments 菜单下面的 Assignment Editor ,进入 到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点击 List, 在 Nodes Found 窗口会出现所有信号的名称,点击中间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮, 完成设置。进入管脚分配窗口。如下图所示:
2)依照“硬件与 FPGA 的管脚连接表”分配对应的输入管脚名 , 依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实验 的分配关系是:(输入端 a、b分别对应的 FPGA 管脚名为 H8、J8, 输出端 c、s分别对应的 FPGA 管脚名为 G13 、G15),如下图所示: 3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
1 )选择 File--New ,在弹出的对话框中选择 Vector Waveform File,点击OK按钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS, 根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms)。 选择 QUARTUSII 软件的 Edit--End Time 命令,弹出线路束时间对 话框,在 Time框办输入仿真结束时间,点击OK按钮完成设置。如下 图所示: 3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表 区点击鼠标右键,在弹出的右键菜单中选择 Insert Node or Bus… 命令,在弹出的 Insert Node or Bus 对话框界面中点击 Node Finder…按钮。在出现的 Node Finder 界面中的 Filter 列表中选 择 点击 List,在 Nodes Found 窗口出现所有信号的名称,点击中 间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK按钮,完成设置,回到 Insert Node or Bus 对话框,双击OK 按 钮,所有的输入、输出端口将会在端口名列表区内显示出来。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗 口中,选择要输入波形的输入端口。以 b 端口为例,右键单击 b ,依次选 择value--clock--period,将时间改为1us。然后重复此过程将 a 的时间改 成 2us (a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次 要有所差别)。最后选择软件的 Fie>Save进行保存。
5 )指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这 里介绍功能仿真。在 QUARTUSII 软件中选择 Processing>Simulator Tool 命令,打开仿真器工具窗口,如下图所示。
按图 上的提示,首先产生功能仿真网表文件(在simulation mode后选 择 Functional ),点击产生功能仿真网表的按钮 Generate Functional Simulation Netlist ,产生功能仿真网表,然后点击开始仿真的 START 按 钮开始进行仿真,直到仿真进度条为 100%完成仿真。点击仿真报告窗口按 钮 Report ,观察仿真波形。确定其符合实验内容。实验仿真波形如下所示:
五、实验步骤
(一)半加器的设计
6、从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯 片进行加载。这里我们介绍对目标器件 EP2C35F672C8进行加载的方法。 1)使用下载电缆将 PC 机与实验系统连接起来。 2)选择 QUARTUSII 软件的 Tools>Programmer 命令,进行编程器窗口。如果没有设置编程 硬件,则编程硬件类型为 No Hardware,需要对编程硬件进行设置。点击 Hardware Setup…编程 硬件设置按钮,进行如下图 所示的编程硬件设置对话框。 3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话框中, 从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成 对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在编程器对话框中 的编程硬件类型会出现刚才选取的编程器硬件。 4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有黄色问 号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安装--浏览-在我的电脑D盘中选择找到USB bluster即可安装好驱动。 5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文 件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后, 再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载,直到加载进度
五、实验步骤
(二)全加器的设计
1、建立工程文件(步骤同“半加器的设计”) 2、建立文本设计文件
全加器的设计采用“元件例化语句”,故需建立两个 VHDL 文 本编辑对话框(一个顶层文件,一个底层文件)。在相应的编辑框中 输入相应的VHDL语句,再分别以各自的实体名进行保存。注意的是顶 层文件名应必须与工程名一致。此次实验底层文件为半加器VHDL语句, 顶层文件为全加器VHDL语句,其语句分别如下两图所示:
接下来的步骤与“半加器的设计”步骤一样。
五、实验步骤
(二)全加器的设计
3、管脚分配
主要步骤同“半加器的设计”。
本次实验全加器的本次实验的分配关系是:(输入端 a 、 b 、 Ci分别对应的 FPGA 管脚名为 H8、J8、J9,输出端 s、ci分别对应 的 FPGA 管脚名为 G13 、G15),如下图所示:
五、实验步骤
(二)全加器的设计
4、对设计文件进行仿真(步骤同“半加器的设计”)
全加器中 Ci 的周期是 b 的两倍, b 的周期是 a 的两倍。实验仿真波形如 下所示:
5、从设计文件到目标器件的加载(步骤同“半加器的设计”)
五、实验步骤
(三)补充“全加器的设计”。从设计文件到模块符号的 创建。
实验要求创建文件时底层文件用文本输入,顶层文件用图形输 入,即需要将底层的已经设计好的文本文件生成一个模块符号文件作 为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任 何其它宏功能符号一样可被高层设计重复调用。
其方法为:在建立的文本文件 (VHDL 半加器代码 ) 中,选择 Create/Update--Create Symbol for Current File,点击确定,即 可创建一个代表刚才打开的设计文件功能的符号(.bsf)。模块文件 创建完成后,再新建一个图形编辑文件,打开图形编辑器对话框。在 图形编辑器窗吕的工件区双击鼠标左键,或点击图中的符号工具按钮, 或选择菜单 Edit--Insert Symbol...。在Symbo对话框中的 Project 项下会出现前面创建的半加器模块符号文件,我们就可以对其进行调 用。本次实验要用到两个半加器模块和一个或门模块,再对其连接起 来,并定义端口。结果如下图所示:
六、实验现象及结果
(一)半加器
本次实验我分别用实验箱上的开关 K1、 K2作为半加器两输入 A、 B;分别用LED 彩灯LED1、LED2作为半加器的两个输出端 S、C。实验时将实验箱的拨动开关拨向下时 为低电平“ 0 ”。拨向上时为高电平“ 1 ”, LED 高电平时灯亮,低电平时灯灭。以下 第一幅图即为输入为“ 00”时输出为“ 00”;第二幅图则是当输入为“01”时输出为 “10”;第三幅图是输入为“10”时输出为“10”;第四幅图是输入为“11”,输出 为“01”。其结果均符合半加器的真值表。
二)全加器
本次实验我分别用实验箱上的开关 K1、K2、K3作为全加器的三输入A、B、Ci-1; 分别用 LED 彩灯 LED1、 LED2 作为半加器的两个输出端 Si、 Ci。实验时将实验箱的拨动 开关拨向下时为低电平“ 0 ”。拨向上时为高电平“ 1 ”, LED 高电平时灯亮,低电平 时灯灭。以下第一幅图即为输入为“ 111 ”时输出为“ 11 ”;第二幅图则是当输入为 “110”时输出为“01”;第三幅图是输入为“101”时输出为“01”。其结果均符合
一位半加器,全加器设计
二、实验目的
1、掌握一位二进制半加器与全加器的原理。 2、进一步熟悉 QUARTUSII 软件的使用方法和 VHDL 输入。 3、掌握元件例化语句的使用。
4、学习从设计文件到模块符号的创建过程。
三、实验原理
( 1 )半加器两输入,两输出。其电路是 指对两个输入数据位相加,输出一个结果位和 进位,没有进位输入的加法器电路。是实现两 个一位二进制数的加法运算电路。其真值如下 图所示(S为和输出,C为进位输出):
三、实验原理
( 2 )全加器三输入,两输出。其电路是 在半加器的基础上加了个进位输入的加法。其 真值表如下图所示:
三、实验原理
( 3 )由数字电路知识可知,一位全加器 可由两个一位半加器与一个或门构成,其原理 图如下图所示。故可采用元件例化语句来实现 一位全加器。
四、实验内容
在本实验中,征对半加器时,用两个拨动开关来表示半加器 的两个输入( A、B),用两个LED来表示半加器的两个输出(S、 C)。
对于全加器时,其设计利用层次结构描述法,首先设计半加 器电路,将其打包为半加器模块;然后在顶层调用半加器模块组 成全加器电路;最后将全加器电路编译下载到实验箱,其中用三 个拨动开关来表示全加器的三个输入(Ai、Bi、Ci-1),用两个 LED来表示全加器的两个输出(Si、Ci)。
实验箱上拨动开关档位在下方时表示其输出为低电平,反之 输出市电平;当FPGA与其对应的端口为高电平时LED就会发光,反 之LED灯灭。其拨动开关与FPGA管脚的连接表以及 LED灯与FPGA管 脚连接表如下两图所示:
五、实验步骤
(一)半加器的设计
1、建立工程文件 1)运行QUARTUSII 软件。 2)选择软件中的菜单 File>New Project Wizard,新建一个工 程。 3)点击NEXT进入工作目录,设定工程名和实体名。 4 )点击 NEXT ,进入下一设定对话框,(本次实验选用 Cyclone II系列芯片 EP2C35F672C8),在对话框的左上方的 Family 下拉菜 单中选取 CycloneII ,在中间右边的 Pin count 下拉菜单中选取 672 , 在 Speed grade 下拉菜单中选取 8 ,在左下方的 Available devices 框中选取 EP2C35F672C8。点击 NEXT 完成器件的选取,进 入 EDA TOOL设定界面。
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息, 再点击FINISH完成新建工程的建立。
五、实验步骤
(一)半加器的设计
2、建立文本设计文件
1 )选择 File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。 2)在文本编辑器中输入对应 VHDL程序代码,如下图 所示: 3)对文本文件进行编译。选择processing-compiler tool--start或直接点快捷栏上的三角形则会出 现编译器窗口。需要说明的是在进行设计文件的综合和分 析,也可以单独打开某个分析综 合过程不必进行全编译 界面。当完成上述窗口的设定后,点击 START 按钮进行 设计文件的全编译。如果文件有错,在软件的下方则会提 示错误的原因和位置,以便于使用者进行修改直到设计文 件无错。整个编译完成,软件会提示编译成功。
五、实验步骤
(一)半加器的设计
3、管脚分配
1)点击 Assignments 菜单下面的 Assignment Editor ,进入 到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点击 List, 在 Nodes Found 窗口会出现所有信号的名称,点击中间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮, 完成设置。进入管脚分配窗口。如下图所示:
2)依照“硬件与 FPGA 的管脚连接表”分配对应的输入管脚名 , 依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实验 的分配关系是:(输入端 a、b分别对应的 FPGA 管脚名为 H8、J8, 输出端 c、s分别对应的 FPGA 管脚名为 G13 、G15),如下图所示: 3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
1 )选择 File--New ,在弹出的对话框中选择 Vector Waveform File,点击OK按钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS, 根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms)。 选择 QUARTUSII 软件的 Edit--End Time 命令,弹出线路束时间对 话框,在 Time框办输入仿真结束时间,点击OK按钮完成设置。如下 图所示: 3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表 区点击鼠标右键,在弹出的右键菜单中选择 Insert Node or Bus… 命令,在弹出的 Insert Node or Bus 对话框界面中点击 Node Finder…按钮。在出现的 Node Finder 界面中的 Filter 列表中选 择 点击 List,在 Nodes Found 窗口出现所有信号的名称,点击中 间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK按钮,完成设置,回到 Insert Node or Bus 对话框,双击OK 按 钮,所有的输入、输出端口将会在端口名列表区内显示出来。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗 口中,选择要输入波形的输入端口。以 b 端口为例,右键单击 b ,依次选 择value--clock--period,将时间改为1us。然后重复此过程将 a 的时间改 成 2us (a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次 要有所差别)。最后选择软件的 Fie>Save进行保存。
5 )指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这 里介绍功能仿真。在 QUARTUSII 软件中选择 Processing>Simulator Tool 命令,打开仿真器工具窗口,如下图所示。
按图 上的提示,首先产生功能仿真网表文件(在simulation mode后选 择 Functional ),点击产生功能仿真网表的按钮 Generate Functional Simulation Netlist ,产生功能仿真网表,然后点击开始仿真的 START 按 钮开始进行仿真,直到仿真进度条为 100%完成仿真。点击仿真报告窗口按 钮 Report ,观察仿真波形。确定其符合实验内容。实验仿真波形如下所示:
五、实验步骤
(一)半加器的设计
6、从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯 片进行加载。这里我们介绍对目标器件 EP2C35F672C8进行加载的方法。 1)使用下载电缆将 PC 机与实验系统连接起来。 2)选择 QUARTUSII 软件的 Tools>Programmer 命令,进行编程器窗口。如果没有设置编程 硬件,则编程硬件类型为 No Hardware,需要对编程硬件进行设置。点击 Hardware Setup…编程 硬件设置按钮,进行如下图 所示的编程硬件设置对话框。 3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话框中, 从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成 对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在编程器对话框中 的编程硬件类型会出现刚才选取的编程器硬件。 4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有黄色问 号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安装--浏览-在我的电脑D盘中选择找到USB bluster即可安装好驱动。 5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文 件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后, 再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载,直到加载进度
五、实验步骤
(二)全加器的设计
1、建立工程文件(步骤同“半加器的设计”) 2、建立文本设计文件
全加器的设计采用“元件例化语句”,故需建立两个 VHDL 文 本编辑对话框(一个顶层文件,一个底层文件)。在相应的编辑框中 输入相应的VHDL语句,再分别以各自的实体名进行保存。注意的是顶 层文件名应必须与工程名一致。此次实验底层文件为半加器VHDL语句, 顶层文件为全加器VHDL语句,其语句分别如下两图所示:
接下来的步骤与“半加器的设计”步骤一样。
五、实验步骤
(二)全加器的设计
3、管脚分配
主要步骤同“半加器的设计”。
本次实验全加器的本次实验的分配关系是:(输入端 a 、 b 、 Ci分别对应的 FPGA 管脚名为 H8、J8、J9,输出端 s、ci分别对应 的 FPGA 管脚名为 G13 、G15),如下图所示:
五、实验步骤
(二)全加器的设计
4、对设计文件进行仿真(步骤同“半加器的设计”)
全加器中 Ci 的周期是 b 的两倍, b 的周期是 a 的两倍。实验仿真波形如 下所示:
5、从设计文件到目标器件的加载(步骤同“半加器的设计”)
五、实验步骤
(三)补充“全加器的设计”。从设计文件到模块符号的 创建。
实验要求创建文件时底层文件用文本输入,顶层文件用图形输 入,即需要将底层的已经设计好的文本文件生成一个模块符号文件作 为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任 何其它宏功能符号一样可被高层设计重复调用。
其方法为:在建立的文本文件 (VHDL 半加器代码 ) 中,选择 Create/Update--Create Symbol for Current File,点击确定,即 可创建一个代表刚才打开的设计文件功能的符号(.bsf)。模块文件 创建完成后,再新建一个图形编辑文件,打开图形编辑器对话框。在 图形编辑器窗吕的工件区双击鼠标左键,或点击图中的符号工具按钮, 或选择菜单 Edit--Insert Symbol...。在Symbo对话框中的 Project 项下会出现前面创建的半加器模块符号文件,我们就可以对其进行调 用。本次实验要用到两个半加器模块和一个或门模块,再对其连接起 来,并定义端口。结果如下图所示:
六、实验现象及结果
(一)半加器
本次实验我分别用实验箱上的开关 K1、 K2作为半加器两输入 A、 B;分别用LED 彩灯LED1、LED2作为半加器的两个输出端 S、C。实验时将实验箱的拨动开关拨向下时 为低电平“ 0 ”。拨向上时为高电平“ 1 ”, LED 高电平时灯亮,低电平时灯灭。以下 第一幅图即为输入为“ 00”时输出为“ 00”;第二幅图则是当输入为“01”时输出为 “10”;第三幅图是输入为“10”时输出为“10”;第四幅图是输入为“11”,输出 为“01”。其结果均符合半加器的真值表。
二)全加器
本次实验我分别用实验箱上的开关 K1、K2、K3作为全加器的三输入A、B、Ci-1; 分别用 LED 彩灯 LED1、 LED2 作为半加器的两个输出端 Si、 Ci。实验时将实验箱的拨动 开关拨向下时为低电平“ 0 ”。拨向上时为高电平“ 1 ”, LED 高电平时灯亮,低电平 时灯灭。以下第一幅图即为输入为“ 111 ”时输出为“ 11 ”;第二幅图则是当输入为 “110”时输出为“01”;第三幅图是输入为“101”时输出为“01”。其结果均符合