版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目录摘要使用硬件描述语言Verilog,在EDA工具QuartussII中,对8位双向移位寄存器进行行为级描述,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。通过本基本设计熟悉QuartusII环境下的硬件描述操作流程,掌握基本的Verilog语法与编写风格。关键字:Verilog QuartusII 移位寄存器专心-专注-专业设计8位双向移位寄存器电路1多功能双向移位寄存器1.1基本工作原理移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。但有时候需要对移位寄存器的数据流向加以控制,实
2、现数据的双向移动,其中一个方向称为右移,另一个方向称为左移,这种移位寄存器就称为双向移位寄存器。根据国家标准规定,逻辑图中的最低有效位(LSB)到最高有效位(MSB)的电路排列顺序应从上到下,从左到右。因此定义移位寄存器中的数据从低位触发器移向高位为右移,移向低位为左移。为了扩展逻辑功能和增加使用的灵活性,某些双向移位寄存器集成电路产品又附加了并行输入、并行输出等功能。下图所示是上述几种工作模式的简化示意图。图1-1 多功能移位寄存器工作模式简图1.2 基本实现方案图1-2所示是实现数据保持、右移、左移、并行置入和并行输出的一种电路方案。图中的D触发器是N为移位寄存器中的第m位触发器,在其数据
3、输入端插入了一个4选1数据选择器,用2位编码输入控制,来选择触发器输入信号的来源。当时,选择该触发器本身输出的,次态为,使触发器保持状态不变;当时,触发器的输出被选中,故CP脉冲上升沿到来时,存入此前的逻辑值,即,而,从而实现右移功能;类似地,当时,选择,实现左移功能;而当时,则选中并行输入数据,其次态,从而完成并行数据的置入功能。上述四种操作概述于表1-1,此外,在各触发器的输入端,可以得到N位并行数据的输出。图1-2 实现多功能双向移位寄存器的一种方案表1-1 图1-2的功能表控制信号功能控制信号功能S1S0S1S000保持10左移01右移11并行输入2电路图设计2.1 电路结构根据上一节
4、的移位寄存器的一种基本实现方案,可以设计出8位双向移位寄存器,完整电路图入图2-1所示。此电路由8个4选1数据选择器、8个带异步清零的D触发器组成。所有的数据选择器编码端分别对应地接在一起,同时选择D触发器的信号数据来源。D触发器时钟端CP接一起,清零端也同样接在一起,这样可以保证级联D触发器的同步,和并行输出数据的清零。另,每个D触发器的输出对应一位并行输入。Dsr是右移串行数据输入端,Dsl是左移串行数据输入端,分别接最低有效位对应的数据选择器和最高有效位对应的数据选择器。图2-1 8位双向移位寄存器2.2真值表分析电路图,可得此8位双向移位寄存器的真值表,入下表所示:表2-1 8位双向移
5、位寄存器真值表输 入输 出清零控制信号串行输入时钟CP并行输入S1S0DsrDslLLHLLHLHLHLHHHHLLHHLHHHH注:表示CP脉冲上升沿之前瞬间的电平3移位寄存器的Verilog建模3.1Verilog建模基础硬件描述语言Verilog HDL类似于高级程序设计语言(如C语言等),它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示更复杂的数字逻辑系统所完成的逻辑功能(即行为)。人们还可以用HDL编写设计说明文档,这种文档易于存储和修改,适用于不同的设计人员之间进行技术交流,还能被计算机识别和处理,计算机对于HDL的处理包括两个
6、方面:逻辑仿真和逻辑综合。逻辑仿真是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测,仿真器对HDL描述进行解释,以文本形式或时序波形图形式给出电路的输出。在电路在实现之前,设计人员可以根据仿真结果初步判断电路的逻辑功能是否正确。在仿真期间,如果发现设计中存在错误,可以对HDL文件进行修改,直至满足设计要求为止。在Verilog中,行为级描述主要使用由关键词initial或always定义的两种结构类型的语句。一个模块的内部可以包括多个initial或always语句,仿真时这些语句同时并行执行,即与他们在的模块内部排列无关,都从仿真的0时刻开始。本设计采用always语句对8位双向移位寄
7、存器进行行为级功能描述。Always本身是一个无限循环语句,即不停地循环执行其内部的过程语句,直到仿真过程结束。但用它来描述硬件电路的逻辑功能时,通常在always后面紧跟着循环控制条件,所以always语句的一般用法如下:always (事件控制表达式)begin块内局部变量的定义;过程赋值语句;end这里,“事件控制表达式”也称敏感事件表,即等待确定的事件发生或某一特定的条件变为“真”,它是执行后面过程赋值语句的条件。“过程赋值语句”左边的变量必须被定义成寄存器数据类型,右边变量可以是任意数据类型。begin和end将多条过程赋值语句包围起来,组成一个顺序执行语句块,块内的语句按照排列顺序
8、依次执行,最后一条语句执行完后,执行挂起,然后always语句处于等待状态,等待下一个事件的发生。注意,begin和end之间只有一条语句,且没有定义局部变量时,则关键词begin和end可以被省略。在Verilog中,将逻辑电路的敏感事件分为两种类型:电平敏感事件和边沿触发事件。在组合电路中,输入信号的变化直接会导致输出信号的变化。时序电路中的锁存器输出在使能信号为高电平时未亦随输入电平变化,这种对输入信号电平变化的响应称为电平敏感事件。而触发器状态的变化仅仅发生在时钟脉冲的上升沿或下降沿。Verilog中分别用关键词posedge(上升沿)和negedge(下降沿)进行说明,这就是边沿敏感
9、事件。3.2 8位双向移位寄存器Verilog描述本设计通过行为级描述语句always描述了一个8位双向移位寄存器,它有两个选择输入端、两个串行数据输入端、8个并行数据输入端和8个并行数据输出端,完成的功能与图2-1的电路相同。它有5种功能:异步置零、同步置数、左移、右移和保持状态不变。当清零信号CR跳变到低电平时,寄存器的输出被异步置零;否则,当CR=1时,与时钟信号有关的4种功能由case语句中的两个选择输入信号S1和S0决定(在case后面S1、S0被拼接成2位矢量)。设计程序如下:/Behavioral description of Universal shift registermo
10、dule shift (S1,S0,D,Dsl,Dsr,Q,CP,CR);input S1,S0;/Select inputsinput Dsl,Dsr;/serial data inputinput CP,CR;/Clock and Resetinput 7:0D;/Parallel Data inputoutput 7:0Q;/Register ouputreg7:0Q;always (posedge CP or negedge CR)if(CR) Q <= 8'b ;elsecase (S1,S0)2'b00:Q<=Q;/No change2'b01:
11、Q<=Q6:0,Dsr;/Shift right2'b10:Q<=Dsl,Q7:1;/Shift left2'b11:Q<=D;/Patallel load inputendcaseendmodule在程序中定义了一个模块(module)shift,在QuartusII中新建工程文件时,定义的顶层模块名需要与工程名保持一致,否则在编译时会出现错误。模块前端为基本输入输出口的设置。使用了行为级描述语言always,后跟ifelse判断语句,在循环执行过程中来根据输入信号判断做出相应的动作。其中if(CR) Q<=8b ;表示当CR信号为低电平时,(CR)则
12、为1,此时将8为二进制数b赋给Q,即实现移位寄存器的异步清零。Case语句类似于C语言中的case语句,同样根据判断条件来选择要执行的分支语句。在case中将S1和S0拼接为2位矢量,来共同决定判断结果。同样,移位由串行输入和7个触发器的输入拼接起来进行描述,如Q<=Dsl,Q7:1;说明了左移操作,即在时钟信号CP上升沿作用下,将左移输入端Dsl的数据直接传给输出Q7,而触发器输出端的数据左移一位,Q7:1传给Q6:0(即Q7->Q6,Q6->Q5,,Q1->Q0),于是,完成将数据左移一位的操作。但是需要注意,上述程序中所注释的右移和左移方向与图2-1一致,而与Ve
13、rilog描述语句中的排列和移动方向正好相反。后者与一般技术机程序一致(即高位在左,低位在右)。4程序仿真在QuartuaII中建立shift工程,添加Verilog文件,编写源代码后,进行全编译。编译成功后,即可对定义的模块进行功能仿真。仿真步骤查看相关QuartusII书籍。本设计中,将所有定义的引脚添加入仿真环境中,对输入数据进行强制设定,运行后观察输出波形及其时序图。根据8位双向移位寄存器的真值表,仿真时,首先考察此移位寄存器的左移、右移、保持和并行输入的基本功能,然后再在串行输入端加入信号,观察移位寄存器的书序波形。图4-1为基本功能时序图。图4-1 基本功能时序图根据图4-1,观察
14、S1和S0信号,每个基本功能的仿真之前都先强制S1=S0=1,即实现并行输入功能,给输入D7:0设置初值,然后再下一个周期对S1、S0进行改变,观察输出Q的变化。程序中,语句always (posedge CP or negedge CR)表示当有CP的上升沿或CR的下降沿时触发,因此可以从仿真时序图验证,D和Q的数据改变都发生在CP信号的上升沿。在第一个CP周期上升沿之前,设定的D初值为128,上升沿到来,D是数据移入Q,Q值为128,Q的各位同并行输入D相同。第二个CP周期中,S1=S0=0,移位寄存器功能为保持,从时序图中验证知,Q的初值保持到第三个CP周期上升沿时刻。在第三个CP周期初
15、,设定并行输入D为15,第四个周期为保持,第五个周期,设定S1S0=01,则寄存器实现右移,换算到计算机运算中即为左移一位,数值增大1倍。观察第五个周期CP上升沿之后,Q数值由15增大为30,Q的各位数值与D的各位数值比较,可以看出Q的D移位后的结果,此时串行输入的值为0,仿真验证正确。第六个周期保持数据,第七个周期并行移入数据18,保持一个周期,在第九个周期中,S1S0=10,寄存器功能为左移,换算到计算机运算为右移,及数据变为原来的一半。从仿真时序图知道,第九个CP上升沿到来后,Q数值变为9,功能仿真正确。完成基本功能的仿真后,设置串行输入Dsl和Dsr,继续仿真然后观察时序图。图4-2为
16、加入串行输入时的仿真结果。图4-2 加入串行输入时的仿真结果主要观察第五个周期,Q初值为15,寄存器功能设定为右移,右移串行输入为1,CP上升沿到来后,Q值增大为31,即增大到2倍后右在低位移入1。同样在第九个周期中,寄存器设定功能为左移,CP上升沿到来后,原有的值18变为9,但是左移串行输入为1,从高位引入1,即为128+9=137,功能仿真结果正确。5心得体会通过这次的能力拓展训练的课程设计,使我又学习了很多知识,而且是课堂上不容易学到的知识。俗话说,“实践出真知”,课堂上学习到的理论知识,如果不转化为实践的话,始终都将是一纸空文,没什么大的价值。作为一名电类专业的学生,掌握基本的EDA设
17、计方法是理所当然的事情。虽然我们的课程中,对此次课设使用的硬件描述语言的介绍并不是很多,但是并不代表它不重要,相反,我们需要学好这样一种工具,并熟练掌握。而这次的课设,则给了我学习并使用Verilog和使用QuartusII的机会,和将理论转化为实践的机会,使我获益匪浅。首先,通过课设中的程序设计,查阅相关的资料,我能熟练地使用Verilog语言编写基本的程序,熟悉各寄存器的使用方法和数据传送与处理,根据Verilog来对这些基本的硬件进行行为级的描述。在Verilog程序编写中,我还学到了使用它强大的实序仿真方法,进而根据仿真结果来来辅助程序设计,直到达到预期的功能。这个方法对以后进行Ver
18、ilog程序的编写和硬件开发将起到很大的帮助。其次,在之前的课程中,我们所学习的编程语言如C、Visual Basic,都是高级语言,在系统下编写,以其自然的语法和结构,和方便的调试工具,使我们很快学习吸收。而此次课设,我们却接触了直接对硬件进行描述的HDL语言,是区别于C之类的。Verilog语言并不像想象中的那么晦涩难懂,其实它也有灵活的结构和处理方式,而且很贴近于C语言的语法习惯和句式,学习起来很容易上手和提升。此外,通过这次课设,明白可以通过Verilog语言和QuartusII来自己定制需要的硬件模块,具有针对性高的特点。如今,我对Verilog语言也有了很浓厚的兴趣,在以后的学习中,我会加大这方面的能力提升,来实现相关电子产品的设计。再次,因为Verilog语言与硬件联系比较紧密,在ASIC设计中使用广泛,同时在嵌入式SOPC中也有及其重要的地位。这种才新兴20余年的技术手段在未来肯定会得到越来越大的推广和使用。如今
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度网络安全风险评估与处理服务合同范本
- 2025年度绿色建筑节能合同能源管理服务
- 2025年度冷链物流鸡鸭产品直供合同范本
- 2025年度跨境电商仓储租赁服务合同
- 2025年度国际贸易合同履行与国际贸易仲裁协议
- 2025年度大理石石材加工及出口合同
- 2025年度建筑工程监理合同专用条款范本
- 2025年度教育培训机构财务审计与咨询服务合同
- 2025年度养老院食堂服务外包合同
- 2025年度智能焊接机器人租赁服务合同
- LY/T 3378-2024木蜡油地板
- 元宵节猜灯谜 11
- 施工现场视频监控系统施工方案
- 2024年高考语文思辨类作文预测+考前模拟题+高分范文
- (正式版)JTT 1495-2024 公路水运危险性较大工程安全专项施工方案审查规程
- 2024年演出经纪人考试必背1000题一套
- 课题达成型品管圈
- (正式版)JBT 1050-2024 单级双吸离心泵
- 刑事判决书标准格式
- 《量化交易之门》连载27:风险的角度谈收益MAR和夏普比率
- 华师大版数学七年级下册全册教案
评论
0/150
提交评论