FPGA4位全加器的设计
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位全加器的设计(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位全加器。
四位全加器
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;
四位全加器实验Verilog
实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。
2.了解Verilog HDL语言的行为描述的优点。
二、实验原理4位全加器工作原理1)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci 作为电路的输出。
能实现全加运算功能的电路称为全加电路。
全加器的逻辑功能真值表如表中所列。
2)1位全加器一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin;Co=AB+BCin+ACin 其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;这两幅图略微有差别,但最后的结果是一样的。
3)4位全加器4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。
三、实验步骤四、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIJN:83L4:64KHZ:80五、心得体会首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是verilog hdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。
这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以代码写得比较简单,没有用经典的分频代码。
这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享assign preclk=(divider==16383)?1:0;//divider==16383,preclk=1always @(posedge clk) //基频上升沿触发beginif(preclk) //preclk=1divider=origin;elsedivider=divider+1;endalways @(posedge preclk) //调整占空比beginspeaker=~speaker; //2 分频产生方波信号end这部分实现了分频功能,其中origin+divider=16384=2^14,这个数根据自己的需要而定。
4位全加器设计解析
可编程逻辑器件设计大作业题目四位全加器设计学院自动化与电气工程学院班级姓名学号2104年12月30 日目录摘要 (1)1.设计目的 (2)2.设计要求 (2)3.设计原理 (2)3.1.四位全加器 (2)3.2.四位全加器的原理图 (4)4.设计方案 (4)4.1.仿真软件 (4)4.2.全加器原理 (5)4.2.1一位全加器的设计与原理 (5)4.2.2四位全加器的原理及程序设计 (5)5.程序设计 (7)6.仿真及结果 (8)总结与体会 (10)参考文献 (11)摘要VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
本次设计是用VHDL语言设计四位全加器,并用Quartus II仿真。
关键词:VHDL 四位全加器Quartus II四位全加器设计1.设计目的复习加法器的原理,掌握加法器的设计实现方法,设计实现数字系统设计中常用的4位全加器,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。
2.设计要求1)复习EDA的相关技术与方法;2)掌握VHDL或者Verilog语言,并要求能编写程序。
3)Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。
4)设计相关简单的电路,完成既定的功能。
3.设计原理3.1.四位全加器加法器是数字系统中的基本逻辑器件。
4位二进制全加器的设计
4位⼆进制全加器的设计4位⼆进制全加器的设计摘要加法器是产⽣数的和的装置。
加数和被加数为输⼊,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输⼊,⽽和数与进位为输出则为全加器。
常⽤作计算机算术逻辑部件,执⾏逻辑操作、移位与指令调⽤。
在电⼦学中,加法器是⼀种数位电路,其可进⾏数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以⽤来表⽰各种数值,如:BCD、加三码,主要的加法器是以⼆进制作运算。
多位加法器的构成有两种⽅式:并⾏进位和串⾏进位⽅式。
并⾏进位加法器设有并⾏进位产⽣逻辑,运⾏速度快;串⾏进位⽅式是将全加器级联构成多位加法器。
通常,并⾏加法器⽐串⾏加法器的资源占⽤差距也会越来越⼤。
我们采⽤4位⼆进制并⾏加法器作为折中选择,所选加法器为4位⼆进制先⾏进位的74LS283,它从C0到C4输出的传输延迟很短,只⽤了⼏级逻辑来形成和及进位输出,由其构成4位⼆进制全加器,并⽤Verilog HDL进⾏仿真。
关键字全加器,四位⼆进制,迭代电路,并⾏进位,74LS283,Verilog HDL仿真总电路设计⼀、硬件电路的设计该4位⼆进制全加器以74LS283(图1)为核⼼,采⽤先⾏进位⽅式,极⼤地提⾼了电路运⾏速度,下⾯是对4位全加器电路设计的具体分析。
图11)全加器(full-adder )全加器是⼀种由被加数、加数和来⾃低位的进位数三者相加的运算器。
基本功能是实现⼆进制加法。
全加器的功能表输⼊输出输⼊输出逻辑表达式:CI B A S ⊕⊕==AB'CI'+A'BCI'+A'B'CI+ABCI()AB CI B A CO ++=其中,如果输⼊有奇数个1,则S 为1;如果输⼊有2个或2个以上的1,则CO=1。
实现全加器等式的门级电路图如图2所⽰,逻辑符号如图3所⽰.图2 图32)四位⼆级制加法器 a) 串⾏进位加法器四位⼆进制加法器为4个全加器的级联,每个处理⼀位。
eda课程设计论文4位全加器
eda课程设计论文4位全加器一、教学目标本课程的目标是让学生理解并掌握全加器的工作原理和设计方法,能够运用数字逻辑设计出功能完整的全加器。
知识目标:使学生了解全加器的功能和作用,理解其内部电路的工作原理,掌握全加器的真值表和布尔表达式。
技能目标:培养学生运用数字逻辑设计简单电路的能力,能够独立完成全加器的设计和仿真。
情感态度价值观目标:培养学生对电子技术的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队协作精神。
二、教学内容本课程的教学内容主要包括全加器的功能和工作原理、全加器的真值表和布尔表达式、全加器的设计和仿真。
首先,讲解全加器的功能和作用,通过具体的实例让学生了解全加器在计算机中的重要性。
然后,讲解全加器的内部电路工作原理,使学生理解全加器是如何实现加法的。
接下来,介绍全加器的真值表和布尔表达式,让学生掌握全加器的工作原理。
最后,讲解全加器的设计和仿真方法,培养学生运用数字逻辑设计电路的能力。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
首先,通过讲授法向学生传授全加器的理论知识,使学生了解全加器的基本概念和工作原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生的理解能力。
接下来,通过案例分析法分析实际案例,使学生了解全加器在计算机中的应用。
最后,通过实验法让学生动手设计和仿真全加器,提高学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备。
教材:选用《数字逻辑设计》作为主教材,系统地介绍全加器的理论知识。
参考书:推荐《计算机组成原理》等参考书,供学生深入学习和参考。
多媒体资料:制作全加器的原理讲解和设计过程的视频,通过动画和图像等形式直观地展示全加器的工作原理。
实验设备:准备数字逻辑设计实验室,提供全加器的设计和仿真实验所需设备。
用原理图输入法设计四位全加器实验
实验一用原理图输入法设计四位全加器
一实验目的
熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二实验原理
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。
而1位全加器可以按照5.4节介绍的方法来完成。
三实验内容
分层设计:
1:先设计一个一位半加器,由一个2输入与门一个非门和一个异或门构成。
2个input a和b
2个输出co 和so
Co为进位
半加器原理图如下所示:
半加器仿真波形图如下图所示:
一个一位全加器分别由2个刚设计的半加器构成,2个半加器之间通过一个2输入或门连接。
一位全加器设计原理图如下:
一位全加器仿真波形如下图所示:
2,建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。
其中A0 A1 A2 A3 B0 B1 B2 B3为2个四位输入,4位输出D0 D1 D2 D3为4个全加器so输出,4个co 进位依次连接,最后只输出一个进位co,表示最后结果总进位。
四位全加器原理图如下所示:
四位全加器波形图如下所示:
四实验总结
通过本次实验,我掌握了Quartus II 的原理图输入方法设计简单组合电路和层次化设计的方法和详细流
程。
4位全加器verilog课程设计
4位全加器verilog课程设计一、课程目标知识目标:1. 理解4位全加器的原理和功能,掌握其Verilog硬件描述语言实现方法。
2. 学习并掌握数字电路中加法器的基本结构和工作原理。
3. 掌握Verilog模块化编程,能够实现并测试4位全加器的基本功能。
技能目标:1. 能够运用Verilog语言编写4位全加器的代码,并进行功能仿真。
2. 学会使用硬件描述语言进行数字电路的设计,提高实际问题解决能力。
3. 能够对4位全加器进行调试和优化,提升编程实践技能。
情感态度价值观目标:1. 培养学生的团队合作意识,提高学生在项目实践中的沟通与协作能力。
2. 增强学生对数字电路设计领域的兴趣,激发学生的创新精神。
3. 引导学生树立正确的价值观,认识到科技发展对社会进步的重要性。
课程性质:本课程为电子信息工程及相关专业高年级的数字电路设计课程,旨在通过4位全加器的Verilog实现,让学生掌握数字电路设计的基本方法和实践技能。
学生特点:学生已具备一定的数字电路基础和Verilog编程知识,具备分析问题和解决问题的能力。
教学要求:注重理论与实践相结合,鼓励学生积极参与课堂讨论,培养学生的动手能力和实际操作技能。
通过课程学习,使学生在知识、技能和情感态度价值观方面均取得明显进步。
二、教学内容本课程教学内容主要包括以下几部分:1. 数字加法器原理回顾:介绍加法器的基本原理,重点讲解4位全加器的工作流程和关键特性。
- 教材章节:数字电路基础,第3章第2节。
2. Verilog硬件描述语言基础:复习Verilog的基本语法,强调模块化编程方法。
- 教材章节:硬件描述语言Verilog,第4章。
3. 4位全加器的Verilog设计:- 设计原理:讲解4位全加器的设计思路和实现方法。
- 代码编写:引导学生编写4位全加器的Verilog代码,并进行模块化设计。
- 教材章节:数字电路设计,第5章第3节。
4. 功能仿真与调试:- 介绍仿真工具和仿真方法,指导学生进行4位全加器的功能仿真。
四位全加器版图课程设计
四位全加器版图课程设计一、课程目标知识目标:1. 让学生理解四位全加器的原理,掌握其功能、结构和操作方法。
2. 使学生掌握数字电路中加法器的基本概念,了解四位全加器在数字系统中的应用。
3. 帮助学生掌握二进制数加法运算的规则,并能运用四位全加器进行简单的二进制加法计算。
技能目标:1. 培养学生运用所学知识,分析并设计简单的四位全加器电路。
2. 提高学生动手实践能力,能够正确搭建四位全加器电路,并进行调试。
3. 培养学生运用四位全加器解决实际问题的能力。
情感态度价值观目标:1. 培养学生对数字电路的兴趣,激发他们学习电子技术的热情。
2. 培养学生严谨的科学态度,注重实验数据的准确性和可靠性。
3. 引导学生认识到数字电路在现代科技中的重要作用,增强他们的国家荣誉感和责任感。
课程性质分析:本课程为电子技术基础课程,旨在让学生掌握四位全加器的基本原理和实际应用,培养他们的实践操作能力。
学生特点分析:学生为初中年级学生,对电子技术有一定的基础,具备基本的电路知识和动手能力,但需要进一步引导和培养。
教学要求:1. 注重理论与实践相结合,让学生在实际操作中掌握四位全加器的原理和应用。
2. 采用启发式教学方法,引导学生主动思考、探索,培养他们的创新意识。
3. 注重个体差异,因材施教,使每位学生都能在课程中取得实质性的进步。
二、教学内容1. 四位全加器的基本概念与原理:- 加法器的作用与分类- 四位全加器的结构及工作原理- 二进制数加法运算规则2. 四位全加器的电路设计与分析:- 电路元件的选用与连接- 四位全加器的逻辑表达式及简化- 电路图的绘制与解读3. 四位全加器的实际应用:- 在数字系统中的应用场景- 与其他数字电路的组合应用- 实际电路搭建与调试4. 教学内容的安排与进度:- 第一课时:介绍加法器的基本概念,引导学生了解四位全加器的原理和结构- 第二课时:讲解二进制数加法运算规则,分析四位全加器的电路设计方法- 第三课时:指导学生动手搭建四位全加器电路,进行调试与优化- 第四课时:探讨四位全加器在实际应用中的组合运用,培养学生的创新意识教材关联:教学内容与教材第四章“数字电路基础”中第四节“加法器”相关内容紧密关联,涵盖了四位全加器的基本原理、电路设计、实际应用等方面,为学生提供了系统性的学习指导。
四位全加器实验报告格式
实验二 使用VHDL 语言设计语言设计四位全加器四位全加器 实验报告专业班级专业班级:: 学号学号:: 姓名姓名::一、实验目的1. 了解四位全加器的工作原理。
2. 掌握基本组合逻辑电路的设计方法。
3. 熟悉应用Quartus II 进行FPGA 开发过程和开发方法。
4. 掌握VHDL 语言程序的基本结构,初步熟悉VHDL 语言设计方法。
二、实验原理全加器是由两个加数A i 和B i 以及低位来的进位C i 作为输入,产生本位和Si 以及向高位的进位C O 的逻辑电路。
它不但要完成本位二进制码A i 和B i 相加,而且还要考虑到低一位进位C i 的逻辑。
对于输入为A i 、B i 和C i ,输出为S i 和C O 的情况,根据二进制加法法则可以得到全加器的真值表:A iB iC i S i C O 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 111由真值表得到Si 和Ci 的逻辑表达式为:S i =A i ⊕B i ⊕C iC O =(A i ⊕B i )C i +A i B i这是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。
四位全加器可以看作是4个1位全加器串行构成。
三、实验内容实验内容1.根据逻辑表达式设计一个四位二进制全加器,考虑最低位的进位输入信号。
2.写出四位全加器的VHDL 语言源代码,并下载验证。
四、预习要求1.了解VHDL 语言程序的基本结构一个VHDL 语言程序必须包含 和 两个部分,除这两个部分外,多数程序还包含 和 。
• 实体:定义电路实体的外观,电路的外部输入和输出端口,即模块的外部特征。
实体使用关键字 来定义,用 关键字来定义输入输出端口, 以 关键字结束。
• 结构体:用来描述电路的内部结构和逻辑功能。
结构体是有一个或多个并行语句构结构体是有一个或多个并行语句构成的成的,,他们的书写顺序并不代表执行顺序,这一点与其他高级语言有所不同。
4位全加器
设计过程如下:1.构建一个全加器全加器的真值表和逻辑表达式如下:表一全加器真值表逻辑表达式为:S=A⊕B⊕c , C=AB+(A⊕B)c(1)选逻辑门。
双击Logic and Bit Operations。
将Logical Operator模块拖到工作窗口中。
双击模块打开Block Parameters窗口,将Main标签中的Operator选项改为XOR或OR,再拖入一个AND门。
(2)选输入信号。
选用Pulse Generator。
打开Sources面板,拖入三个Pulse Generator 并放置在窗口的左侧。
这三个Pulse Generator作为加法器真值表的三个输入。
双击第一个并将它的周期(period)设定为8秒,相位延迟(phase delay)设定为4秒,Pluse Width设置为50并Pulse Generator重命名为A input,。
双击第二个,将周期设定为4秒,相位设定为2秒,Pluse Width设置为50,重命名为B input,。
双击第三个,将周期设定为2秒,相位设定为1秒,Pluse Width设置为50,重命名为C input。
(3)输入输出的观测。
用Commonly Used Blocks 中的Scope(示波器)模块。
输入分别为A、B、C输出为S、C(4)选好之后,进行连线,连线结果如下图1 全加器逻辑图(5)执行运行用示波器分别观察A、B、C 、S、C如下:A:B:C:S:C:经过比较,各波形与全加器真值表中数值相符合,因此,创建全加器模块。
2. 创建全加器模块选中要创建子系统的模块,选择Edit\CreateSubsystem 菜单,创建全加器模块,命名为Full_Adder,结果如下图图2 全加器模块3.构建一个4位加法器复制为四个全加器,并在Commonly Used Blocks中拖动3个In、2个Out、2个Demux、1个Mux,并连接成四位全加器,如下图所示:图3 4位全加器经赋值检验连接正确,保存命名为Full Adder_4。
四位全加器
实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。
2.了解Verilog HDL语言的行为描述的优点。
二、实验原理4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。
(S表示输出结果;C表示进位输出)一位全加器的数学表示如下:(S是1位输出结果,C是1位进位输出)S=A⊕B⊕CinC=AB+BCin+ACin一位全加器可以通过两种方式实验,1)门级建模:xor (s11,a,b);and(c1,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);2)数据流方式:assign {s,cc}=a+b+cin;四位全加器:S是4位输出结果,C0、C1、C2、CC为进位输出S[0]=A[0]⊕B[0]⊕CinC0=A[0]B[0]+B[0]Cin+A[0]CinS[1]=A[1]⊕B[1]⊕C0C1=A[1]B[1]+B[1]C0+A[1]C0S[2]=A[2]⊕B[2]⊕C1C2=A[2]B[2]+B[2]C1+A[2]C1S[3]=A[3]⊕B[3]⊕C2C3=A[3]B[3]+B[3]C2+A[3]C2三、实验内容l. 用Verilog HDL语言设计4位全加器(调用子模块的方法)。
2、根据led灯显示的结果,可以通过将相应的控制信号连接至“扬声器”的输入端VIN,使得4位全加器输出不同数值时,扬声器能自动调节,并发出不同的“嘀嘀嗒嗒”的声音。
3. 锁定引脚, 并下载验证之。
四、管教配置其中:clk1k与clk4k用于控制扬声器的驱动脉冲信号。
五、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIN:83L4:6500KHZ:8KHZ:34KHZ:801024HZ:81六、实验代码:module shiyan4(s,cc,a,b,cin,speaker,clk3,clk8,clk4,clk500); output [3:0] s;output reg speaker;output cc;input [3:0] a,b;input cin;input clk8,clk3,clk4,clk500;wire c0,c1,c2;yiweiadd add0(s[0],c0,a[0],b[0],cin);%子模块调用yiweiadd add1(s[1],c1,a[1],b[1],c0);yiweiadd add2(s[2],c2,a[2],b[2],c1);yiweiadd add3(s[3],cc,a[3],b[3],c2);always @(a or b)begincase(s)4'b0000: speaker=clk3;4'b0001:speaker=clk4;4'b0010:speaker=clk8;4'b0011:speaker=clk500;default:;endcaseendendmodule子模块:module fulladd(s,cc,a,b,cin);output s,cc;input a,b,cin;wire c11,c22,s11;xor (s11,a,b);and(c11,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);endmodule七、实验心得1扬声器的实现有两种方法:一是用多个时钟来表示不同的计算结果;二是用一个时钟,通过分频来实现不同的频率的声音。
4位快速加法器设计原理
4位快速加法器设计原理快速加法器是一种计算器件,可以快速地对两个二进制数进行加法运算。
相对于一般的加法器,它具有更高的速度和效率。
本文主要介绍4位快速加法器的设计原理。
1.基本概念在二进制加法中,加法器通过对两个二进制数分别进行逐位相加的方法,得到它们的和。
二进制加法的基本规则如下:0+0=0;1+0=1;0+1=1;1+1=0(进位1)。
在四位二进制数的加法中,每位相加可以得到一个位和进位两位。
4位快速加法器在计算时需要考虑到位和进位两个方面。
2.快速加法器的组成4位快速加法器可以由4个1位全加器和1个2位全加器组成。
1位全加器的输出等于输入A、B和进位C的和。
输出S等于(A xor B) xor C,进位C 等于AB+C(A xor B)。
2位全加器是由两个1位全加器和一个2选1选择器组成。
输入A和B分别与这两个全加器相连,进位C输入到这两个全加器的进位端。
选择器的选择信号是两个输入和上一个全加器的进位,选择器的输出连接到2位全加器的进位输出。
3.原理图4位快速加法器的原理图如下所示:每个1位全加器都由具有相同运算功能的逻辑门电路组成。
在1位全加器中,输入A、B和进位C分别与XOR、AND和OR门相连,这些门的输出再次进行逻辑运算得到输出S和新的进位C。
2位全加器由两个1位全加器和一个2选1选择器组成。
选择器的选择信号是上一个1位全加器的进位和两个输入的和。
这两个1位全加器的进位输出也分别与这个选择器相连。
4.流程图4位快速加法器的计算流程图如下所示:将输入的两个4位二进制数的第0位分别输入到1位全加器1和2中。
这两个全加器的进位C0均为0,得到第0位的位和(S0)和进位(C1)。
然后,将输入的两个4位二进制数的第1位分别输入到1位全加器3和4中。
全加器3的进位C1为1,因为它是在第0位加法器的进位C1的基础上进行的。
全加器4的进位C2为全加器3的进位C2与两个输入的和的2选1选择器输出的结果。
EDA实验一 1位全加器和四位全加器的设计
实验一1位全加器和四位全加器的设计一、实验目的1、掌握Quartus Ⅱ6.0软件使用流程。
2、初步掌握VHDL的编程方法。
3、掌握图形层次设计方法;4、掌握全加器原理,能进行多位加法器的设计。
二、实验原理(一位全加器的逻辑表达式为:sum=a^b^Cl;Ch= a&b|(a^b)&Cl.(2)四位加法器加法器是数字系统中的基本逻辑器件。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
三、实验连线(1)一位全加器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、将JPLED1短路帽右插,JPLED的短路帽全部上插。
3、请将JP103的短路帽全部插上,,打开实验箱电源。
( 2 ) 四位加法器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、JPLED1短路帽右插,JPLED的短路帽全部上插。
3、请将JP103的短路帽全部插上,,打开实验箱电源。
四、实验代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY fulladder ISPORT(A,B,C1 :IN STD_LOGIC;CH,SUM : OUT STD_LOGIC);END ENTITY fulladder;ARCHITECTURE ADO OF fulladder isSIGNAL AB :STD_LOGIC;BEGINSUM<=A XOR B XOR C1;AB<=A XOR B;CH<=(A AND B) OR (AB AND C1);END ARCHITECTURE ADO;一位全加器波形如下:图4-1四位加法器波形如下:图4-2五、实验仿真过程SW1,SW2,SW3对应a,b,Cl;D101,D102分别对应sum和Ch,当结果为0时彩色LED灯熄灭,当结果为1时彩灯点亮,改变SW1,SW2,SW3的输入状态,观察实验结果。
4位全加器的设计与仿真
2.1.3 一位全加器的图形设计输入
• 1. 一位全加器原理图设计分析 一位全加器输入端为加数A、B,低位的进位Ci,输出端
为和S、向高位的进位Co。
项目2 全加器电路设计
• 由表2-1可以写出和S及高位的进位Co的逻辑 表达式:
• 经转换及化简可得:
项目2 全加器电路设计
项目2 全加器电路设计
• (3)调入图形符号 在图形编辑器窗口空白处双击鼠标左键,或选择菜单Edit |
Insert Symbol…,可以打开图形符号库选择对话框。
在Libraries对话 框中点开图形符 号库的安装目录 及下属的子文件 夹,基本逻辑门 的图形符号在 primitives目录 下的logic目录中, 选择所需的器件
• 出现一个波形编辑窗口,如图2-19所示。
• (2)设定时间参数 可以根据仿真的需要,在波形编辑器界面中,设置时
间参数。选择菜单Edit | End Time...,可以设置仿真结束时 间;选择菜单Edit | Grid Size...,可以设置显示网格间距的 时间。
项目2 全加器电路设计
• (3)添加输入、输出节点 • 1)选择菜单Edit | Insert | Insert Node or Bus...,或在
项目2 全加器电路设计
• (4)输入原理图
•
在Symbol 对话框中,将xor、and2、or3器件调入图形编辑器窗口中,
合理排布各器件的位置并连线。最后放置输入端口input和输出端口
output(在pin中),完成一位全加器的原理图如图2-15所示。
件打钩
多个同样的元
• (5)保存原理图文件 完成图2-15的原理图文件后,选择主菜单File | Save保存设计文件,名称为 adder1.bdf。
FPGA四位加法器实验报告
题目:含异步清0和同步使能的4位加法计数器一. 实验目的.学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL技术。
二.实验原理.如图是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,4位锁存器;rst是异步清0信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。
ENA是使能信号,当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器。
三.实验内容.设计一个含异步清0和同步使能的4位加法计数器;实现对输入时钟(clk)的计数。
任务分析:在RST=1,ENA=1时,系统对输入时钟进行计数,所计数值输出至OUTY(3 DOWNTO 0),当计数满15时,产生一个进位,输出至COUT,同时OUTY溢出归零;如果RST=1,ENA=0时,保持原来的计数值不变。
如果RST=0,置输出信号为0;1)异步复位,则输入信号有复位信号RST2)同步使能, 则输入信号有使能信号ENA3)要求同步的时序,则输入信号有时钟CLK在QuartusII上对下列程序进行编辑、编译、综合、适配、仿真。
module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);input CLK,RST,ENA;output CLK_1,RST_1,ENA_1;output[3:0] OUTY;output COUT;reg[3:0] OUTY;reg COUT;wire CLK_1; wire RST_1; wire ENA_1;assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA;always@(posedge CLK or negedge RST)begin if(!RST)begin OUTY<=4'b0000;COUT<=1'b0; endelse if(ENA)Begin OUTY<=OUTY+1;COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]; end end endmodule四.实验步骤.1.在QUARTUSII软件下创建一工程,工程名为CNT4B,芯片名为EP2C35F672C6;2.新建Verilog语言文件,输入以上Verilog语言源程序,并将程序命名为CNT4B.vhd,保存在与工程相同的文件夹中;3.进行功能仿真、全编译、时序仿真,如出现错误请按照错误提示进行修改,保证设计的正确性。
FPGA 4位全加器的设计
目录4位全加器设计报告一、设计原理全加器是指能进行加数、被加数和低位来的进位信号相加,并依照求和结果给出该位的进位。
4位加法器能够采纳4个以为全加器级连成串行进位加法器,如以下图所示,其中CSA为一名全加器。
显然,关于这种方式,因高位运算必需要等低位进位来到后才能进行,因此它的延迟超级可观,高速运算无法胜任。
A和B为加法器的输入位串,关于4位加法器其位宽为4位,S为加法器输出位串,与输入位串相同,C为进位输入(CI)或输出(CO)。
实现代码为:全加器真值表如下:输入输出Xi Yi Ci-1 Si Ci0 0 0 0 00 0 1 1 0output[3:0]sum;output cout;input[3:0]ina,inb;input cin;assign {count,sum}=ina+inb+cin;endmodule二、设计目的⑴熟悉开发环境,把握工程的生成方式。
⑵熟悉SEED-XDTK XUPV2Pro实验环境。
⑶了解Verilog HDL语言在FPGA中的利用。
⑷了解4位全加器的Verilog HDL语言实现。
三、设计内容用Verilog HDL语言设计4位全加器,进行功能仿真演示。
四、设计步骤1、创建工程及设计输入。
⑴在E:\progect\目录下,新建名为count8的新工程。
⑵器件族类型(Device Family)选择“Virtex2P”器件型号(Device)选“XC2VP30 ff896-7”综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”⑶下面一直next和确信。
⑷设计输入:在源代码窗口中单击右键,在弹出的菜单被选择“New Source”,在弹出的对话框被选择“Verilog Moudle”,在右端的“File name”中输入源文件名adder4,下面各步单击“Next”按钮。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计原理 (2)
二、设计目的 (3)
三、设计容 (3)
四、设计步骤 (3)
五、总结与体会 (7)
4位全加器设计报告
一、设计原理
全加器是指能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位。
4位加法器可以采用4个以为全加器级连成串行进位加法器,如下图所示,其中CSA为一位全加器。
显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算无法胜任。
A和B为加法器的输入位串,对于4位加法器其位宽为4位,S为加法器输出位串,与输入位串相同,C为进位输入(CI)或输出(CO)。
实现代码为:全加器真值表如下:
module
adder4(cout,sum,ina,inb,cin); output[3:0]sum;
output cout;
input[3:0]ina,inb;
输入输出Xi Yi Ci-1 Si Ci 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
input cin;
assign {count,sum}=ina+inb+cin;
endmodule
二、设计目的
⑴熟悉ISE9.1开发环境,掌握工程的生成方法。
⑵熟悉SEED-XDTK XUPV2Pro实验环境。
⑶了解Verilog HDL语言在FPGA中的使用。
⑷了解4位全加器的Verilog HDL语言实现。
三、设计容
用Verilog HDL语言设计4位全加器,进行功能仿真演示。
四、设计步骤
1、创建工程及设计输入。
⑴在E:\progect\目录下,新建名为count8的新工程。
⑵器件族类型(Device Family)选择“Virtex2P”
器件型号(Device)选“XC2VP30 ff896-7”
综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”
⑶下面一直next和确定。
⑷设计输入:在源代码窗口中单击右键,在弹出的菜单中选择“New Source”,
在弹出的对话框中选择“Verilog Moudle”,在右端的“File name”中输入源文件名adder4,下面各步单击“Next”按钮。
⑸在弹出的源代码编辑框输入源代码并保存。
2、功能仿真
⑴在source窗口“sources for”中选择“Behavioral Simulation”。
由“Test Bench
WaveForm”添加激励源。
点击Finish。
⑵出现波形激励编辑窗口。
给ina和inb赋初始值。
⑶在processes窗口中单击“simulater behavioral model”即开始仿真,仿真结果如下。
从仿真的结果可以看出,sum=ina+inb+cin。
仿真结果正确。
3、用ChipScope进行在线调试。
⑴生成ChipScope核。
代码比较简单,这里只需要ICON和VIO两个核即可。
打开“ChipScope pro core generator”
首先是生成ICON核的过程。
在output netlist位置指向adder4所在的路径,在device family里选virtex2p 器件。
由于只用了VIO核,所以ICON的控制端口数设置为1。
之后就是就是一直确定就行,直到出现生成新的核的界面。
其次就是生成VIO核的过程。
在输入输出端口设置过程中选定异步输入端口和异步输出端口。
异步输入端口宽度根据sum(4位)、cout(1位)的总位数设定,异步输出端口根据ina (4位)、inb(4位)、cin(1位)的总位数设定。
之后也是一直确定,这样VIO核也就生成了。
⑵添加ICON核与VIO核到工程。
点击“File—Open”,在adder4所在位置找到icon_xst_example.v和
vio_xst_example.v文件并打开,将ICON和VIO核的模块例化语句加到adder4.v 相应的位置,并进行修改,最后得到的代码如下:
module adder4(cout,sum);
output[3:0] sum;
output cout;
wire [3:0] ina,inb;
wire cin;
wire [35:0] control0;
wire [13:0] async_in;
wire [8:0] async_out;
icon i_icon
(
.control0(control0)
);
vio i_vio
(
.control(control0),
.async_in(async_in),
.async_out(async_out)
);
assign async_in[3:0]=ina[3:0];
assign async_in[7:4]=inb[3:0];
assign async_in[8]=cin;
assign async_in[12:9]=sum[3:0];
assign async_in[13]=cout;
assign ina[3:0]=async_out[3:0];
assign inb[3:0]=async_out[7:4];
assign cin=async_out[8];
assign {cout,sum}=ina+inb+cin;
endmodule
module icon
(
control0
);
output [35:0] control0;
endmodule
module vio
(
control,
async_in,
async_out
);
input [35:0] control;
input [13:0] async_in;
output [8:0] async_out;
endmodule
进行保存,然后在ISE里进行综合,具体操作步骤:单击“adder4.v”,在processes窗口中双击“Synthesize—XST”;如果综合没有出错,再实现,双击“Implement Design”,最后生成bit文件,双击“Generate Programming File”。
过程图为:
⑶在ChipScope里观测调试
单击“adder4.v”,在Processes窗口中选择双击“Analyze Design Using Chipscope”进入ChipScope Pro Analyzer窗口,点击图标检查连接情况,然后下载bit文件。
由于我们没有板子只能做到这一步了。
五、总结与体会
通过这学期对FPGA应用技术的学习,我对FPGA这项技术也有了一定的了解。
最后通过这个大作业也是我对整个的设计过程有了更进一步的认识。
我觉得我在这次的课程设计大作业中我在以下几点收获很大。
⑴加深了对全加器的认识;
⑵了解了4位并行相加串行进位全加器的组成原理和组成框图;
⑶掌握了工程的生成方法,以及如何创建HDL资源文件;
⑷对Verilog HDL语言的用法有了一定的了解;
⑸了解了如何进行功能仿真,如何添加激励源;。