FPGA4位全加器的设计

合集下载

实验一 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位全加器。

基于FPGA的四位加法器设计

基于FPGA的四位加法器设计

基于FPGA的四位加法器设计4位加法器设计。

取开发板上的4位按键作为4位被加数,取4位拨码开关作为4位被加数,其中8个led灯取5位作为输出结果,led0-led3作为相加的结果,led4作为进位(LED亮表示低电平0,LED灭表示高电平1,)数码管以十进制数显示被加数,加数和相加的结果。

包括vhdl文件、和vwf文件。

利用两组按键作为两个加数输入,用数码管做加数显示和结果显示,开发板上只有4个数码管,但加数都是两位的,所以只能做轮流显示,用“=”键做显示切换。

程序如下:library ieee;use ieee.std_logic_unsigned.all;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity adder_4 isport(clk:in std_logic; --时钟输入,应该输入分频后的clkenter:in std_logic; --显示切换,可以理解位“=”键clear:in std_logic; --清除键,预留接口可扩展key_num1:in std_logic_vector(3 downto 0); --加数1key_num2:in std_logic_vector(3 downto 0); --加数2duan:out std_logic_vector(6 downto 0); --输出结果wei:out std_logic_vector(3 downto 0);led5:out std_logic_vector(4 downto 0) --led结果显示);end entity;architecture fun of adder_4 issignal num1,num2:std_logic_vector(3 downto 0); --中间信号定义signal add_num1: integer range 15 downto 0;signal add_num2: integer range 15 downto 0;signal add_sum: integer range 30 downto 0;signal ten_data:integer range 9 downto 0;signal add_num1ge,add_num1shi,add_num2ge,add_num2shi,sumge,sumshi:integer range 9 downto 0;signal wei_data:integer range 0 to 3;beginduan<="1000000"when ten_data=0 else --显示部分,数码管共阳"1111001"when ten_data=1 else"0100100"when ten_data=2 else"0110000"when ten_data=3 else"0111001"when ten_data=4 else"0010010"when ten_data=5 else"0000010"when ten_data=6 else"1111000"when ten_data=7 else"0000000"when ten_data=8 else"0010000";process(clk,clear,enter,key_num1,key_num2,num1,num2,add_num1ge,add_num1shi,add_n um2ge,add_num2shi,sumge,sumshi)beginif clear = '0' thenadd_num1<=0;add_num2<=0;add_sum<=0;else--if key_num1/="1111" or key_num2/="1111" thennum1<=not key_num1;num2<=not key_num2;--加数处理,二进制转十进制。

四位全加器实验Verilog

四位全加器实验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,这个数根据自己的需要而定。

课题 四位全加器

课题  四位全加器

课题 四位全加器
一、课题目的
1.用组合电路设计4位全加器。

2.了解VHDL 语言的行为描述的优点。

3.初步掌握系统内部STD_LOGIC_UNSIGNED 包的调用。

二、课题原理
4位全加器可看作4个1位全加器串行构成,具体连接方法如下图所示: 由1位全加器构成4位全加器连接示意图
采用VHDL 语言设计时调用其附带的程序包,其系统内部会自行生成此结构。

三 、课题内容
1. 用VHDL 语言设计4位全加器。

2. 锁定引脚,并下载验证之。

3. 不调用包,用户自行按示意图进行设计,体会调用系统包的便利性。

四、设计提示
1.调用STD_LOGIC_UNSIGNED 包,可以使用户在更高层次上进行设计。

五、课题报告要求
1. 叙述所设计的4位全加器工作原理。

2. 写出1位全加器的VHDL 语言源程序。

3、写出心得体会。

eda课程设计论文4位全加器

eda课程设计论文4位全加器

eda课程设计论文4位全加器一、教学目标本课程的目标是让学生理解并掌握全加器的工作原理和设计方法,能够运用数字逻辑设计出功能完整的全加器。

知识目标:使学生了解全加器的功能和作用,理解其内部电路的工作原理,掌握全加器的真值表和布尔表达式。

技能目标:培养学生运用数字逻辑设计简单电路的能力,能够独立完成全加器的设计和仿真。

情感态度价值观目标:培养学生对电子技术的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队协作精神。

二、教学内容本课程的教学内容主要包括全加器的功能和工作原理、全加器的真值表和布尔表达式、全加器的设计和仿真。

首先,讲解全加器的功能和作用,通过具体的实例让学生了解全加器在计算机中的重要性。

然后,讲解全加器的内部电路工作原理,使学生理解全加器是如何实现加法的。

接下来,介绍全加器的真值表和布尔表达式,让学生掌握全加器的工作原理。

最后,讲解全加器的设计和仿真方法,培养学生运用数字逻辑设计电路的能力。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

首先,通过讲授法向学生传授全加器的理论知识,使学生了解全加器的基本概念和工作原理。

然后,通过讨论法引导学生进行思考和讨论,提高学生的理解能力。

接下来,通过案例分析法分析实际案例,使学生了解全加器在计算机中的应用。

最后,通过实验法让学生动手设计和仿真全加器,提高学生的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备。

教材:选用《数字逻辑设计》作为主教材,系统地介绍全加器的理论知识。

参考书:推荐《计算机组成原理》等参考书,供学生深入学习和参考。

多媒体资料:制作全加器的原理讲解和设计过程的视频,通过动画和图像等形式直观地展示全加器的工作原理。

实验设备:准备数字逻辑设计实验室,提供全加器的设计和仿真实验所需设备。

4位全加器verilog课程设计

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位全加器

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。

实验二 基于HDL门级建模的4位加法器设计

实验二 基于HDL门级建模的4位加法器设计

实验二基于Verilog门级建模的四位加法器设计【实验器材】PC机,DP-FPGA实验箱【实验目的】1、掌握V erilog语言的语法规则;2、熟悉V erilog门级建模方法;3、熟悉基于V erilog门级建模的组合逻辑电路设计方法。

【实验原理】1、四位全加器分层次实现的原理分层次电路设计方法指的是在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法,4位全加器可以由4个全加器构成,而每个全加器又可以由半加器和或门构成,而或门可由异或门和与门构成。

2、半加器的实现原理半加器全加器3、全加器的实现原理【实验内容与步骤】1、半加器的设计新建工程,新建Verilog Moudle,采用门级建模方法在HDL编辑器中输入半加器的HDL代码,保存并测试其功能。

2、全加器的设计在半加器设计的基础上,新建Verilog Moudle,将半加器作为底层模块,通过调用此模块以及其它逻辑门,采用门级建模方法在HDL编辑器中输入全加器的HDL代码,保存并测试其功能。

3、四位全加器的设计在全加器设计的基础上,新建Verilog Moudle,将全加器作为底层模块,通过调用此模块以及其它逻辑门,采用门级建模方法在HDL编辑器中输入四位全加器的HDL代码,保存并测试其功能。

4、四位全加器的综合、实现与下载按照Xilinx ISE设计流程,完成四位全加器的整个设计流程。

5、四位全加器的原理图设计(*)尝试采用原理图输入方式完成四位全加器的设计。

【预习要求】1、复习回顾《数字逻辑》课程中加法器部分的内容,掌握四位全加器实现的原理,并画好电路图;2、熟悉V erilog门级建模方法,编写半加器、全加器、四位全加器的V erilog HDL代码,待实验时调试。

四位全加器

四位全加器

实验四四位全加器一、实验目的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位全加器课程设计

目录摘要 (1)Abstract (2)1设计关键 (3)2设计过程 (4)2.1设计思路 (5)2.2设计过程 (6)3设计过程 (7)3.1设计实现代码 (7)3.2功能仿真 (8)4设计总结 (9)参考文献 (10)摘要全加器的运用是相当的广泛的,像各种各样的CPU和某些模型机,然而对于快速正确的加法器的设计是相当的重要的,所以在这次课程设计我选择对全加器的设计与实现。

一个器件需要进一步的更新换代,在我所学的知识领域里面,我认为应该需要两个方面,一个是设计,有一个好的设计,它就像一种需求一样,即使这种设计在实际上暂时无法得到应用,但是,在一定时期以后,它是可以实现的。

另一个是工艺,对于一个好的设计,由于工艺还没有达到那个水平没法进行对好的设计的实现。

所以在这次我使用我所学过的知识进行对这个四位全加器进行设计。

由于涉及串联进位,会导致进位延迟,故这种设计仅适用于低速情况。

关键词:全加器四位延迟低速AbstractFulladder implement use is quite widespread, like all sorts of CPU and some model machine, yet for rapid correct adder design is quite important, so in this course design fulladder device for my choice of design and implementation.A device need further upgrading, in my knowledge field inside, I think should need two aspects, one is the design, there is a good design, it is just like a kind of demand the same, even if the design in actually temporarily unable to find application, but, in a certain period after, it is can be realized. Another is the process, for a good design, due process have not reached the level on a good design can achieve. So in this time I use my knowledge learned about this four fulladder device to carry on the design. Because it involves a series carry and can lead to carry delay, so this design only suitable for low speed.Keywords: fulladder device four delay low speed1设计关键全加器是组合逻辑电路的一个重要的器件,它的设计方式有多种,这里采用逐个进位即串行进位和超前进位即并行进位综合设计。

4位全加器设计

4位全加器设计

目录摘要 (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位快速加法器设计原理快速加法器是一种计算器件,可以快速地对两个二进制数进行加法运算。

相对于一般的加法器,它具有更高的速度和效率。

本文主要介绍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选择器输出的结果。

4位全加器的设计与仿真

4位全加器的设计与仿真
项目2 全加器电路设计
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四位加法器实验报告

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的加法器设计

基于FPGA的加法器设计

基于FPGA的加法器设计FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,用于设计和实现数字电路。

它是通过将逻辑门、存储单元和可编程插线连接起来,以创建复杂的数字电路。

在FPGA中,加法器是最基本的基本数字电路之一、它用于将两个二进制数相加,并计算其和。

设计一个基于FPGA的加法器需要考虑以下几个方面:加法器类型、加法器位宽和加法器延迟。

首先,有几种不同类型的加法器,包括全加器、半加器和四位加法器等等。

全加器是最基本的加法器,能够对两个二进制数进行相加,并且还考虑了来自上一位的进位。

半加器只能对两个二进制数进行相加,而不考虑进位。

四位加法器是对四个二进制数进行相加的高级加法器,并且还考虑了来自上一位的进位。

其次,加法器的位宽也是设计过程中的一个关键因素。

位宽决定了加法器能够处理多少个位。

例如,一个4位加法器可以处理四个二进制数相加,并且还会考虑进位。

选择适当的位宽可以提高加法器的性能和灵活性。

最后,加法器的延迟是设计过程中另一个重要的考虑因素。

延迟是指从输入信号发生变化到输出信号变化之间的时间间隔。

较低的延迟意味着加法器可以更快地计算结果。

然而,较低的延迟可能需要更多的资源,这可能会对FPGA的资源消耗产生影响。

设计基于FPGA的加法器的过程如下:1.确定加法器类型:根据需求选择最适合的加法器类型,如全加器、半加器或者四位加法器。

2.设计加法器电路:根据选定的加法器类型,设计相应的加法器电路。

例如,在全加器中,可以使用两个异或门和一个与门来实现。

3.考虑进位:根据加法器类型,确定是否要考虑进位。

如果是全加器,需要将来自上一位的进位考虑在内。

4.确定位宽:根据需求确定所需的加法器位宽。

例如,如果需要对8位二进制数相加,需要设计一个8位加法器。

5. 实现电路:使用HDL(Hardware Description Language)编程语言如VHDL或Verilog来实现设计的电路。

FPGA4位全加器的设计

FPGA4位全加器的设计

目录一、设计原理 (1)二、设计目的 (1)三、设计内容 (2)四、设计步骤 (2)五、总结与体会 (6)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; input cin;assign {count,sum}=ina+inb+cin; endmodule二、设计目的⑴熟悉ISE9.1开发环境,掌握工程的生成方法。

⑵熟悉SEED-XDTK XUPV2Pro 实验环境。

⑶了解Verilog HDL 语言在FPGA 中的使用。

⑷了解4位全加器的Verilog HDL 语言实现。

输 入 输 出Xi Yi Ci-1 SiCi 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 11111三、设计内容用Verilog HDL语言设计4位全加器,进行功能仿真演示。

四、设计步骤1、创建工程及设计输入。

⑴在E:\progect\目录下,新建名为count8的新工程。

⑵器件族类型(Device Family)选择“Virtex2P”器件型号(Device)选“XC2VP30 ff896-7”综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”⑶下面一直next和确定。

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

目录
一、设计原理 (1)
二、设计目的 (1)
三、设计内容 (2)
四、设计步骤 (2)
五、总结与体会 (6)
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; input cin;
assign {count,sum}=ina+inb+cin; endmodule
二、设计目的
⑴熟悉ISE9.1开发环境,掌握工程的生成方法。

⑵熟悉SEED-XDTK XUPV2Pro 实验环境。

⑶了解Verilog HDL 语言在FPGA 中的使用。

⑷了解4位全加器的Verilog HDL 语言实现。

输 入 输 出
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
三、设计内容
用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 Desi gn Using Chipscope”进入ChipScope Pro Analyzer 窗口,点击图标检查连接情况,然后下载bit 文件。

由于我们没有板子只能做到这一步了。

五、总结与体会
通过这学期对FPGA 应用技术的学习,我对FPGA 这项技术也有了一定的了解。

最后通过这个大作业也是我对整个的设计过程有了更进一步的认识。

我觉得我在这次的课程设计大作业中我在以下几点收获很大。

⑴ 加深了对全加器的认识;
⑵ 了解了4位并行相加串行进位全加器的组成原理和组成框图;
⑶ 掌握了工程的生成方法,以及如何创建HDL 资源文件;
⑷ 对Verilog HDL 语言的用法有了一定的了解;
⑸ 了解了如何进行功能仿真,如何添加激励源;。

相关文档
最新文档