32位移双向位寄存器的设计_第1页
32位移双向位寄存器的设计_第2页
32位移双向位寄存器的设计_第3页
32位移双向位寄存器的设计_第4页
32位移双向位寄存器的设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 EDA课程设计报告题目:32位移位寄存器设计 专业班级:电气工程及其自动化101姓名: 完成日期:2012年12月 30 日 设计要求双向移位寄存器设计要求:完成以下功能特性的双向32 位移位寄存器。同时要求有使能端,用1602 显示。LOADLEFT_RIGHTCLKDQ1XXD异步置数Q=D00D循环右移01D循环左移32位移位寄存器设计摘 要:移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中使用硬件描述语言Verilog,在EDA工具QuartussII中,设计32位双向移位寄存器硬件电路,根据设计语言

2、进行功能时序仿真,验证设计的正确性与可行性。关键词:Verilog QuartusII 移位寄存器1 引言随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,移位寄存器作为计算机的一个重要部件,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。移位寄存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言Verilog对移位寄存器进行编程实现。现在各种装饰用的流水灯、广告彩灯、宣传画越来越多的出现在人民的生活当中,这些装饰控制设备多数要用移位寄存器来

3、实现。在计算机中常要求寄存器有移位功能。如在进行乘法时,要求将部分积右移;在将并行传送的数转换成串行数时也需要移位。因此,移位寄存器的设计是必要的。2 总体设计方案移位寄存器的功能即是对每一个上升沿到来时,并且寄存器使能是时,对输入按照移位模式控制信号的要求实现输出的左移和右移。首先,要完成双向的32位移位寄存器,就首先必须要实现8位移位寄存器作为基础。其次,在4个8个移位寄存器的基础上达到32位移位寄存器的功能。第一要有模式控制输入,来控制移位寄存器的移位方向;第二,有使能端,即在什么情况下移位寄存器才可以正常工作,才可以实现模式控制,什么时候置数,什么时候移位,是左移还是右移,这就要求使能

4、是模式控制输入的前提;然后是脉冲控制信号,由要求可知,移位寄存器是在上升沿触发的,即在每一次上升沿到来时,移位寄存器使输入按照模式控制的要求向左或向右移一位;最后输入和输出,都要用到32位并行输入和输出。本设计用一个8位移位寄存器,再增加一些电路,如4个8位锁存器等,设计成为一个能为32位二进制数进行不同方式移位的移位寄存器。先建立底层模块,再自底向上进行实验调试仿真。2.1 设计思路2.1.1 8位移位寄存器功能的实现移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中定义移位寄存器中的数据从低位触发器移向高位为

5、右移,移向低位为左移。由设计要求可知,要实现8位的双向移位寄存器,并且还有使能端。我们可令CLK为移位时钟信号,D为8位并行预置数据端口,CO为进位输入,CN为进位输出,LOAD为并行数据预置使能信号,Q为串行输出端口,LEFT_RIGHT为左/右移控制数。此移位寄存器的工作方式是:当CLK得上升沿到来时,过程被启动,如果这时预置使能端LOAD为低电平,且移位模式控制数LEFT_RIGHT为1时,则进位输入CO被移入最低位,最高位被移入寄存器中,进而移到进位输出CN,低7位依次左移1位;如果移位模式控制数LEFT_RIGHT为0时,则CO被移入最高位,最低位被移入寄存器中,进而移到进位输出CN

6、,高7位依次右移1位。但如果这时预置使能端LOAD为高电平时,则将预置端口D中数据并行送往移位寄存器。最后在8位的基础上来实现32位的更高功能。模块程序见附录。所生成的RTL图如下图1,仿真图如图2。图1图22.1.2 8位锁存器功能的实现通过8位锁存器实现数据输入缓存,连通数据输入与分配到四个八位寄存器。其RTL图如图3,仿真图如图4。图3图42.1.3 32位移位寄存器功能的实现一个Verilog模块对应一个硬件电路功能实体器件。如果要将这些实体器件连接起来构成一个完整的系统,就需要一个总的模块将所有涉及的子模块连接起来,这个总的模块所对应的Verilog设计文件就成为顶层文件,或顶层模块

7、。为了达到连接底层文件达到更高层次的电路设计结构,文件中使用了例化语句,用wire定义了网线型变量,用作底层文件的连线。Verilog中元件例化的语句结构比较简单,一般格式如下: ( . 例化元件端口(例化元件外接端口名),);总体图中用到了4个锁存器和4个8位移位寄存器。相同的元件承担不同的任务,所以必须用不同的名字标注这些器件即元件名。本设计中分别用u1,u3,u5,u7 表示4个锁存器,用u2,u4,u6,u8表示4个8位移位寄存器。具体例化语句如:SUOCUN U1(.D(DB7:0),.CLK(CLK),.Q(E);SUOCUN 为待调用的元件名,它就是存盘过的。而u1是用户在此特定

8、情况下调用元件SUOCUN而取的名字,即例化名。CLK(CLK)中的括号内是锁存器内部时钟,括号外是外部时钟,表示内部时钟与外部时钟相连。总的程序见附录。生成的RTL图和仿真图见下图5,6:图5图62.1.4 整体设计首先,当脉冲上升沿到来,LOAD=0使能时,确定移位模式控制数,若left_right=0,则执行begin REG7=CO;REG6:0=REG7:1;CY=REG0;end。此语句表明:一个时钟周期后将上一时钟周期移位寄存器中的最低位放入寄存器的最高位,且高7位二进制数,即以当前值 REG7:1更新至此寄存器的低7位d6:0。但它并不会自我覆盖,则其串行移空的最高位始终由后放

9、入的最高位补充,随着CLK脉冲的连续到来就完成了将并行预置输入的数据逐位向右串行输出的功能,即将寄存器的最低位首先输出;若left_right=1,则执行begin REG0=CO;REG7:1=REG6:0;CY=REG7;end。表明:一个时钟周期将上一时钟周期移位寄存器中的最高位放入寄存器的最低位,且低7位二进制数,即以当前值 REG6:0更新至此寄存器的高7位d7:1,并执行后面的assign Q=REG;assign CN=CY。实现最终的输出。完整程序见附录。3 总结经过了两周的学习和工作,我终于完成了移位寄存器的设计和实现及相关论文。从开始接到课程设计题目到系统的实现,再到论文文

10、章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的一项比较大的项目。在这段时间里,我学到了很多知识也有很多感受,从课程设计,EDA,VHDL等相关知识很不了解的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。通过查阅相关的资料我初步地学会了使用Verilog语言编写基本的程序熟悉了各寄存器的使用方法和数据传送与处理根据Verilog来对这些基本的硬件进行行为级的描述。在Verilog程序编写中我还体会到了它强大的实序仿真功能进而根据

11、仿真结果来来辅助程序设计直到达到预期的功能。这个方法对以后进行Verilog程序的编写和硬件开发将起到很大的帮助。 虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。通过查阅相关的资料我初步地学会了使用Verilog语言编写基本的程序熟悉了各寄存器的使用方法和数据传送与处理根据Verilog来对这些基本的硬件进行行为级的描述。在Verilog程序编写中我还体会到了它强大的实序仿真功能进而根据仿真结果来来辅助程序设计直到达到预期的功

12、能。这个方法对以后进行Verilog程序的编写和硬件开发将起到很大的帮助。附录18位移位寄存器程序module YIWEI (CLK,CO,LOAD,LEFT_RIGHT,D,Q,CN);output 7:0 Q;output CN;input CLK,CO,LOAD,LEFT_RIGHT;input 7:0 D;reg 7:0 REG;reg CY;always (posedge CLK or posedge LOAD) beginif(LOAD) REG=D;else if(LEFT_RIGHT)begin REG0=CO;REG7:1=REG6:0;CY=REG7;endelse beg

13、in REG7=CO;REG6:0=REG7:1;CY=REG0;endendassign Q=REG;assign CN=CY;endmodule锁存器程序module SUOCUN (D,Q,CLK);output 7:0 Q;input 7:0 D;input CLK;reg 7:0 Q1;always (posedge CLK) beginQ1=D;endassign Q=Q1;endmodule32位移位寄存器程序module YIWEI32 (DB,CLK,LOAD,LEFT_RIGHT,QB);output 31:0 QB;input 31:0 DB; input CLK,LOA

14、D,LEFT_RIGHT;wire 7:0 E,F,G,H; wire K,L,M,N;SUOCUN U1(.D(DB7:0),.CLK(CLK),.Q(E);YIWEI U2(.CLK(CLK),.CO(K),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D(E),.Q(QB7:0),.CN(L);SUOCUN U3(.CLK(CLK),.D(DB15:8),.Q(F);YIWEI U4(.CLK(CLK),.CO(L),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D(F),.Q(QB15:8),.CN(M);SUOCUN U5(.CLK(CLK),.D(DB23:16),.Q(G);YIWEI U6(.CLK(CLK),.CO(M),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D(G),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论