移位寄存器实验报告..doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
移位寄存器实验报告.

《数字逻辑电路》实验报告 课程名称:数字逻辑电路实验 实验编号:07 实验名称:移位寄存器实验 报告时间:2013.11.14 实验目的 本实验通过介绍几种常用寄存器的设计方法,复习寄存器的原理,学习寄存器和常用移位寄存器的设计。 实验原理(背景知识) 理论知识: 在数字电路中,移位寄存器(英语:shift register)是一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入到该器件中,然后每个时间脉冲依次向左或右移动一个比特,在输出端进行输出。这种移位寄存器是一维的,事实上还有多维的移位寄存器,即输入、输出的数据本身就是一些列位。实现这种多维移位寄存器的方法可以是将几个具有相同位数的移位寄存器并联起来。 三.实验环境和工具: Quartus||12.0 FPGA开发板 四.实验设计思路 新建一个Verilog语言文件,在此Verilog元文件中试调用三种不同的存储单元来完成,编译工程,用RTL Viewer工具查看代码生成的寄存器传输级电路,然后用Technology Map Viewer工具查看电路在FPGA中的实现,比较三个电路,看看有什么区别。 使用Modelsim对电路进行仿真,查看三个存储单元的输出结果,比较三种存储单元的不同。 实验的测试序列或验证方法 测试序列:选取几组具有代表性的序列module D_latch(d,clk,qa,qb,qc); input d,clk; output wire [1:0]qa; output wire [1:0]qb; output wire [1:0]qc; seg2 wo2(d,clk,qa[1:0]); seg1 wo1(d,clk,qb[1:0]); seg0 wo0(d,clk,qc[1:0]); endmodule module seg2(d2,clk2,qa2); input d2,clk2; output reg [1:0]qa2; always @ (*) begin if (clk2) begin qa2[1]=d2; qa2[0]=~d2; end end endmodule module seg1(d1,clk1,qb1); input d1,clk1; output reg [1:0]qb1; always @ (posedge clk1) begin qb1[1]=d1; qb1[0]=~d1; end endmodule module seg0(d0,clk0,qc0); input d0,clk0; output reg [1:0]qc0; always @ (posedge ~clk0) begin qc0[1]=d0; qc0[0]=~d0; end endmodule 2.编写测试代码: always // optional sensitivity list // @(event1 or event2 or .... eventn) #10 clk=~clk; initial begin // code executes for every event on sensitivity list // insert code here -- begin d = 1b0; clk =1b0; #7; d =1b1; #7; d =1b0; #7; d =1b1; #7; d =1b0; #7; d =1b1; #7; d =1b0; #7; d =1b1; #7; d =1b0; #13; d =1b1; #7; d =1b0; #7; 3.仿真测试结果 4. 使用RTL Viewer查看代码生成的寄存器传输 5. 使用Technology Map Viewer工具查看电路在的实现 实验结果 1.用Verilog代码成功实现了一个D锁存器,上升沿D触发器,下降沿D触发器 2.仿真结果和预期相同 实验中遇到的问题及解决方案 一直没有找到合适的放置clk=~clk的地方,后来上网查询资料,发现要把INITIAL放在时钟代码后面。 功能仿真时,由于大小单位没有设置好,导致一开始只能看到直线,设置波形图大小之后正常显示结果。 实验的启示/意见和建议 更加熟练学会使用。 问题分化分几个小问题来实现。

文档评论(0)

d47fv82b5hI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档