VHDL实验双向移位寄存器(完整版)
VHDL实验双向移位寄存器(完整版)
![VHDL实验双向移位寄存器(完整版)](https://img.taocdn.com/s3/m/232b349b5fbfc77da369b127.png)
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显示并行数据的输出。
三、实验内容:, 新建工程:1、打开Quartus,新建工程,选择好路径,工程顶层名为d_reg ;2、新建工程,如果包含已编好的文件则可以添加,如果无则可以略过 ;3、选择我们的器件信息:型号为:EP2C36F484C84、单击Next>,指定第三方工具,这里我们不指定第三方EDA工具,单击Next>后结束工程建立。
EDA_VHDL_并入串出移位寄存器
![EDA_VHDL_并入串出移位寄存器](https://img.taocdn.com/s3/m/e125a60d17fc700abb68a98271fe910ef12dae7e.png)
… always : PROCESS -- optional sensitivity list -- ( ) -- variable declarations BEGIN wait for 50ns; clk<=not clk; END PROCESS always; …
--load=0则预置数
elsif clk’event and clk=’1’then
qq(7 downto 1)<=qq(6 downto 0);
end if;
y<=qq(7); --高位赋予串行输出端口
dataout<=qq;
end process;
end yw_arch;
--否则上升沿到 --左移
init : PROCESS
-- variable declarations
BEGIN
wait for 100ns;load<='1';
wait for 100ns;data<="10010110";
wait for 100ns;load<='0';
wait for 100ns;load<='1'; -- code that executes only once
Template Writer 新建test bench文件,作为 modelsim仿真的测试平台;根据需求修改test bench文件
并入、并出和串出移位寄存器
5.通过AssignmentsSettingSimulation Compile test bench添加仿真测试平台,相关 设置如右图所示
数电实验报告 移位寄存器功能测试及设计
![数电实验报告 移位寄存器功能测试及设计](https://img.taocdn.com/s3/m/ab7313feaeaad1f346933fb5.png)
实验报告实验六移位寄存器功能测试及设计2.6.1实验目的(1)掌握移位寄存器的工作原理与逻辑功能。
(2)掌握集成移位寄存器74LS74的逻辑功能及应用。
2.6.2实验仪器设备与主要器件实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。
74LS74两块;74LS194两块;74LS283两块。
2.6.3实验原理1.双向移位寄存器双向移位寄存器是指在控制信号作用下,既能左移又能右移的多功能移位寄存器。
此外它还有并行输入置数、保持和异步清零等功能。
74LS194是一个典型的4位双向移位寄存器,其中,Rd为异步清零输入端,S1、S0为工作方式选择端。
D0、D1、D2、D3是数据输入端,Q0、Q1、Q2、Q3为并行数据输出端,D1L、D1R分别为左移、右移数据输出端,CP上升沿触发。
2.双向移位寄存器74LS194的应用(1)形成计数器电路,其中D1R=Q3。
0000——1000——1100——1110——1111——0111——0011——0001——0000(2)组成模12计数器电路。
000000——100000——110000——111000——111110——111111——011111——001111——000111——000011——000001——000000。
(3)形成并串转换电路。
2.6.4实验内容(2)如简图2-6-6所示,两个二进制数A(a0a1a2a3)、B(b0b1b2b3)分别存入74LS194(A)、74LS194(B),然后对它们按位相加,其和放入74LS1949(A)的移位输入中。
试才用全加器74LS283和D触发器74LS74组成能实现上述功能的电路,在74LS194(A)输出端Q0、Q1、Q2、Q3用发光二极管指示。
完善图2-6-6并依此图线调试电路,以表格的形式记录四个脉冲后的结果。
cp S0S1 B A Q0 1 0 0010 0011 00111 1 0 1001 1001 10012 1 0 1100 0100 01003 1 0 1110 1010 10104 1 0 1111 0101 0101(3)按单向移位寄存器的电路图2-6-1接线,实现串入-并出,并入-串出两种工作方式的输出序列。
移位寄存器实验报告参考
![移位寄存器实验报告参考](https://img.taocdn.com/s3/m/3b7d5b87c1c708a1284a446e.png)
移位寄存器实验报告(一)实验原理移位寄存器是用来寄存二进制数字信息并且能进行信息移位的时序逻辑电路。
根据移位寄存器存取信息的方式可分为串入串出、串入并出、并入串出、并入并出4种形式。
74194是一种典型的中规模集成移位寄存器,由4个RS触发器和一些门电路构成的4位双向移位寄存器。
该移位寄存器有左移,右移、并行输入数据,保持及异步清零等5种功能。
有如下功能表(二)(三)实验内容1.按如下电路图连接电路十个输入端,四个输出端,主体为74194.2.波形图参数设置:End time:2us Grid size:100ns波形说明:clk:时钟信号; clrn:置0s1s0:模式控制端 sl_r:串行输入端abcd:并行输入 qabcd:并行输出结论:clrn优先级最高,且低有效高无效;s1s0模式控制,01右移,10左移,00保持,11置数重载;sl_r控制左移之后空位补0或补1。
3.数码管显示移位(1)电路图(2)下载验证管脚分配:a,b,c,d:86,87,88,89 bsg[3..0]:99,100,101,102clk:122 clk0:125 clrn:95q[6..0]:51,49,48,47,46,44,43 s0,s1:73,72sl_r:82,83结论:下载结果与仿真结果一致,下载正确。
一、实验日志1.移位寄存器的实验真的挺纠结的,本来想用7449的,但是下载结果出现了错误,想到它在这个电路图中的功能比较单一,就自己写了一个my7449,终于对了。
五、思考题(1)简单说明移位寄存器的概念及应用情况?概念:移位寄存器是用来寄存二进制数字信息且能进行信息移动的时序逻辑电路。
根据移位寄存器存取信息的方式不同可以分为串入串出,串入并出,并入串出,并入并处4种形式。
应用:移位寄存器可以构成计数器,顺序脉冲发生器,串行累加器,串并转换,并串转换等。
(2)仿真常规方法步骤是什么?有什么注意事项?a)新建波形文件后波形图参数设置b)添加结点或总线后信号整合与位置分配c)激励输入及分段仿真注意事项:1.激励输入信号与待分析输出信号上下放置,界限分明;时钟信号置顶,其他输入信号可按异步控制,同步控制,数据输入顺序向下放置;同一元器件的控制信号就近放置;同一功能的控制信号就近放置;2.符合总线形式的IO信号优先整合;同一器件和同一属性的控制信号优先整合;脉冲信号一般不整合;整合前信号应按高位到低位顺序向下放置;整合后信号名以能直观反映该信号功能为宜;3.首先设置时钟信号等系统信号激励完成电路初始状态,其次将时间轴划分为连续的时间段,一时间段完成一小步实验内容。
四位双向移位寄存器
![四位双向移位寄存器](https://img.taocdn.com/s3/m/ea7b5d711fd9ad51f01dc281e53a580216fc5035.png)
实验五四位双向移位寄存器一、实训目的1.巩固编译、仿真VHDL文件的方法。
2.掌握VHDL程序顺序语句的应用。
3.掌握四位双向移位寄存器的工作原理。
二、实训器材计算机与Quartus Ⅱ工具软件。
三、实训指导(一)实训原理四位双向移位寄存器真值表如表5-1所示。
表5-1 四位双向移位寄存器的真值表输入输出CR M1 M0 DSR DSL CP D3 D2 D1 D0 Q3 Q2 Q1 Q00 X X X X X X X X X 0 0 0 01 X X X X 0 X X X X Q3 Q2 Q1 Q0 1 1 1 X X ↑d3 d2 d1 d0 d3 d2 d1 d0 1 0 1 1 X ↑X X X X 1 Q3 Q2 Q1 1 0 1 0 X ↑X X X X 0 Q3 Q2 Q1 1 1 0 X 1 ↑X X X X Q2 Q1 Q0 1 1 1 0 X 0 ↑X X X X Q2 Q1 Q0 0 1 0 0 X X X X X X X Q3 Q2 Q1 Q0(二)实训步骤1.设计输入VHDL文件(1)建立工程项目。
(2)建立VHDL文件。
(3)设计输入VHDL文件,可用IF语句或CASE语句等顺序语句设计。
VHDL代码如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY YWJCQ4 ISPORT(M:IN STD_LOGIC_VECTOR(1 DOWNTO 0);D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CR,CP,DSR,DSL:IN STD_LOGIC;Q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END YWJCQ4;ARCHITECTURE W OF YWJCQ4 ISBEGINPROCESS(CR,CP,DSR,DSL,M,D)BEGINIF CR='0' THEN Q<="0000";ELSIF (CP='1' AND CP'EVENT) THENCASE M ISWHEN "11"=>Q<=D;WHEN "01"=>Q<=DSR&Q(3 DOWNTO 1);WHEN "10"=>Q<=Q(2 DOWNTO 0)&DSL;WHEN OTHERS=>Q<=Q;END CASE;END IF;END PROCESS;END W;2.编译仿真VHDL文件(1)编译VHDL文件。
实验05_串入并出移位寄存器的VHDL设计1
![实验05_串入并出移位寄存器的VHDL设计1](https://img.taocdn.com/s3/m/1aad469fdaef5ef7ba0d3c6f.png)
《VHDL设计》实验报告班级:学号:姓名:成绩:实验五串入/并出移位寄存器的VHDL设计一、实验目的1、通过本实验的设计,掌握基本移位寄存器的VHDL设计方法。
2、通过本实验的设计,进一步掌握Testbench的编写和SignalTap II的使用。
3、进一步掌握FPGA设计的全过程和相关软件的使用。
二、实验内容在数字电路中,用来存放二进制数据或代码的电路称为寄存器(Register)。
寄存器是由具有存储功能的触发器组合起来构成的。
一个触发器可以存储一位二进制代码,存放N位二进制代码的寄存器,需用N个触发器来构成。
寄存器按功能可分为:基本寄存器和移位寄存器(Shift Register)。
移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。
1、基本串入/并出移位寄存器【原理】在这里我们通过一个4位串入/并出移位寄存器设计过程来介绍如何设计串入/并出移位寄存器。
所谓的串入/并出移位寄存器,即输入的数据是一个接着一个依序地进入,输出时则一起送出。
时序表达如图所示。
4位串入/并出移位寄存器仿真波形图上图中输入的数据为“1010”、“0111”两组4位数据。
图中可以看出:在第1个CLK上升沿到来时获得D_IN 的值‘1’(输出“0001”);第2个CLK上升沿到来时获得D_IN的值‘0’(输出“0010”);第3个CLK上升沿到来时获得D_IN的值‘1’(输出“0101”);第4个CLK上升沿到来时获得D_IN的值‘0’,同时输出寄存器值为“1010”(十六进制A)。
因输入的数据是每次一位依序进入,故输入、输出信号之间有4个CLK时间的延迟。
【要求】用VHDL描述该基本串入/并出移位寄存器,并行输出数据为8位。
并完成综合、仿真、下载。
用拨码开关SW1作为D_IN输入,用LED DD1~DD8作为输出D_OUT,实现移位寄存器功能。
实验七---移位寄存器及其应用
![实验七---移位寄存器及其应用](https://img.taocdn.com/s3/m/d03ad8ad18e8b8f67c1cfad6195f312b3069eb52.png)
集成移位寄存器74LS194功能表:
附:74LS194引脚图
四、实验内容
1、测试四位双向移位寄存器74LS194的逻 辑功能:(测试数据记录表5中)
(1)清除功能 (2)送数功能 (3)右移、左移功能 (4)保持功能 注:CR、S1、S0、SL、SD以及D0-D7分别
接数据开关,CP接逻辑开关,Q0-Q7接发 光二极管显示器。
2、根据实验内容2的结果,画出4 位 环形计数器的状态转换图及波形图。
3、分析串/并行、并/串行转换器所 得结果的正确性。
实验七、移位 寄存器
一、实验目的
1、掌握中规模4位双向移位寄存 器的逻辑功能及使用方法。
2、掌握移位寄存器的典型应用。 3、熟悉移位寄存器的调试方法。
二、实验设备
1、电子技术实验箱
一台
2、数字示波器
一台
3、数字万用表
一块
4、芯片:74LS194*2、74LS00
三、理论准备
移位寄存器是一种由触发器链 型连接的同步时序网络 ,每个 触发器的输出连到下一级触发 器的控制输入端,在时钟脉冲 作用下,存贮在移位寄存器中 的信息逐位左移或右移。
2、环形计数器:自拟实验电路及数据 记录表格。
3、实现数据的串/并转换:按图3、图 4连接电路,输入数码自定,自拟记录 表格。
注:串行输入/并行输出及并行输入/ 串行输出转换电路中只做右移部分; 改接电路,用左移方式的内容放在实 验报告中完成(画出电路图)
波形图:
五、实验报告要求
ห้องสมุดไป่ตู้、分析表5的实验结果,总结移位寄 存器的逻辑功能,并写入表格总结功 能一栏中。
VHDL大作业
![VHDL大作业](https://img.taocdn.com/s3/m/084c282ccfc789eb172dc856.png)
同时,根据移位寄存器存取信息的方式不同分为:串入串出、串入 并出、并入串出、并入并出四种形式。 本次要讲解的是并入并出的实现四种功能的四位移位寄存器
端口说明: Clock: 时钟脉冲信号 Enable:使能信号,低电平有效。 Load:下载信号控制端,load=0时,将输入信号送给输出。 Mode[1..0]:模式控制信号,"00"表示左移;"01"表示右移; "10"表示循环右移;"11"表示循环左移。 Data[3..0]:四位输入信号 Output[3..0]:四位输出信号
ARCHITECTURE shifter_arch OF shifter IS SIGNAL internal_output:STD_LOGIC_VECTOR(3 downto 0); BEGIN PROCESS(clock) IS BEGIN IF(clock='1' AND clock'EVENT) THEN IF(enable='0') THEN IF(load='0') THEN internal_output<=data; ELSE IF(mode="00") THEN internal_output<=internal_output(2 downto 0)&'0'; ELSIF(mode="01") THEN internal_output<='0'&internal_output(3 downto 1); ELSIF(mode="10") THEN
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY shifter IS PORT( data: IN STD_LOGIC_VECTOR(3 downto 0); load: IN STD_LOGIC; enable: IN STD_LOGIC; clock: IN STD_LOGIC; mode: IN STD_LOGIC_VECTOR(1 downto 0); output:OUT STD_LOGIC_VECTOR(3 downto 0)); END ENTITY shifter;
基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告
![基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告](https://img.taocdn.com/s3/m/6edfa201b6360b4c2e3f5727a5e9856a56122619.png)
基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告VHDL实验报告班级:电子学号:姓名:2014/5/23Experiment 1 两位二进制数的大小比较器一、实验目的:(1)熟悉QuartusII的开发环境、熟练掌握编程开发流程。
(2)学习VHDL的基本语法及编程设计。
二、实验内容:数值比较器设计三、实验要求:(1)熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程;2)设计输入使用插入语言模板(Insert Template); ((3)在QuartusII开发环境下对设计程序进行时序仿真,将生成的配置文件下载到实验板,进行最终的实物测试验证。
四、实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为: 比较器特性表A B In_s In_l In_e 比较器电路示意图YsYe YlY A > B × × × 0 0 1A[3:0] Yl Number B[3:0] A < B × × × 1 0 0 Ye A = B 0 1 0 0 0 1 In_sYs Comparer In_l A = B 1 0 0 1 0 0 In_e A = B 0 0 1 0 1 0 A = B 0 0 0 × × × A = B × 1 1 × × × A = B 1 × 1 × × × A = B 1 1 × × × ×五、程序编写、调试及仿真(芯片型号:MAX?系列EPM1270T144C5) (1)程序编写:library ieee;use ieee.std_logic_1164.all;2entity Vhdl1 isport(a,b:in std_logic_vector(3 downto 0);ins,inl,ine: in std_logic;ys,ye,yl: out std_logic);end Vhdl1;architecture one of Vhdl1 issignal temps,tempe:std_logic; beginys<=temps;ye<=tempe;yl<=temps nor tempe;process(a,b,ine)beginif (a=b and ine='1')thentempe<='1';elsetempe<='0';end if;end process;process(a,b,ins)beginif(a<b) thentemps<='1';elsif(a=b and ins='1') then temps<='1';elsetemps<='0';end if;end process;end one;(2)功能仿真:3(3)芯片引脚设定:(4)适配下载结果六、结果分析本实验实现了两位二进制数的比较。
移位寄存器的设计及实现
![移位寄存器的设计及实现](https://img.taocdn.com/s3/m/a1a735ed31126edb6e1a108b.png)
《计算机组成原理》课程设计报告移位寄存器的设计与实现移位寄存器的设计与实现摘要:系统使用EDA技术设计了具有移位功能的寄存器,采用硬件描述语言VHDL进行设计,然后进行编程,时序仿真等。
软件基于VHDL语言实现了本设计的控制功能。
本设计根据移位寄存器的功能设计了三种不同的寄存器:双向移位寄存器、串入串出(SISO)移位寄存器、串入并出(SIPO)移位寄存器。
整个设计过程简单,使用方便。
功能齐全,精度高,具有一定的开发价值。
关键词:EDA;VHDL;移位寄存器目录1 引言11.1课程设计的目的11.2 课程设计的内容12 EDA、VHDL简介22.1 EDA简介22.2VHDL22.2.3 VHDL的设计流程33 移位寄存器设计过程43.1设计规划43.2 各模块工作原理及设计53.2.1移位寄存器的工作原理53.2.2双向移位寄存器的设计53.2.3串入串出(SISO)移位寄存器的设计73.2.3串入并出(SIPO)移位寄存器的设计84 系统仿真104.1双向移位寄存器仿真图分析104.2串入串出(SISO)移位寄存器仿真图分析104.3串入并出(SIPO)移位寄存器仿真图分析10 结束语12致谢13参考文献141 引言随着社会的发展,科学技术也在不断的进步。
特别是计算机产业,可以说是日新月异,移位寄存器作为计算机的一个重要部件,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。
移位寄存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对移位寄存器进行编程实现。
近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规X的EDA工具和硬件描述语言HDL的运用;(4)数字系统的芯片化实现手段已成主流。
实验5移位寄存器
![实验5移位寄存器](https://img.taocdn.com/s3/m/ba6b2357cc7931b765ce155d.png)
教师评语及评分:
签名:年月日
随着CLK脉冲的到来,就完成了将并行预置输入的数据逐位向右串行输出的功能,即将寄存器中的最低位首先输出。本实验利用进程中的非完整条件语句构成了时序电路,同时又利用信号的“并行”特性实现移位。
3.实验设备及材料
电脑一台,QuartusII实验平台
4.实验方法步骤及注意事项
实验方法步骤:
(1)打开计算机;
“10011011”被载入,第三个时钟后,QB输出了右移出的第二个位“1”。如此进行下去,直到第八个CLK后,右移出了所有的二进制数,最后一位是“1”。
移位寄存器是用来寄存二进制数字信息且能进行信息移动的时序逻辑电路。根据移位寄存器存取信息的方式不同可以分为串入串出,串入并出,并入串出,并入并处4种形式。
signal reg8:std_logic_vector(7 downto 0);
process(clk,load)
begin
if clk'event and clk='1'then
if load='1'then
reg8<=din;--装载新数据
else reg8(6 downto 0)<=reg8(7 downto 1);
一.实验预习
1.实验目的:
(1)掌握移位寄存器的工作原理;
(2)熟悉VHDL编程语言的使用;
(3)熟悉Quartus II软件的使用。
2.实验原理、实验流程或装置示意图:
移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左右移的控制信号便可实现双向移位要求。根据寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。
实验5移位寄存器-10页word资料
![实验5移位寄存器-10页word资料](https://img.taocdn.com/s3/m/26111df327d3240c8447effe.png)
3.实验设备及材料
电脑一台,QuartusII 实验平台
4.实验方法步骤及注意事项
实验方法步骤:
(1)打开计算机;
一.实验预习
1.实验目的:
(1) 掌握移位寄存器的工作原理;
(2) 熟悉VHDL编程语言的使用;
(3) 熟悉Quartus II软件的使用。
2.实验原理、实验流程或装置示意图:
移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左右移的控制信号便可实现双向移位要求。根据寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。
本科学生实验报告
学号114090316姓名李魁
学院物电学院专业、班级11应电班
实验课程名称电子设计自动化(EDA实验)
教师及职称罗永道 副教授
开课学期2013至2014学年下学期
填报时间2014年5月17日
云南师范大学教务处编印
实验序号
5
实验名称
移位寄存器
实验时间
2014年5月16日
实验室
同析楼114
end if;
end if;
end process;
qb<=reg8(0);
dout<=reg8;
end behav;
(2)编译报告为:
(3)其仿真波形如下所示:
(4)RTL图为:
(5)符号图为:
移位寄存器实验报告参考
![移位寄存器实验报告参考](https://img.taocdn.com/s3/m/d8c0c13528ea81c759f57821.png)
移位寄存器实验报告参考(一)实验原理移位寄存器是用来寄存二进制数字信息并且能进行信息移位的时序逻辑电路。
根据移位寄存器存取信息的方式可分为串入串出、串入并出、并入串出、并入并出 4 种形式。
74194 是一种典型的中规模集成移位寄存器,由 4 个 RS触发器和一些门电路构成的 4 位双向移位寄存器。
该移位寄存器有左移,右移、并行输入数据,保持及异步清零等 5 种功能。
有如下功能表CLRN CLK S1工作状态0×S0清零10×保持1↑×并行置数, Q为ABCD1↑×串行右移,移入数据位×为 SRS11↑1串行左移,移入数据位1为 SLS11↑0保持11(二)实验框图串行输入并行输入ABCD清零输入模式控制输入时钟脉冲输入(三)实验内容1.按如下电路图连接电路74194移位寄存器并行输出QA 、QB 、 QC、QD十个输入端,四个输出端,主体为74194.2.波形图参数设置:End time :2us Grid size:100ns波形说明:clk: 时钟信号;clrn:置0s1s0: 模式控制端sl_r:串行输入端abcd:并行输入qabcd:并行输出结论:clrn优先级最高,且低有效高无效;s1s0 模式控制, 01 右移, 10 左移,00 保持, 11 置数重载; sl_r控制左移之后空位补0 或补 1。
3.数码管显示移位(1)电路图(2)下载验证管脚分配:a,b,c,d:86,87,88,89 bsg[3..0]:99,100,101,102clk:122clk0:125clrn:95q[6..0]:51,49,48,47,46,44,43 s0,s1:73,72sl_r:82,83结论:下载结果与仿真结果一致,下载正确。
一、实验日志1.移位寄存器的实验真的挺纠结的,本来想用 7449 的,但是下载结果出现了错误,想到它在这个电路图中的功能比较单一,就自己写了一个my7449,终于对了。
EDA技术-VHDL-4.6移位寄存器a
![EDA技术-VHDL-4.6移位寄存器a](https://img.taocdn.com/s3/m/45363ec5172ded630a1cb625.png)
4.6 移位寄存器程序设计与仿真实验1 实验目的(1) 掌握中规模4位移位寄存器逻辑功能及使用方法。
(2) 学会用VHDL语言设计4位移位寄存器。
2 实验原理移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。
既能左移又能右移的称为双向移位寄存器,只需要改变左、右移位的控制信号便可实现双向移位要求。
根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。
该实验设计的是串行输入并行输出的左移位寄存器,由顶层文件模块及D触发器模块组成。
3 实验内容(1) 用VHDL编写移位寄存器源程序。
(2) 将源程序进行综合、优化及功能仿真。
4 实验预习思考(1) 复习移位寄存器的工作原理。
(2) 若要实现右移位程序应怎样修改。
5 VHDL仿真实验(1)为此工程新建一个文件夹。
启动QuartusⅡ软件工作平台。
新建工程设计顶层模块的文件名为shift_reg.vhd。
在新建的VHDL模型窗口下编写的源程序如下:①顶层模块源程序(shift_reg.vhd)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity shift_reg isPort ( d : in std_logic;clk : in std_logic;qout: out std_logic_vector(4 downto 0));end shift_reg;architecture Behavioral of shift_reg issignal q: std_logic_vector(4 downto 0);component dff --元件说明语句port (d,clk:in std_logic;q:out std_logic);end component;begin107u0:dff port map(d,clk,q(0)); --元件例化语句u1:dff port map(q(0),clk,q(1));u2:dff port map(q(1),clk,q(2));u3:dff port map(q(2),clk,q(3));u4:dff port map(q(3),clk,q(4));qout<=q;end Behavioral;②D触发器模块源程序(dff.vhd)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dff isPort ( d : in std_logic;clk : in std_logic;q : out std_logic);end dff;architecture Behavioral of dff issignal q_temp:std_logic;beginprocess(clk)beginif(clk'event and clk='1')thenq_temp<=d;end if;end process;q<=q_temp;end Behavioral;(2) 创建工程及全程编译完成源代码输入后即可创建工程。
移位寄存器
![移位寄存器](https://img.taocdn.com/s3/m/686ff5a5760bf78a6529647d27284b73f24236fb.png)
实验报告4 移位寄存器实验原理:74194是一种典型的中规模集成移位寄存器, 由4个RS触发器和一些门电路构成的4位双向移位寄存器。
该移位寄存器具有左移、右移、并行输入数据、保持及异步清零5种功能。
其中A、B、C、D为并行数据输入端, QA、QB、QC、QD为并行数据输出端;SRSI为右移串行数据输入端, SLSI为左移串行数据输入端;S1.S0为模式控制端;CLRN为异步清零端;CLK为时钟脉冲输入端。
74194功能验证电路:波形图:End time: 1.0us period time:100.0 nsClk为时钟脉冲信号, clrn为清零端(低电平有效), s0为右移, s1为左移, sl、sr 分别表示左移右移的串行数据输入端。
Abcd表示并行数据输入端, Q_abcd表示并行数据输出端。
0000 右移补一10001000 清零00000000 左移补一00010001 左移补零00100010 右移补一10011001 右移补零0100当输入端随时钟的推移进行变化时, 仿真结果正确, 验证成功。
管脚分配:移位寄存器数码管显示电路图:74194用来并行移位, 4选1多路选择器用来选择74194的其中一位输出, vhdl7449用来将选中的一位转换成在数码管上表示时的段选。
Counter4产生选择信号, 然后74139(2-4译码器)就可以生成位选。
波形图:end time: 2.0 us priod time: Clk_s: 100.0ns clk_q: 10.0nsClk_s为段选时钟脉冲信号, Clk_q为位选时钟脉冲信号clrn为清零端(低电平有效), s0为右移, s1为左移, sl、sr分别表示左移右移的串行数据输入端。
din表示并行数据输入端, qbsg表示位数, q表示数码管上的段数。
到达第一个上升沿之前, 四位均为0, 在数码管上表示为“1111110”。
到达第一个上升沿后, 0010右移补一, 为1001, 在数码管上表示为“0110000, 1111110,111110,0110000”清零后, 四位均为0, 在数码管上表示为“1111110”。
双向移位寄存器
![双向移位寄存器](https://img.taocdn.com/s3/m/11ba63432af90242a995e526.png)
一、课程设计的目的与要求1.设计目的●熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;●学习利用VHDL语言设计双向移位寄存器电路程序。
2.设计要求根据设计正文提出的双向移位寄存器功能设置,实现电路设计。
二、设计正文●双向移位寄存器有三种输入方式:4位并行输入、1位左移串行输入、1位右移串行输入;●双向移位寄存器有一种输出方式:4位并行输出。
双向移位寄存器工作过程如下:●当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上跳沿触发向左移位。
●当1位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口的最低位输出,后由同步时钟的上跳沿触发向右移位。
双向移位寄存器的输入、输出端口如下:CLR:异步清零输入端;SRSI:串行右移输入端;SLSI:串行左移输入端;A、B、C、D:4位并行输入端;QA、QB、QC、QD:4位并行输出端;S0,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_regtport ( 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 issignal result1: std_logic_vector(3 downto 0);——设置信号result1使result能作为输入使用beginresult<=result1;process (clk,clr) ——敏感信号为时钟和清零信号beginif (clr='0')thenresult1<="0000";elsif (clk'event and clk='1')thencase s iswhen "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);when"10"=> ——控制信号为10时实现左移功能result1(0)<=slsi;result1(1)<=result1(0);result1(2)<=result1(1);result1(3)<=result1(2);when"11"=> ——控制信号为11时实现并行输入功能result1(0)<=a;result1(1)<=b;result1(2)<=c;result1(3)<=d;end case;end if; ——程序结束end process;end rtl;三、课程设计总结1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0图表1双向移位寄存器右移仿真波形图由上图1看出当s0s1=01时,寄存器执行右移功能,并可看出srsi=1100110011001100,输出结果result依次由初始状态0000,逐渐右移左端输入端口输入srsi=1100110011001100,此时result依次会出现1000:移入1;1100:移入两个1;0110:移入两个1一个0;再有以后出现的结果0011,1001,1100,0110,0011,1001,1100……..此结果符合真值表要求的右移功能。
双向移位寄存器VHDL设计
![双向移位寄存器VHDL设计](https://img.taocdn.com/s3/m/0a2e0ae7998fcc22bcd10d1c.png)
双向移位寄存器1.引言移位寄存器就是指具有移位功能的触发器组,它是在普通寄存器的基础上添加了移位功能的一种特殊的寄存器。
通常,移位功能就是指在寄存器里面存储的二进制数据能够在时钟信号的控制下依次左移或者右移。
移位寄存器是一种非常有用的时序逻辑电路,它常用于数据的串/并转换、并/串转换、数值运算、数据处理以及乘法移位操作等。
移位寄存器按照移位方向来进行分类,可以分类左移移位寄存器、右移移位寄存器和双向移位寄存器等。
本文将介绍双向移位寄存器。
2.VHDL 程序双向移位寄存器的VHDL程序如下:LIBRARY ieee; --打开需要用到的库USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY rom_shift IS --实体说明PORT(clk : IN STD_LOGIC;d : IN STD_LOGIC;dir : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END rom_shift;ARCHITECTURE behave OF rom_shift IS --结构体定义SIGNAL qn : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (clk)BEGINIF (clk'EVENT AND clk='1') THENIF dir='0' THENqn(0)<=d; --将输入数据d赋给最低位FOR i IN 1 TO 3 LOOP --数据由低位向高位移qn(i)<=qn(i-1);END LOOP;ELSEqn(3)<=d; --若dir=‘1’将输入数据d赋给最高位FOR i IN 2 DOWNTO 0 LOOP --数据由高位向低位移qn(i)<=qn(i+1);END LOOP;END IF;END IF;END PROCESS;q<=qn;END behave;3.仿真结果如下:实现功能:由程序可以看出,输入信号有clk,dir,d,其中clk为时钟信号,dir为移位方向控制信号。
VHDLFPGA寄存器
![VHDLFPGA寄存器](https://img.taocdn.com/s3/m/c2bb8c74ddccda38376bafa8.png)
《VHDL与数字系统设计》课程设计报告( 2014 -- 2015 年度第 1 学期)名称:VHDL与数字系统设计题目:双向移位寄存器院系:电气与电子工程学院班级:电子1301学号:1131230106学生姓名:韩辉指导教师:高雪莲设计周数:2周成绩:日期:2015年 1 月日一、课程设计的目的与要求1.设计目的(1)熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;(2)学习利用VHDL语言设计双向移位寄存器电路程序。
2.设计要求:根据设计正文提出的双向移位寄存器功能设置,实现电路设计。
二、设计正文1.双向移位寄存器工作原理及设计思路双向移位寄存器有三种输入方式:4位并行输入、1位左移串行输入、1位右移串行输入;双向移位寄存器有一种输出方式:4位并行输出。
(1).双向移位寄存器工作过程如下:当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上跳沿触发向左移位。
当1位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口的最低位输出,后由同步时钟的上跳沿触发向右移位。
(2).双向移位寄存器的输入、输出端口如下:CLR:异步清零输入端;SRSI:串行右移输入端;SLSI:串行左移输入端;A、B、C、D:4位并行输入端;QA、QB、QC、QD:4位并行输出端;S0,S1:两位控制码输入端。
(3).双向移位寄存器的端口功能如下:当CLR=0时,4位输出端清0;当CLK=0时,4位输出端保持原来状态不变;当S=00时,4位输出端保持原来的状态不变;当S=01时,允许串行右移输入1位数据;当S=10时,允许串行左移输入1位数据;当S=11时,允许4位数据从并行端口输入。
2.双向移位寄存器设计的源程序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; 输出resultARCHITECTURE rtl of double_dir_regt issignal result1: std_logic_vector(3 downto 0); ——设置信号result1BEGINresult<=result1;PROCESS (clk,clr) ——敏感信号为时钟和清零信号beginif (clr='0')thenresult1<="0000";elsif (clk'event and clk='1')thencase s isWHEN "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);WHEN"10"=> ——控制信号为10时实现左移功能result1(0)<=slsi;result1(1)<=result1(0);result1(2)<=result1(1);result1(3)<=result1(2);WHEN"11"=> ——控制信号为11时实现并行输入功能result1(0)<=a;result1(1)<=b;result1(2)<=c; result1(3)<=d;END case;END if;END process;END rtl; ——程序结束二、 课程设计结论1.双向移位寄存器的仿真波形图及其分析:当控制信号s0s1=10时实现左移功能,得到0000,0001,0011,0110的输出结果,当s0s1=00时,输出result一直保持0110不变,实现保持功能,根据仿真波形图可知,寄存器实现了保持的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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显示并行数据的输出。
三、实验内容:
, 新建工程:
1、打开Quartus,新建工程,选择好路径,工程顶层名为d_reg ;
2、新建工程,如果包含已编好的文件则可以添加,如果无则可以略过 ;
3、选择我们的器件信息:型号为:EP2C36F484C8
4、单击Next>,指定第三方工具,这里我们不指定第三方EDA工具,单击Next>后结
束工程建立。
, 建立编译VHDL文件:
1单击File\New菜单项,选择弹出窗口中的VHDL File项,单击OK按钮以建立打
开空的VHDL文件,并以工程顶层文件名保存。
2、输入源代码完后单击Processing\Start Compilation开始编译,并修改其中的
错误直到没有为止。
的错误直到没有为止。
, 建立矢量波形文件
1、单击File\New命令,选择其中的Vector Waveform File项,点击OK建立空的
波形文件,打开矢量波形文件编辑窗口;
2双击窗口左边空白区域,打开Insert Node or Bus对话框;
1、单击Node Finder…按钮,打开以下对话框,选择Filter下拉列表中的Pins:
all,并点击List按酒以列出所有的端口,通过>>按钮把这些端口加入到右面的窗口中,单击OK完成端口的添加;
2、回到波形编辑窗口,对所有输入端口设置输入波形,具体可以通过左边的工
具栏,或通过对信号单击鼠标右键的弹出式菜单中完成操作,最后保存次波形文件。
, 进行仿真:
1、单击Assignments\Settings ,Simulation mode设置为Functional,即功能
仿真。
指定仿真波形文件后单击OK完成设置;
2、单击Processing\Generate Functional Simulation Netlist以获得功能仿
真网络表;
3、单击Processing\Start Simulation完成功能仿真。
4、如果功能仿真无误后进行时序仿真:单击Assignments\Settings,在弹出对话框中Simulation mode设置为Timing,即时序仿真。
指定仿真波形文件后单击OK完
成设置。
5、单击Processing\Start Simulation,完成时序仿真。
6、如果时序仿真也没错即可下载工作了。
四、实验条件:
1. WindowsXP操作系统
2. QuartusII EDA开发系统
3. 杭州康芯SOPC硬件开发平台
五、实验原理:
本实验依然带有异步清零功能,所以用if实现优先级最高,当clr为高电
平时异步清零,当clr为低电平时实现移位功能;此时利用if的嵌套功能,用dir端控制移位的方向,当dir为低电平时左移,高电平时右移。
开始
实现清零功能clr=‘1’?
非循环右移dir=’’0’?
非循环左移
关于移位可以运用&级联这个运算符,这样程序可以显得简洁,就不用其他
像循环之类的方法了。
六、源代码:
library ieee;
use ieee.std_logic_1164.all;
entity d_reg is
port(clk,din,clr,dir:in std_logic;
dout:buffer std_logic_vector(7 downto 0));
end entity;
architecture wen of d_reg is
begin
process(clk,din,clr,dir)
begin
if(clr='1')then
dout<="00000000";
elsif(clk'event and clk='1')then
if(dir='0')then
dout<=dout(6 downto 0)&din;
else
dout<=din&dout(7 downto 1);
end if;
end if;
end process;
end architecture;
七、实验结果与分析: 1、功能仿真:
2、时序仿真:
仿真结果显示,当dir 为0时,数据串行左移,dir为1时数据串行右移,clr
为0时数据移位,为1时,清零置位。
3、下载后实物操作:
a:输入端为‘1’,左移状态,串行输入;
b:输入为‘1’,右移状态,串行输入;
C:按下复位键后全部清零。
八、讨论和回答问题及体会:
1、实验的过程步骤还是一如既往,从建立工程到仿真到下载后实物的仿真,
现
在已经感觉比较熟练了,包括以前根本不知道的功能仿真,以前没有生成功能
仿真列表,所以老是不成功;
2、感觉试验中练习的最多的就是if语句了,相反的其他的语句练习的比较少;
3、相比之下,这个程序应该是比较简单的,所以作起来也不算太难,在这种情况下,就显得自己纠错的能力比较弱了,本来程序书写完后都会在浏览一遍的,但很少能看出错误,很少能一遍成功,在这方面我感到亟待提高。