Quartus II 四位全加器

合集下载

4位全加器

4位全加器

四位全加器的VHDL实现通信0704 王学申0120703490117一、设计要求:采用QuartusII或Max+PlusII集成开发环境,利用VHDL硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。

二、设计分析加法器是数字系统中的基本逻辑器件。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).三、加法器的分类(一)半加器能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。

或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。

图1为半加器的方框图。

图2为半加器原理图。

其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。

图1 半加器图2 半加器原理图根据二进制数相加的原则,得到半加器的真值表如表1所列。

信号输入信号输出A B S C0 0 0 00 1 1 01 0 1 01 1 0 1表1 半加器的真值表由真值表可分别写出和数S,进位数C的逻辑函数表达式为:(1) C=AB (2)由此可见,式(1)是一个异或逻辑关系,可用一个异或门来实现;式(2)可用一个与门实现。

仿真结果如图3所示:图3 半加器仿真图(二)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。

图4为全加器的方框图。

图5全加器原理图。

被加数A i、加数B i从低位向本位进位C i-1作为电路的输入,全加和S i与向高位的进位C i作为电路的输出。

能实现全加运算功能的电路称为全加电路。

4位全加器.docx

4位全加器.docx

根据波形, 当输入为家如前一位进位信号后, 当 c1 为低电平, 全加器与半加器功能一样, 当 c1 为高电平时,输出 s0 与 c0 正好与半加器相反,验证了全加器的功能。 2,建立一个更高层次的原理图设计,利用以上获得的 1 位全加器串联构成 4 位全加器,并完 成编译、综合。 四位全加器原理图如下所示:
实验一 用原理图输入法设计四位全加器
一 实验目的及内容
熟悉利用 Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过 一个 4 位全加器的设计把握利用 EDA 软件进行原理图输入方式的电子线路设计的详细流程。
二 实验原理
一个 4 位全加器可以由 4 个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加 法器的相接。而 1 位全加器可 以用两个半加组合得到。
四 实验总结
通过本次实验,我掌握了 Quartus II 的原理图输入方法设计简单组合电路和层次化设计 的方法和详细流程。并且使用了原理图来创建原件库,而且还进行个各个层次的仿真,很好的 理解了全加器的各个层次的功能结构以及 Quartus 的使用方法。
仅 供 参 考
仅 供 参 考
三 实验仪器
1、 PC 机一台 2、 Quartus II 9.0 软件
四 实验步骤及结果分析
1:完成半加器和全加器的设计,包括原理图输入、编译、综合。 �+a 由半加器的真值表得s0 = ab � b; c0 = ab ,可得半加器原理图如下所示:
图 1 半加器原理图
半加器仿真波形图如下图所示:
其中 a,b 为输入,s0 为一位和输出,c0 为进位输出,根据仿真波形知,b 为低电平时, s0=a ; b 为高电平时,c0=a,s0=a � ;满足半加器真值表。

实验一 4位全加器的设计(1)

实验一  4位全加器的设计(1)

实验一4位全加器的设计一、实验目的:1 熟悉QuartusⅡ与ModelSim的使用;2 学会使用文本输入方式和原理图输入方式进行工程设计;3 分别使用行为和结构化描述方法进行四位全加器的设计;4 理解RTL视图和Technology Map视图的区别;5 掌握简单的testbench文件的编写。

二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。

三、实验内容:1.QuartusII软件的熟悉熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。

2.设计1位全加器原理图设计的原理图如下所示:VHDL源程序如下(行为描述):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f_add_bev is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : out std_logic;CO : out std_logic);end entity;architecture bev of f_add_bev isbegin(CO,S)<=('0',A)+('0',B)+('0',CIN);end bev;VHDL源程序如下(行为描述)的RTL与technology map视图VHDL源程序如下(数据流描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_fl is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic);end entity;architecture fl of f_add_fl isbeginS<=A XOR B XOR CIN;CO<=((A XOR B)AND CIN)OR(A AND B);end fl;VHDL源程序如下(数据流描述)的RTL与technology map视图:VHDL源程序如下(结构化描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_con isport(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic );end entity;architecture con of f_add_con is COMPONENT hadd_vhdPORT(a : IN STD_LOGIC;b : IN STD_LOGIC;co : OUT STD_LOGIC;s : OUT STD_LOGIC );END COMPONENT;SIGNAL S1:STD_LOGIC;SIGNAL CO1:STD_LOGIC;SIGNAL CO2:STD_LOGIC;beginh_add1 : hadd_vhdport map(a => a,B => B,S => S1,CO => CO1);h_add2 : hadd_vhdport map(a => S1,B => CIN,S => S,CO => CO2);CO<=CO1 OR CO2;end con;VHDL源程序如下(结构化描述)的RTL与technology map视图:Testbench文件源程序如下:LIBRARY cycloneiii ;LIBRARY ieee ;USE cycloneiii.cycloneiii_components.all ;USE ieee.std_logic_1164.all ;ENTITY f_add_fl_tb ISEND ;ARCHITECTURE f_add_fl_tb_arch OF f_add_fl_tb ISSIGNAL A : STD_LOGIC :='0';SIGNAL CO : STD_LOGIC ;SIGNAL CIN : STD_LOGIC :='0'; SIGNAL B : STD_LOGIC :='0'; SIGNAL S : STD_LOGIC ;COMPONENT f_add_flPORT (A : in STD_LOGIC ;CO : buffer STD_LOGIC ;CIN : in STD_LOGIC ;B : in STD_LOGIC ;S : buffer STD_LOGIC );END COMPONENT ;BEGINDUT : f_add_flPORT MAP (A => A ,CO => CO ,CIN => CIN ,B => B ,S => S ) ;A<=NOT A AFTER 0.25US;B<=NOT B AFTER 0.5US;CIN<=NOT CIN AFTER 1US;END ;功能仿真波形如下:时序仿真波形如下:3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器作为电路单元,设计4位全加器。

EDA在QuartusII中用原理输入法设计4位加法器

EDA在QuartusII中用原理输入法设计4位加法器

专业班级:学号:姓名:EDA 技术实验报告实验项目名称:在QuartusII中用原理输入法设计4位加法器实验日期:2012.05.14 实验成绩:实验评定标准:1)实验程序是否正确A()B()C()2)实验仿真、结果及分析是否合理A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的.熟悉利用Quartus II的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二、实验原理:一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,及将低位加法器的进位输出cout与相邻的高位加法器的最低输入信号cin相接(串行进位加法器)三、实验器材QuartusII软件,ACEX1K系列EP1K30TC等。

四、实验内容(实验过程)实验内容1:按照附录四介绍的方法与流程,完成半加器和全加器的设计,包括原理图,编译,综合,适配,仿真,实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。

A.打开Quantus2软件,选择new project wizard 新建项目。

B.在该项目下新建图形文件(block diagram/schematic file),如图调出门电路连接成半加器。

C.进行编译和仿真。

记录实验结果。

仿真前要新建波形文件,file new。

弹出的对话框选择other files选项卡面的vector waveform file。

在新建的波形文件左边空白栏点击鼠标右键,选择insert insert node or bus.在出现的对话框中直接点击node finder。

之后,在出现的对话框中选择list ,当坐标的node find栏中出现设计文件的输入输出端口后,再点击“》”加入右边“selected nodes”栏中,然后就ok。

D.把该半加器生成符号,以备下一环节的全加器使用,选择files create。

4位二进制全加器设计

4位二进制全加器设计

任务一4位全加器设计一、实验目的1、掌握运用Quartus II原理图编辑器进行层次电路系统设计的方法。

2、进一步熟悉利用Quartus II进行电路系统设计的一般流程。

3、掌握4位全加器原理图输入设计的基本方法及过程。

二、实验原理(1)设计一位半加器真值表:(2)设计一位全加器真值表:SOn=n n n−1;COn=(A n⨁B n)C n−1+A n B n;(2)设计多位全加器由一位全加器组合成多位全加器。

依次将低位全加器的进位输出端接到高位全加器的进位输入端,由四个一位全加器构成四位全加器。

三、实验过程1、一位半加器的设计(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“01.bdf”,如图:(2)仿真波形①执行“Files”─>“New”─>“Vector Waveform File”─>“OK”②在波形编辑窗口双击左键,执行“Insert Node or Bus”─> “New Finder”─> “List”─>“》”─>“OK”。

③保存文件为“01.vwf”。

④执行菜单“Processing”─> “Start Simulation”,如图:(3)仿真波形分析:(4)封装之后的图:设“01.bdf”为顶层文件,执行“Files”─>“Create、Update”─> “Create Symbol Files forCurrent Files”,保存。

如图:2、一位全加器(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“02.bdf”,如图:(2)仿真波形①设“02.bdf”为顶层文件。

四位全加器

四位全加器
二、实验设备
1.C机一台;
2.Altera Blaster下载器一根;
3.KHF-5实验箱一台。
三、实验原理
全加器是由两个加数Xi和Yi以及低位来的进位Ci-1作为输入,产生本位和Si以及向高位的进位Ci的逻辑电路。它不但要完成本位二进制码Xi和Yi相加,而且还要考虑到低一位进位Ci-1的逻辑。对于输入为Xi、Yi和Ci-1,输出为Si和Ci的情况,根据二进制加法法则可以得到全加器的真值表如下表9-1所示:
五、实验过程
1.打开QUARTUSII软件,新建一个工程。
2.建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3.按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
4.编写完VHDL程序后,保存起来。方法同实验一。
5.对编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
BEGIN
abc <= a & b ; --a相并b,即a与b并置操作
PROCESS(abc)
BEGIN
CASE abc IS --类似于真值表的CASE语句
WHEN "00" => so<='0'; co<='0' ;
WHEN "01" => so<='1'; co<='0' ;
WHEN "10" => so<='1'; co<='0' ;
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;

quartus_4位二进制加减法计数器

quartus_4位二进制加减法计数器

贵州大学实验报告学院:专业:班级设计原理框图从原理图中可见,需要有1bit装载位(load)、1bit清零位(clr)、方向控制位up_down和4bit数据选择位DIN[3..0]。

装载位我们采用SW0,清零位采用SW1,方向控制位为SW2。

SW3-SW6作为数据输入端,LED1-LED4显示数据的输出,LED5为溢出标志位。

实验内容编写一个带预置输入,清零输入,可加可减计数器的verilog代码或VHDL代码并仿真,编译下载验证module counter4(load,clr,c,DOUT,clk,up_down,DIN);//定义模块input load;//定义输入信号input clk;//wire load;//定义线网型input clr;//wire clr;//input up_down;//wire up_down;//input [3:0]DIN;//定义4位二进制输入信号wire [3:0]DIN;// 定义4位二进制线网型信号output c;//定义输出信号reg c;//定义寄存器类型信号output [3:0]DOUT;//wire [3:0]DOUT;reg [3:0]data_r;assign DOUT=data_r;always@(posedge clk or posedge clr or posedge load)//检测clk,clr,load的上升沿beginif(clr)//当clr=1的时候进行下面的运行程序data_r<=0;//将data_r置零else if(load) //当load=1的时候进行下面的运行程序data_r<=DIN;//将DIN的值赋给data_relse begin if(up_down)//load=0的时候进行下面的操作beginif(data_r==4'b1111)begin///当data_r==4'b1111的时候进行下面的运行程序data_r<=4'b0000;c=1;endelse begin//当data_r不等于4'b1111的时候进行下面的运行程序data_r<=data_r+1;//进行加法计数c=0;endendelsebeginif(data_r==4'b0000)begin//当data_r==4'b0000的时候进行下面的运行程序data_r<=4'b1111;c=1;endelse begin//当data_r不等于4'b1111的时候进行下面的运行程序data_r<=data_r-1;//进行减法计数c=0;endendendendendmodule//结束模块实验数据如图为波形仿真结果,当clr为1的时候,输出结果为0000;当clr为0,load为1时,输出结果为输入数据DIN的值,当up_down为1时,加法进位,进行加1运算,当data_r达到1111时,data_r变为0000,级零信号c为1;当up_down为0时,减法进位,进行减1运算,当data_r达到0000时,data_r变为1111,级零信号c为0。

实验二 原理图输入法设计-4位加法器

实验二  原理图输入法设计-4位加法器

实验二四位加法器的设计与仿真——原理图输入法一实验目的通过一个4位加法器的设计掌握QuartusII的原理图输入方法及层次化设计的方法。

二原理说明一个4位加法器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出co与相邻的的高位加法器的最低进位输入信号ci相接。

三实验内容与步骤1.按照参考图2.1完成全加器的设计,包括原理图输入、编译、仿真,并将此全加器电路设置成一个硬件符号入库。

图2.1全加器的设计电路操作步骤:(1)建立设计项目(Project):与实验一的操作相同。

(2)新建模块/原理图文件,进入图形编辑器方式。

执行File|New命令,选择“Block Diagram/Schematic File ”(模块/原理图文件)。

(3)选择元件。

在原理图编辑窗中的任何一个位置上双击鼠标的左键将跳出一个元件选择窗。

图2.2元件选择对话框(4)编辑图形文件在元件库找到自己想要的元件,放好后连线并添加输入输出端口,画出完整的电路图后保存并编译通过。

(5)对设计项目设置进行仿真:过程与方法与实验一相同。

(6)将设计项目设置成可调用的元件以便调用基本逻辑元件库参数可设置的强函数元件库基本逻辑元件库中的元件 由此输入所需要的元件名MAX+plus 库 图2.3 一位全加器的图形编辑文件图2.4 将一位全加器模块生成符号入库2.建立一个更高的原理图设计层次,调用以上获得的1位全加器构成4位加法器,并完成编译、综合、仿真。

3.设计文件打包上传。

四实验报告:详细叙述4位加法器的设计流程;给出各层次的原理图及其对应的仿真波形图;将实验原理、实验过程、仿真结果写进实验报告。

五思考题:为了提高加法器的速度,如何改进以上设计的进位方式?六选作内容:用一片74163和一片74138构成一个具有8路顺序脉冲输出的顺序脉冲产生器。

要求在原理图上标明第1路到第8路输出的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.系统电路架构
2.练习使用试验箱
3.VHDL语言入门
EDA软件开发平台161
——Quartus II
1.设计一个四位的全加器falladder
考虑到低位过来的进位(半加器halfadder不需要考虑低位的进位)半加器:S=A⊕B C=AB
(半加器的电路)
见下图
全加器:S=A⊕B⊕CI C=AB+BC+AC
(全加器的真值表)
见下图
注意工程文件名不能以数字开头且不能以下划线结尾
将底层文件生成为顶层文件
将半加器创造为符号图元
由此可以添加所设置的符合元作为库文件
添置原件(半加器作为独立元件在Device Design Files 里添加)
此时半加器可以作为独立的原件作为下一层的电路设计的独立元。

将一位全加器设置为单元,为下面的四位全加器做准备
调用四个一位全加器,作为四位全加器的原件来设计四位全加器
完成四位全加器的制作
也可将输入输出端口改为总线形式:
输入端口a[3..0]、b[3..0] 相对应的节点分别为a0 a1 a2 a3; 输出端口sum[3..0] sum0 sum1 sum2 sum3;
连接好电路图,现在开始进行仿真
首先将四位全加器置顶
进行仿真
总结:
Project:add4bit.qpf
半加器halfadder.bdf→全加器fallfadder.bdf→四位全加器add4bit.bdf→完成设计在编译的过程中要将其设置为顶层文件。

相关文档
最新文档