您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > (VHDL实验报告)一位半加器-全加器的设计
数字电路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)选择软件中的菜单FileNewProjectWizard,新建一个工程。3)点击NEXT进入工作目录,设定工程名和实体名。4)点击NEXT,进入下一设定对话框,(本次实验选用CycloneII系列芯片EP2C35F672C8),在对话框的左上方的Family下拉菜单中选取CycloneII,在中间右边的Pincount下拉菜单中选取672,在Speedgrade下拉菜单中选取8,在左下方的Availabledevices框中选取EP2C35F672C8。点击NEXT完成器件的选取,进入EDATOOL设定界面。5)按默认选项,点击NEXT出现新建工程以前所有的设定信息,再点击FINISH完成新建工程的建立。(一)半加器的设计五、实验步骤2、建立文本设计文件1)选择File--New--DeviceDesignFiles--VHDLFile,点击OK按钮,打开进入文本编辑器对话框。2)在文本编辑器中输入对应VHDL程序代码,如下图所示:3)对文本文件进行编译。选择processing--compilertool--start或直接点快捷栏上的三角形则会出现编译器窗口。需要说明的是在进行设计文件的综合和分析,也可以单独打开某个分析综合过程不必进行全编译界面。当完成上述窗口的设定后,点击START按钮进行设计文件的全编译。如果文件有错,在软件的下方则会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功。(一)半加器的设计五、实验步骤3、管脚分配1)点击Assignments菜单下面的AssignmentEditor,进入到引脚分配窗口。将弹出的窗口中的All改成pin,再点击List,在NodesFound窗口会出现所有信号的名称,点击中间的按钮则SelectedNodes窗口下方出现被选择的端口名称。双击OK按钮,完成设置。进入管脚分配窗口。如下图所示:2)依照“硬件与FPGA的管脚连接表”分配对应的输入管脚名,依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实验的分配关系是:(输入端a、b分别对应的FPGA管脚名为H8、J8,输出端c、s分别对应的FPGA管脚名为G13、G15),如下图所示:3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。(一)半加器的设计五、实验步骤4、对设计文件进行仿真1)选择File--New,在弹出的对话框中选择VectorWaveformFile,点击OK按钮,打开进入一个空的波形编辑器窗口。2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1µS,根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms)。选择QUARTUSII软件的Edit--EndTime命令,弹出线路束时间对话框,在Time框办输入仿真结束时间,点击OK按钮完成设置。如下图所示:3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择InsertNodeorBus…命令,在弹出的InsertNodeorBus对话框界面中点击NodeFinder…按钮。在出现的NodeFinder界面中的Filter列表中选择点击List,在NodesFound窗口出现所有信号的名称,点击中间的按钮则SelectedNodes窗口下方出现被选择的端口名称。双击OK按钮,完成设置,回到InsertNodeorBus对话框,双击OK按钮,所有的输入、输出端口将会在端口名列表区内显示出来。(一)半加器的设计五、实验步骤4、对设计文件进行仿真4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗口中,选择要输入波形的输入端口。以b端口为例,右键单击b,依次选择value--clock--period,将时间改为1us。然后重复此过程将a的时间改成2us(a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次要有所差别)。最后选择软件的FieSave进行保存。5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。在QUARTUSII软件中选择ProcessingSimulatorTool命令,打开仿真器工具窗口,如下图所示。按图上的提示,首先产生功能仿真网表文件(在simulationmode后选择Functional),点击产生功能仿真网表的按钮GenerateFunctionalSimulationNetlist,产生功能仿真网表,然后点击开始仿真的START按钮开始进行仿真,直到仿真进度条为100%完成仿真。点击仿真报告窗口按钮Report,观察仿真波形。确定其符合实验内容。实验仿真波形如下所示:(一)半加器的设计五、实验步骤6、从设计文件到目标器件的加载完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。这里我们介绍对目标器件EP2C35F672C8进行加载的方法。1)使用下载电缆将PC机与实验系统连接起来。2)选择QUARTUSII软件的ToolsProgrammer命令,进行编程器窗口。如果没有设置编程硬件,则编程硬件类型为NoHardware,需要对编程硬件进行设置。点击HardwareSetup…编程硬件设置按钮,进行如下图所示的编程硬件设置对话框。3)点击AddHardware按钮,出现AddHardware对话框,在AddHardware对话框中,从Hardwaretype列表中选择所需要硬件类型,如果是USB接口的请参照用户使用手册中的USB电缆的安装与使用,如果使用的是并口下载线则选取如下图所示的硬件类型,点击OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口,点击Close按钮退出设置。则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有黄色问号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安装--浏览--在我的电脑D盘中选择找到USBbluster即可安装好驱动。5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后,再点选Progam/Configure,编程模式选取JTAG模式,点击STRAT进行文件加载,直到加载进度变为100%,文件成功加载完成。(一)半加器的设计五、实验步骤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--CreateSymbolforCurrentFile,点击确定,即可创建一个代表刚才打开的设计文件功能的符号(.bsf)。模块文件创建完成后,再新建一个图形编辑文件,打开图形编辑器对话框。在图形编辑器窗吕的工件区双击鼠标左键,或点击图中的符号工具按钮,或选择菜单Edit--InsertSymbol...。在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”。其结果均符合半加器的真值表。七、心得体会
本文标题:(VHDL实验报告)一位半加器-全加器的设计
链接地址:https://www.777doc.com/doc-5740418 .html