欢迎来到天天文库
浏览记录
ID:18349272
大小:86.50 KB
页数:6页
时间:2018-09-17
《verilog hdl 硬件描述语言设计基础new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机组成原理实验实验一VerilogHDL硬件描述语言设计基础专业班级:计算机科学与技术学号:0936008姓名:冯帆学号:0936036姓名:张琪实验地点:理工楼901实验一VerilogHDL硬件描述语言设计基础一、实验目的学习VerilogHDL的基本语法和编程规则掌握寄存器等常用基本数字模块的VerilogHDL描述掌握常用寄存器的基本设计方法掌握移位寄存器设计方法二、实验内容1、阅读VerilogHDL的基本语法(见PPT);2、阅读常用基本模块的VerilogHDL描述;(见PPT);3、完成一个常用寄存器的设计:要求寄存器位数可定制;寄存器带有输出控制端;仿真
2、验证;封装成模块。(参阅P72-75)4、完成一个双向移位寄存器的设计:要求寄存器位数可定制;双向时钟;仿真验证;封装成模块。(参阅P87-89)三、实验仪器及设备:PC机+QuartusⅡ9.0+DE2-70四、实验步骤1、新建工程。2、新建verilog文件。3、分析寄存器程序代码并编译。附代码如下:/*带输出控制端的寄存器*/`defineWEISHU8modulejcq(rL,clk,cclr,d,dout,outable);//模块定义inputrL;inputclk;inputcclr;input[`WEISHU-1:0]d;inputoutable;output
3、[`WEISHU-1:0]dout;//输入输出定义wire[`WEISHU-1:0]w_0;wire[`WEISHU-1:0]w_1;wire[`WEISHU-1:0]w_2;wirew_3;//wire型定义reg[`WEISHU-1:0]w_dff;reg[`WEISHU-1:0]dout;assignw_2=w_0
4、w_1;always@(posedgeclkornegedgecclr)beginif(!cclr)w_dff<=0;elsew_dff<=w_2;endalways@(outable)beginif(outable==1)dout=w_dff;elsed
5、out=8'bz;endassignw_0=d&{`WEISHU{rL}};assignw_1={`WEISHU{w_3}}&w_dff;assignw_3=~rL;endmodule/*双向移位寄存器设计*/`defineN64modulebasic_shift_register(clkL,clkR,enable,sr_L_in,sr_R_in,L_or_R,sr_out);inputclkL,clkR,enable;inputsr_L_in;inputsr_R_in;inputL_or_R;outputsr_out;//Declaretheshiftregisterreg
6、[`N-1:0]sr=64'b1111000011110000111100001111000011110000111100001111000011110000;regsr_out;wireclk;//Shifteverythingover,loadtheincomingbitassignclk=(L_or_R)?(clkL):(clkR);always@(posedgeclk)beginif(enable==1'b1)beginif(L_or_R==1)beginsr[`N-1:1]<=sr[`N-2:0];sr[0]<=sr_L_in;sr_out<=sr[`N-1];en
7、delsebeginsr[`N-1:1]<=sr[`N-2:0];sr[`N-1]<=sr_R_in;sr_out<=sr[0];endendendendmodule4、仿真。如图下:5、将两个已经设计好的文件封装成模块。如下图所示:五、实验思考题1、寄存器寄存数据的原理是什么?在时钟边沿未到来之前,寄存器的输出保持不变,当时钟边沿到来时,寄存器的输出根据输入的变化而变化。2、如何给寄存器加入输出控制功能?利用三态门,如果输出使能信号有效,则输出,若无效,则输出高阻状态。3、利用时序仿真求出寄存器电路的输出延时,并探究工作频率的增加可能对延迟时间的影响?若时钟周期是50ns,
8、根据观察延时在7ns左右。而且随着工作频率的增加,延时会增加。1、移位功能是如何实现的?以7位的寄存器为例,左移位:将后7位赋给前7位,将移入的一位赋给末一位。右移位:将前7位赋给后7位,将移入的一位赋给最高位。
此文档下载收益归作者所有