文档库 最新最全的文档下载
当前位置:文档库 › 移位寄存器的VHDL设计

移位寄存器的VHDL设计

移位寄存器的VHDL设计
移位寄存器的VHDL设计

洛阳理工学院实验报告

Simulation命令,直到出现Simulation was successful,仿真结束。

(7)观察仿真结果。如下图:

实验总结:

通过本次试验,熟练QUARTUSⅡ开发环境,熟练建立工程、文件、实体、结构体的建立,编译、修改、仿真。由于文件名保存的不正确,我保存成了全数字的文件名,结果总是找不到文件,做了好几遍都是这样,后来经过同学的帮助,终于找到了原因,很成功的完成了本次试验的两个任务,完成了对选择器和半加器的设计。由于参数设计的不正确,刚开始图形一直不正确,经过不断的调试最后终于正确了。

移位寄存器

双向移位寄存器的设计 一、实验目的 利用数字电路设计中移位寄存器的相关知识,通过课程设计更加深入的了解移位寄存器的功能。在计算机中常要求寄存器有移位功能。如在进行乘法时 要求将部分积右移在将并行传送的数转换成串行数时也需要移位。因此 移位寄存器的设计是必要的。 二、硬件要求 主芯片Altera EPM7128SLC84-15,时钟信号,拨码开关。 三、实验内容 设计一个双向移位寄存器 四、实验原理 用VHDL语言描述任意分频数的分频器,并实现占空比任意设置.每当系统时钟上升沿到来时,计数器就加计数一位(可任意设置为N位),当计数值到达预定值时就对分频时钟翻转.这样就会得到一个连续的时钟脉冲. 当移位信号到来时,移位寄存器就对存储的二进制进行移位操作.移位寄存方式可自行设置(可左移,右移,一位移,多位移位寄存)。 五、实验源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity tdirreg is port (clk: in std_logic; din: in std_logic; dir : in std_logic; op_l: out std_logic; op_r: out std_logic); end tdirreg; architecture a of tdirreg is signal q: std_logic_vector(7 downto 0); begin process(clk) begin if clk'event and clk= '1'then if dir = '0' then q(0) <= din; for i in 1 to 7 loop q(i) <= q(i-1); end loop ; else q(7) <= din; for i in 7 downto 1 loop q(i-1) <=q(i); end loop ;

74LS194左右移位寄存器

74LS194左右移位寄存器 一、移位寄存器 在数字电路中,用来存放二进制数据或代码的电路称为寄存器。按功能 可分为:基本寄存器和移位寄存器。 移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。 二、74LS194双向移位寄存器 目前常用的集成移位寄存器种类很多,其中74LS194为四位双向移存器。 图一 74LS194移位寄存器的引脚图 以上为74LS194的引脚图,其中 D 0~D 3 :并行输入端; Q ~Q 3 :并行输出端; S 0、S 1 :操作模式控制端;:为直接无条件清零端; S R :右移串行输入端 S L :左移串行输入端; CP:时钟脉冲输入端;

表一 74LS194的模式控制和状态输出表 三、移位寄存器型计数器 利用移位寄存器可构成环形和扭环形计数器。可先使S 0=S 1 =1,并行输入预 置数值,再改变S 0和S 1 的电平,实现左移或右移状态。若把移位寄存器的输出 以一定方式反馈到串行输入D SR 端或D SL 端,就可以构成移位寄存器型计数器。 例如,将74LS194的Q 3接到D SR 端,可得到模4的环形计数器(不可自启动); 将Q 3端通过一个非门接到D SR 端,则可得到模8的扭环形计数器(不可自启动)。用一片74LS194及门电路构成一个课实现7分频或8分频器。7分频器的分 频信号由Q 2输出,同时将Q 2 、Q 3 输出通过与非门后接入D SR 端,S S 1 =10。8分频 器的分频信号由Q 3取非后输出,同时将该信号送入D SR 端,S S 1 =10。

VHDL编写一位全加器参考程序

这是茄子求别人写的参考程序,不一定能实际运行。但是可靠性在百分之九十左右。大家做不出来的可以参考下。做出来的看出错误请指正。我作为学习委员既然把答案给大家,一方面是不想影响大家平时成绩,另一方面也是希望大家可以自己看看,学习一下,不要到最后结课了着急。所以我晚上不收打印的作业,每个人都必须亲自抄写出来。 行为描述方式 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADD11 IS PORT(A:IN STD_LOGIC; B:IN STD_LOGIC; CIN:IN STD_LOGIC; CO:OUT STD_LOGIC; S:OUT STD_LOGIC); END ADD11; ARCHITECTURE BEHAVE OF ADD11 IS BEGIN PROCESS(A,B,CIN) VARIABLE N: INTEGER RANGE 0 TO 3; CONSTANT S_VECTOR: STD_LOGIC_VECTOR(0 TO 3):="1010"; CONSTANT CO_VECTOR: STD_LOGIC_VECTOR(0 TO 3):="1100"; BEGIN N:=0; IF(A='1') THEN N:=N+1; END IF; IF(B='1') THEN N:=N+1; END IF; IF(CIN='1') THEN N:=N+1; END IF; S<=S_VECTOR(N); CO<=CO_VECTOR(N); END PROCESS; END BEHAVE; 数据流描述方式 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADD2 IS PORT(A:IN STD_LOGIC; B:IN STD_LOGIC; CIN:IN STD_LOGIC; CO:OUT STD_LOGIC; S:OUT STD_LOGIC);

8位双向移位寄存器电路设计

目录 摘要 (1) 1 多功能双向移位寄存器 (2) 1.1 基本工作原理 (2) 1.2 基本实现方案 (2) 2 电路图设计 (4) 2.1 电路结构 (4) 2.2 真值表 (4) 3 Verilog描述8位双向移位寄存器 (6) 4 程序仿真 (8) 5 总结 (10) 参考文献 (11)

摘要 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中,使用硬件描述语言Verilog,在EDA工具QuartussII中,设计8位双向移位寄存器硬件电路,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。 关键字:Verilog QuartusII 移位寄存器

8位双向移位寄存器电路设计 1 多功能双向移位寄存器 1.1 基本工作原理 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中定义移位寄存器中的数据从低位触发器移向高位为右移,移向低位为左移。 为了扩展逻辑功能和增加使用的灵活性,某些双向移位寄存器集成电路产品 又附加了并行输入、并行输出等功能。如图1所示是上述几种工作模式的简化示意图。 并行输入 并行输出 右移串行输入(D IR 左移串行输出(D OL 右移串行输出(D OR ) D IL ) 0123 图1 多功能移位寄存器工作模式简图 1.2 基本实现方案 图2所示是实现数据保持、右移、左移、并行置入和并行输出的一种电路方 案。图中的D 触发器m FF 是N 为移位寄存器中的第m 位触发器,在其数据输入端插入了一个4选1数据选择器m MUX ,用2位编码输入10S S 、控制m MUX ,来选择触发器输入信号m D 的来源。当100S S ==时,选择该触发器本身输出的m Q , 次态为1m n n m m Q D Q +==,使触发器保持状态不变;当100,1S S ==时,触发器1m FF -的输出1m Q -被选中,故CP 脉冲上升沿到来时,m FF 存入1m FF -此前的逻辑值,即 1m 1n n m Q Q +-=,而1m +1n n m Q Q +=, 从而实现右移功能;类似地,当101,0S S ==时,m MUX 选择1m Q +,实现左移功能;而当101S S ==时,则选中并行输入数据m DI ,其次 态1 n m m Q DI +=,从而完成并行数据的置入功能。上述四种操作概述于表1,此外,

VHDL实现16位全加器

[键入公司名称] [键入文档标题] [键入文档副标题] 姓名:托列吾别克·马杰尼 班级:电路与系统01班 学号:201221020141 2013/11/24

基于VHDL的16位全加器的设计 1.1设计题目的内容及要求 1.1.1目的: CMOS数字集成电路设计流程及数字集成电路自动化设计,包括功能验证、VHDL/Verlog建模、同步电路设计、异步数据获取、能耗与散热、信号完整性、物理设计、设计验证等技术 1.1.2内容: 主要实验内容是用0.18μm数字CMOS工艺,VHDL或Verlog设计一个16位全加器,用Synthesis 仿真工具验证功能,电路合成,及性能检测。 1.1.3主要测试参数及指标范围: 16位的全加器主要的设计指标是高于1GHz的频率,功耗,物理面积大小等参数。 1.2全加器的组成和原理分析 全加器是常用的组合逻辑模块中的一种,对全加器的分析和对组合逻辑电 路的分析一样。组合逻辑电路的分析,就是找出给定电路输入和输出之间的逻 辑关系,从而了解给定逻辑电路的逻辑功能。组合逻辑电路的分析方法通常采 用代数法,一般按下列步骤进行: (1)根据所需要的功能,列出真值表。 (2)根据真值表,写出相应的逻辑函数表达式。 (3)根据真值表或逻辑函数表达式,画出相应的组合逻辑电路的逻辑图[1]。 (4)用VHDL编写程序在QUARTUSⅡ上进行模拟,并分析结果的正确性。 1.3 全加器简介

全加器是组合逻辑电路中最常见也最实用的一种,考虑低位进位的加法运算就是全加运算,实现全加运算的电路称为全加器。它主要实现加法的运算,其中分为并行全加器和串行全加器,所谓并行就是指向高位进位时是并行执行的,而串行就是从低位到高位按顺序执行,为了提高运算,必须设法减小或消除由于进位信号逐级传递所消耗的时间,为了提高运算速度,制成了超前进位加法器,这是对全加器的一种创新[2]。 1.3.1半加器的基本原理 如果不考虑有来自低位的进位将两个1位二进制数相加,称为半加。实现半加运算的电路称为半加器。 按照二进制加法运算规则可以列出如表2所示的半加器真值表,其中A、B 是两个加数,S是相加的和,CO是向高位的进位。将S、CO和A、B的关系写成逻辑表达式则得到 S=A B+A B=A+B CO=AB 表1 半加器的真值表 因此,半加器是由一个异或门和一个与门组成的,如图1所示。

实验五 移位寄存器

实验五、移位寄存器的设计 一、实验目的 设计并实现一个异步清零同步置数8位并入并出双向移位寄存器电路。 二、实验原理 在数字电路中,用来存放二进制数据或代码的电路成为寄存器。寄存器按功能可分为:基本寄存器和移位寄存器。移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。下面是一个并入串出的8位左移寄存器的VHDL描述: library ieee; use ieee.std_logic_1164.all; port(data_in: in std_logic_vector(7 downto 0); clk: in std_logic; load: in std_logic; data_out:out std_logic); end; architecture one of left8 is signal q: std_logic_vector(7 downto 0); begin process(load,clk) begin if load='1' then q<=data_in; data_out<='Z'; elsif clk'event and clk='1' then for I in 1 to 7 loop 图5-1 q(i)<=q(i-1); end loop; data_out<=q(7); end if; end process; end one; 异步清零同步置数8位并入并出双向移位寄存器电路结构图如图5-1所示。 三、实验要求 输入信号有D[0]~D[7]、DIL、DIR、S、LOAD、CLK和CLR,其中CLK接时钟,其余接拨码开关,输出信号有Q[0]~Q[7],接发光二极管。改变拨码开关的状态,观察实验结果。 实验工程项目命名为rlshift,源程序命名为rlshift8.vhd。 四、实验记录 对比较器实验结果造表,得到其真值表。 五、实验报告要求

EDA与VHDL实现8位加法器

EDA技术与VHDL实训 姓名:李* 班级:电信**-* 学号:12******** 电子与信息工程学院

8位加法器设计 一实训目的 1.学习使用VHDL语言设计电路,加深对VHDL语言的理解与应用。 2.学习8位加法器的VHDL程序设计方法。 3.学习例化语句的应用,并能够利用例化语句完成从半加器到全加器的设计。 二加法器 加法器是为了实现加法的。即是产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。 对于1位的二进制加法,相关的有五个的量:1,被加数A,2,被加数B,3,前一位的进位CIN,4,此位二数相加的和S,5,此位二数相加产生的进位COUT。前三个量为输入量,后两个量为输出量,五个量均为1位。 对于32位的二进制加法,相关的也有五个量:1,被加数A(32位),2,被加数B(32位),3,前一位的进位CIN(1位),4,此位二数相加的和S(32位),5,此位二数相加产生的进位COUT(1位)。 要实现32位的二进制加法,一种自然的想法就是将1位的二进制加法重复32次(即逐位进位加法器)。这样做无疑是可行且易行的,但由于每一位的CIN都是由前一位的COUT 提供的,所以第2位必须在第1位计算出结果后,才能开始计算;第3位必须在第2位计算出结果后,才能开始计算,等等。而最后的第32位必须在前31位全部计算出结果后,才能开始计算。这样的方法,使得实现32位的二进制加法所需的时间是实现1位的二进制加法的时间的32倍。 三实训内容 首先设计半加器,然后用例化语句将它们连接起来。利用半加器和或门构成1位全加器,以1位全加器为基本硬件,构成串行进位的8位加法器。 3.1 设计1位半减器 利用真值表设计1位半减器。图3-1中的h_add是半加器,sum是输出和,a_out是进位输出,add_in是进位输入。 表3-1 加法真值表 加数x 加数y 和sum 进位a_out 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

FPGA设计实例 四位加法器(含VHDL源程序)

EDA FPGA 四位加法器设计说明:程序使用原件例化语句编写。 半加器程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY bjq IS PORT(A,B:IN STD_LOGIC; Y,Co:OUT STD_LOGIC); END bjq; ARCHITECTURE bjqbehv OF bjq IS SIGNAL c,d:STD_LOGIC; BEGIN c<=A OR B; d<=A NAND B; Co<=NOT d; Y<=c AND d; END bjqbehv; 全加器程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY qjq IS PORT(Ci,A,B:IN STD_LOGIC;

S,Co:OUT STD_LOGIC); END qjq; ARCHITECTURE qjqbehv OF qjq IS BEGIN S<=A XOR B XOR Ci; Co<=(A AND B) OR (A AND Ci) OR (B AND Ci); END qjqbehv; 加法器例化程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jfq4 IS PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co:OUT STD_LOGIC); END jfq4; ARCHITECTURE jfq4behv OF jfq4 IS COMPONENT qjq PORT(Ci,A,B:IN STD_LOGIC; S,Co:OUT STD_LOGIC); END COMPONENT; COMPONENT bjq PORT(A,B:IN STD_LOGIC; Y,Co:OUT STD_LOGIC); END COMPONENT; SIGNAL C0,C1,C2:STD_LOGIC; BEGIN u1:bjq PORT MAP(A(0),B(0),Y(0),C0); u2:qjq PORT MAP(C0,A(1),B(1),Y(1),C1); u3:qjq PORT MAP(C1,A(2),B(2),Y(2),C2); u4:qjq PORT MAP(C2,A(3),B(3),Y(3),Co); END ARCHITECTURE jfq4behv; 兄弟加qq 352995783,技术交流。 暮落 2011年12月2日

实验七 移位寄存器及其应用

实验七 移位寄存器及其应用 一、实验目的 1. 掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2. 熟悉移位寄存器的应用——环形计数器。 二、实验原理 1. 移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又有右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为74LS194或CC40194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图 1所示。 图 1 74LS194的逻辑符号及其引脚排列 其中D 3、D 2、D 1、D 0为并行输入端, Q 3、Q 2、Q 1、Q 0为并行输出端;S R 为右移串行输入端,S L 为左移串行输入端,S 1、S 0为操作模式控制端;CR 为直接无条件清零端;CP 为时钟脉冲输入端。74LS194有5种不同操作模式:即并行送数寄存,右移(方向由Q 3→Q 0),左移(方向由Q 0→Q 3),保持及清零。S 1、S 0和CR 端的控制作用如表 1所示。 表 1

2.移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计致器和串行累加器的线路及其原理。 (1) 环形计数器:把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位, 如图2所示,把输出端Q 0和右移串行输入端S R 相连接,设初始状态Q 3 Q 2 Q 1 Q =1000, 则在时钟脉冲作用下Q 3Q 2 Q 1 Q 将依次变为0100→0010→0001→1000→……,可见它是具 有四个有效状态的计数器,这种类型的计效器通常称为环形计数器。图2电路可以由各个输出端输出在时间上有先后顺序的脉冲,因此也可作为顺序脉冲发生器。

VHDL实现16位全加器

[键入公司名称] [键入文档标题] [键入文档副标题] 姓名:托列吾别克?马杰尼 班级:电路与系统01班 学号:201221020141

[键入公司名称] 2013/11/24

基于VHDL的16位全加器的设计 1.1设计题目的内容及要求 i.i.i 目的: CMOS数字集成电路设计流程及数字集成电路自动化设计,包括功能验证、VHDL/Verlog建模、同步电路设计、异步数据获取、能耗与散热、信号完整性、物理设计、设计验证等技术 1.1.2内容: 主要实验内容是用0.18阿数字CMOS工艺,VHDL或Verlog设计- 个16位全加器,用Synthesis仿真工具验证功能,电路合成,及性能检测。 1.1.3主要测试参数及指标范围: 16位的全加器主要的设计指标是高于1GHz的频率,功耗,物理面积大小等参数。 1.2全加器的组成和原理分析 全加器是常用的组合逻辑模块中的一种,对全加器的分析和对组合逻辑电路的分析一样。组合逻辑电路的分析,就是找出给定电路输入和输出之间的逻辑关系,从而了解给定逻辑电路的逻辑功能。组合逻辑电路的分析方法通常采用代数法,一般按下列步骤进行: (1)根据所需要的功能,列出真值表。 (2)根据真值表,写出相应的逻辑函数表达式。 (3)根据真值表或逻辑函数表达式,画出相应的组合逻辑电路的逻辑图 (4)用VHDL编写程序在QUARTUS U上进行模拟,并分析结果的正确性。 1.3全加器简介

全加器是组合逻辑电路中最常见也最实用的一种,考虑低位进位的加法运 算就是全加运算,实现全加运算的电路称为全加器。它主要实现加法的运算, 其中分为并行全加器和串行全加器,所谓并行就是指向高位进位时是并行执行 的,而串行就是从低位到高位按顺序执行,为了提高运算,必须设法减小或消除由于进位信号逐级传递所消耗的时间,为了提高运算速度,制成了超前进位加法器,这是对全加器的一种创新[2]。 1.3.1半加器的基本原理 如果不考虑有来自低位的进位将两个1位二进制数相加,称为半加。实现 半加运算的电路称为半加器。 按照二进制加法运算规则可以列出如表2所示的半加器真值表,其中A、B 是两个加数,S是相加的和,CO是向咼位的进位。将S、CO和A、B的关系写成逻辑表达式则得到 S=A B+A B=A+B CO=AB 因此,半加器是由一个异或门和一个与门组成的,如图1所示。

实验七移位寄存器及其应用

实验七移位寄存器及其应用 一、实验目的 1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验原理 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图7-1所示。 图7-1 CC40194的逻辑符号及引脚功能 其中 D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端;CP为时入端,S L为左移串行输入端;S1、S0为操作模式控制端;R 钟脉冲输入端。 CC40194有5种不同操作模式:即并行送数寄存,右移(方向由Q0→Q3),左移(方向由Q3→Q0),保持及清零。 S1、S0和R C端的控制作用如表7-1。

2、移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计数器和数据的串、并行转换。 (1)环形计数器 把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位, 如图7-2所示,把输出端 Q3和右移串行输入端S R 相连接,设初始状态Q0Q1Q2Q3=1000,则在时钟脉冲作用下Q0Q1Q2Q3将依次变为0100→0010→0001→1000→……,如表7-2所示,可见它是一个具有四个有效状态的计数器,这种类型的计数器通常称为环形计数器。图7-2 电路可以由各个输出端输出在时间上有先后顺序的脉冲,因此也可作为顺序脉冲发生器。 图 7-2 环形计数器 如果将输出Q O与左移串行输入端S L相连接,即可达左移循环移位。 (2)实现数据串、并行转换 ①串行/并行转换器 串行/并行转换是指串行输入的数码,经转换电路之后变换成并行输出。 图7-3是用二片CC40194(74LS194)四位双向移位寄存器组成的七位串/并行数据转换电路。

8位加法器设计程序过程

实验8位加法器设计 一、实验目的 熟悉利用QuartusⅡ的图形编辑输入法设计简单组合电路,掌握层次化设计方法,并通过8位全加器的设计,进一步熟悉利用EDA软件进行数字系统设计的流程。 二、实验仪器与器材 计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。 三、实验内容 1. 基本命题 利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。 2. 扩展命题 利用文本输入法设计4位并行进位加法器,再利用层次设计方法构成8位加法器。通过时序仿真,比较两种加法器的性能。 四、实验设计思路 按照如图2-1,2-2,2-3设计半加器、全加器、串行级联加法器 ①设计半加器 图2-1半加器设计图 ②设计全加器

图2-2全加加器设计图 ③设计串行级联8位加法器 图2-3串行级联8位加法器设计图 ④仿真波形图 对以上的串行级联加法器进行仿真。设置时钟频率为/1/10ns。每20ns对a,b输入口进行+2操作。所得结果见图2-8。由图可知延时大约为14ns。

图2-4串行级联加法器仿真波形图 对以上的串行级联加法器进行仿真。设置时钟频率为/2.0us。每10us对a,b输入口进行 +2操作。所得结果见图2-4。由图可知延时大约为10us。 五、实验要求 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。 六、实验思考题 (1)与单一设计文件比较,实现层次化设计应注意哪些问题? 答:实现层次化设计需要注意的是:假设B设计中引用A设计,那么需要将A 设计的工程文件放在B设计的工程文件中,另外,B设计的工程必须要以B的实体名称对应,不然仿真的时候会出错。 (2)比较图形编辑和文本编辑两种8位二进制加法器的性能,分析它们的主要异同点。以下是文本编辑的参考程序。 1) 4位二进制数加法器ADDER4B的VHDL描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT ( CIN4 : IN STD_LOGIC; A4 : IN STD_LOGIC_VECTOR(3DOWNTO0);

双向移位寄存器

、课程设计的目的与要求 1.设计目的 熟悉MAXPLUS2/Quartus II 软件,掌握软件的VHDL 程序输入、程序编译和程序仿真操作; 学习利用VHDL 语言设计双向移位寄存器电路程序。 2.设计要求根据设计正文提出的双向移位寄存器功能设置,实现电路设计。 、设计正文 双向移位寄存器有三种输入方式: 4 位并行输入、 1 位左移串行输入、 1 位右移串行输 入; 双向移位寄存器有一种输出方式: 4 位并行输出。 双向移位寄存器工作过程如下: 当 1 位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上跳沿触发向左移位。 当 1 位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口的最低位输出,后由同步时钟的上跳沿触发向右移位。 双向移位寄存器的输入、输出端口如下: CLR :异步清零输入端; SRSI :串行右移输入端; SLS I :串行左移输入端; A 、B、C、D: 4 位并行输入端; QA、QB、QC、QD: 4 位并行输出端; SO, S1:两位控制码输入端。 双向移位寄存器的端口功能如下: 当CLR = 0时,4位输出端清0; 当CLK = 0时,4位输出端保持原来状态不变; 当S= 00时,4位输出端保持原来的状态不变; 当S= 01时,允许串行右移输入1位数据; 当S= 10时,允许串行左移输入1位数据; 当S= 11时,允许4位数据从并行端口输入。 VHDL源程序: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ——包含库和程序包 entity double_dir_regt is ——定义实体为double_dir_regt port ( s: in std_logic_vector(1 downto 0); clr,clk,srsi,slsi,a,b,c,d:in std_logic; result: out std_logic_vector(3 downto 0)); ——设置端口参数输入控制信号s, 时钟clk, 并行输入abcd, end double_dir_regt; 输出result ARCHITECTURE rtl of double_dir_regt is signal result1: std_logic_vector(3 downto 0); ——设置信号result1 使result 能作为输入使用begin result<=result1; process (clk,clr) ——敏感信号为时钟和清零信号begin if (clr='0')then result1<="0000"; elsif (clk'event and clk='1')then case s is when "00"=> ——控制信号为00 时实现保持功能result1(0)<=result1(0); result1(1)<=result1(1); result1(2)<=result1(2); result1(3)<=result1(3); when"01"=> ——控制信号为01 时实现右移功能result1(3)<=srsi; result1(2)<=result1(3); result1(1)<=result1(2); result1(0)<=result1(1);

FPGA VHDL4位全加器

《FPGA原理及应用》 实验报告书 (4) 用例化语句设计4位全加器题目 学院专业 姓名学号 指导教师 2015年 10-12月

1.实验目的 (1)进一步熟悉和掌握Qartus II的使用方法; (2)进一步掌握FPGA实验箱使用方法; (3)学习和掌握电路原理图的设计流程; (4)深化理解顶层设计的概念和构建电路的方法 2.实验内容 使用Qartus II的元件库,通过元件图的方式设计具有4位全加器功能的程序,并使用FPGA实验箱对程序进行硬件下载,验证。 3.实验条件 开发软件:Qartus II 8.0 实验设备:FPGA实验箱 拟用芯片:Altera EP3C55F484C8 4.实验设计 1)系统原理 多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 四位全加器可对两个多位二进制数进行加法运算,同时产生进位。当两个二进制数相加时,较高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。 其中CIN表示输入进位位,COUT表示输出进位位,输入A和B分别表示加数和被加数。输出SUM=A+B+CIN,当SUM大于255时,COUT置‘1’。 图4-1 4位全加器原理图 2)程序代码

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY adder1 IS --1位全加器设计 PORT(a,b,cin:IN STD_LOGIC; s,cout:OUT STD_LOGIC); END adder1; ARCHITECTURE dataflow OF adder1 IS --用数据流方式设计1位全加器SIGNAL tmp:STD_LOGIC; --用tmp表示a⊕b BEGIN tmp<=a XOR b AFTER 10 ns; s<=tmp XOR cin AFTER 10 ns; cout<=(a AND b)OR(tmp AND cin) AFTER 20 ns; END dataflow; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY adder4 IS --4位全加器设计 PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); cin:IN STD_LOGIC; s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout:OUT STD_LOGIC); END adder4;

VHDL实验双向移位寄存器(完整版)

VHDL实验双向移位寄存器(完整版) 实验课名称:VHDL硬件描述语言实验项目名称:双向移位寄存器专业名称:电子科学与技术班级:电科二班 学号:***** 学生姓名:**** 教师姓名:**** __2010__年_11_月_14_日 组别_____________________同组同学_______________________ 实验日期 _____年___月___日实验室名称______________成绩_____ 一、实验名称:双向移位寄存器 二、实验目的与要求: 实验目的:设计一个双向移位寄存器,理解移位寄存器的工作原理,掌握 串入\并出端口控制的描述方法。 实验要求:通过VHDL编程,实现双向移位寄存器,要求有1个方向控制端、1个时钟脉冲输入、1个异步清零端、1个数据输入端以及8位的并行数据输出端,具体接口说明如下图所示。 clk:移位寄存器时钟脉冲输入,上升

沿有效; din:串行数据输入端; clr:异步清零信号,高电平有效; dir:方向控制端,要求低电平左移, 高电平右移; dout[7..0]:8位数据并行输出端; 首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序 到SOPC开发平台中。在硬件实现中,要求: 1. 用实验平台的按键实现时钟控制(clk)、方向控制(dir)、清零(clr)以及数据 输入(din): 端口名按键名功能 clk 键7 时钟控制 din 键8 数据输入 clr 键1 异步清零 dir 键5 方向控制 2. 用实验平台的LED发光阵列的LED1,LED8显示并行数据的输出。 三、实验内容:

40194四位双向移位寄存器

40194四位双向移位寄存器 40194 为4 位通用移位寄存器,具有并行输入/并行输出,左移、右移等功能。40194 的工作模式由两个模式选择输入端SELECT0 和SELECT1 确定,当处于SELECT0=SELECT1=“1”时,并行输入端在时钟上升沿并行数据输入端。D0~D3 的数据置入4 位寄存器中并由Q 端输出。进行左移或右移操作时,SHIFTRIGHT IN 和SHIFT LEFT IN 端上的数据在时钟上升沿分别串行移入寄存器中,当 /RESET 为低电平时,输出全零状态。 引出 S1 S0 0 0 保持不变 0 1 实行右移 1 0 实行左移 1 1 运行置数 R 清零;低电平有效

40192------十进制同步加/减计数器(有预置端,双时钟) 简要说明: 40192 为可预置BCD 可逆计数器,其内部主要由四位D 型触发器组成,与一 般计数器不同之处在于加计数器和减计数器分别由两个时钟输入端。40192 具有复位CR、置数控制/LD、并行数据D0~D3、加计数时钟CPu、减计数时钟CP D 等输入,当CR 为高电平时,计数器置零。当/LD 为低电平时,进行预置数操作,D0~D3 上的数据置入计数器中,计数操作由两个时钟输入控制。当CP D=“1”时,在CPu 上跳变时计数器加1 计数;当CPu=“1”时,在CP D 上跳变计数器减1 计数。除四个Q 输出外,40192 还有一个进位输出/CO 和一个借位输出/BO,/CO 和/BO 一般为高电平,只有在加计数模式,当计数器达到最大状态时,/CO 输出一个宽度为半个时钟周期的负脉冲,在减计数模式,当计数器全为零时,/BO 输出一个宽度为半个时钟周期的负脉冲。 引出端符号: CR 清除端;CP D 减计数时钟输入端;CPu 加计数时钟输入端;D0~D3 并行数据输入端;Q0~Q3 计数器输出端;/BO 借位输出端;/CO 进位输出端 V DD 正电源;Vss 地 引出 真值表:

基于VHDL 4位加法器的设计

实验三基于VHDL 4位加法器的设计 一、实验目的 1、进一步熟悉QUARTUS II软件的使用方法和VHDL输入的全过程。 2、进一步掌握实验系统的使用。 二、实验原理 图 2-1 半加器原理图 图 2-2 1位全加器原理图 图 2-3 4 位加法器原理图 4 位加法器(如图 2-3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成,1位全加器又可以由两个1位的半加器和一个或门连接而成(如图 2-2),而1位半加器可以由若干门电路组成(如图 2-1)。

三、实验内容 本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器,取实验板上的 8 位按键的高 4 位与低 4 位分别作为 4 位加数与被加数,其中 8 个 LED 取 5 位作为结果输出,LED2~LED5 作为 4 位相加之和的输出结果,LED1作为两数高 4 位相加的进位 (LED 亮,表示低电平“0”, LED 灭,表示高电平“1”) 四、实验步骤 1、打开QUARTUS II软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File。新建一个VHDL文件的过程如下: 1)选择QUARTUS II软件中的File->New命令,出现New对话框。如图2-1所示。 图2-1 新建设计文件选择窗口 2)在New对话框(图2-1)中选择Design Files页下的VHDL File,点击OK按钮,打开VHDL编辑器对话框,如图2-2所示。

图2-2 VHDL编辑窗口 3、按照实验原理和自己的想法,在VHDL编辑窗口编写1位半加器的VHDL程序。如图 2-3所示。 图2-3 1位半加器VHDL程序 4、编写完半加器VHDL程序后,保存,文件名为h_adder.vhd(注意文件名要与实体名 保持一致),再将半加器文件设置为顶层文件,然后进行编译并仿真,对程序 的错误进行修改。 5、再用同样的方法进行或门的VHDL程序(or2a.vhd)输入、编译和仿真。 图2-4 或门VHDL程序 6、利用半加器与或门进行1位全加器的VHDL程序(f_adder.vhd)设计、编译与仿真。

74LS194左右移位寄存器

74LS194左右移位寄存器

4位移位寄存器仿真 其中, 3 D、2D、1D、0D为并行输入端;3Q、2Q、 1 Q、0Q为并行输出端;R S为右移串行输入端;L S为左移串行输入端; 1 S、0S为操作模式控制端;R C为直接无条件清零端;CP为时钟脉冲输入端。 74LS194有5种不同操作模式:并行送数寄存; 右移(方向由 3 Q→0Q);左移(方向由0Q→3Q);保持 及清零。 1 S、0S和R C端的控制作用如表3.10.1所示。 表3.10.1: 输入 输 出功能

移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或并行数据转换为串行数据等。 把移位寄存器的输出反馈到它的串行输入端,就可进行循环移位,如图3.10.2所示。把输出端0 Q 和右移串行输入端R S 相连接,设初始状 态3 Q 2Q 1Q 0 Q =1000,则在时钟脉冲作用下,3 Q 2Q 1Q 0 Q 将依次变为0100→0010→0001→1000→……,可见,它是一个具有四个有效状态的计数器,这种类型的计数器通常称为环形计数器。图3.10.2电路可以由各个输出端输出在时间上有先后顺 序的脉冲,因此也可作为顺序脉冲发生器。

图3.10.2 四、实验室操作实验内容: 1.逻辑功能验证 移位寄存器(1)将两块74LS74集成片插入IC 空插座中,按图41(a)连线,接成左移移位寄存器。接好电源即可开始实验。先置数据0001,然 后输入移位脉冲。置数,即把Q 3、Q 2 、Q 1 、Q 置成 0001,按动单次脉冲,移位寄存器实现左移功能。(2)按图42(b)连线,方法同(1)则完成右移移位功能验证。 (a)左移移位

EDA VHDL 4位全加器实验报告解析

姓名:车琳班级:通信1101班 学号:0121109320130 实验一用原理图输入法设计4位全加器 一、实验目的 1)熟悉利用Quartus II 的原理图输入方法设计简单组合电路; 2)掌握层次化设计的方法; 3)通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 二、实验内容 1)完成半加器、全加器和4位全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。键1、键2、键3(PIO0/1/2)分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum和cout。 2)建立一个更高的层次的原理图设计,利用以上获得的1位全加器构成的4位全加器,并完成编译、综合、适配、仿真和硬件测试。建议选择电路模式1:键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout。 三、实验仪器 1)计算机及操作系统; 2)QuartusII软件; 3)编程电缆。

四、实验原理 一个4位全加器可以由4个一位全加器 构成,加法器间的进位可以串行方式实现, 即将低位加法器的进位输出 cout 与相邻的 高位加法器的最低进位输入信号 cin 相接。 一个1位全加器可以参考教材介绍的方 法来完成。1位全加器示意图如图1所示。 其中,其中CI 为输入进位位,CO 为输出进位位,输入A 和B 分别为加数和被加数。S 为输出和,其功能可用布尔代数式表示为: i i i i o i i i ABC ABC ABC ABC C ABC C B A C B A C B A S +++=+++= 五、实验步骤 1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。键1、键 2、键3(PIO0/1/2)分别接ain 、bin 、cin ;发光管D2、D1(PIO9/8)分别接sum 和cout 。 2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。建议选择电路模式1(附图F-2):键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout 。 1、一位全加器设计输入 1)创建文件。采用File\new 菜单,创建图形文件。 2)添加元件。采用菜单symbol\enter symbol ,在弹出的对话框中选中相应的库与元件,添加元件,构成一位全加器并保存。 2、一位全加器元件的创建 1)对上述文件编译综合仿真。 2)生成元件。 3)采用菜单FILE\CREATE SYMBOL 生成一位全加器元件。

相关文档