1 / 6
文档名称:

双向移位寄存器.doc

格式:doc   大小:85KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

双向移位寄存器.doc

上传人:文库旗舰店 2019/12/16 文件大小:85 KB

下载得到文件列表

双向移位寄存器.doc

文档介绍

文档介绍:双向移位寄存器一、课程设计的目的与要求1(设计目的,熟悉MAXPLUS2/QuartusII软件,掌握软件的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源程序:LIBRARYIEEE;;;——包含库和程序包entitydouble_dir_regtis——定义实体为double_dir_regtport(s:instd_logic_vector(1downto0);clr,clk,srsi,slsi,a,b,c,d:instd_logic;result:outstd_logic_vector(3downto0));——设置端口参数输入控制信号s,时钟clk,并行输入abcd,enddouble_dir_regt;输出resultARCHITECTURErtlofdouble_dir_regtissignalresult1:std_logic_vector(3downto0);——设置信号result1使result能作为输入使用beginresult<=result1;process(clk,clr)——敏感信号为时钟和清零信号beginif(clr='0')thenresult1<="0000";elsif(clk'eventandclk='1')thencasesiswhen"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)<=res