码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595(仿真方法验证)


    北邮22信通一枚~

    跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章

    持续关注作者 迎接数电实验学习~

    获取更多文章,请访问专栏:

    北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客

     

     使用FPGA开发板验证的教程,请参考

    北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595-CSDN博客

    本篇博客主要以modelsim仿真的方法验证74LS595移位寄存器的功能。

    目录

    一.代码部分

    1.1  shift_register.v

    1.2  dtri.v

    1.3  dtri_n_g.v

    1.4  shift_register_tb.v

    二.仿真验证结果


     

    一.代码部分

    1.1  shift_register.v

    主程序。

    1. module shift_register
    2. (
    3. input SCK,SI,SCLR,RCK,G,
    4. output wire QA,QB,QC,QD,QE,QF,QG,QH,QH_s
    5. );
    6. wire RA,RB,RC,RD,RE,RF,RG,RH,RH_n;
    7. wire SA,SB,SC,SD,SE,SF,SG,SH;
    8. dtri Ra(.clk(SCK),.rst(SCLR),.d(SI),.q(RA));
    9. dtri Rb(.clk(SCK),.rst(SCLR),.d(RA),.q(RB));
    10. dtri Rc(.clk(SCK),.rst(SCLR),.d(RB),.q(RC));
    11. dtri Rd(.clk(SCK),.rst(SCLR),.d(RC),.q(RD));
    12. dtri Re(.clk(SCK),.rst(SCLR),.d(RD),.q(RE));
    13. dtri Rf(.clk(SCK),.rst(SCLR),.d(RE),.q(RF));
    14. dtri Rg(.clk(SCK),.rst(SCLR),.d(RF),.q(RG));
    15. dtri Rh(.clk(SCK),.rst(SCLR),.d(RG),.q(RH));
    16. assign RH_n = ~RH;
    17. assign QH_s = ~RH_n;
    18. dtri_n_g Qa(.clk(RCK),.d(RA),.g(G),.qb(SA),.qq(QA));
    19. dtri_n_g Qb(.clk(RCK),.d(RB),.g(G),.qb(SB),.qq(QB));
    20. dtri_n_g Qc(.clk(RCK),.d(RC),.g(G),.qb(SC),.qq(QC));
    21. dtri_n_g Qd(.clk(RCK),.d(RD),.g(G),.qb(SD),.qq(QD));
    22. dtri_n_g Qe(.clk(RCK),.d(RE),.g(G),.qb(SE),.qq(QE));
    23. dtri_n_g Qf(.clk(RCK),.d(RF),.g(G),.qb(SF),.qq(QF));
    24. dtri_n_g Qg(.clk(RCK),.d(RG),.g(G),.qb(SG),.qq(QG));
    25. dtri_n_g Qh(.clk(RCK),.d(RH),.g(G),.qb(SH),.qq(QH));
    26. endmodule

    1.2  dtri.v

    输出为Q的D触发器。

    1. module dtri
    2. (
    3. input clk,rst,d,
    4. output wire q
    5. );
    6. reg q1;
    7. always @ (posedge clk)
    8. if(!rst)
    9. q1 <= 1'b0;
    10. else
    11. q1 <= d;
    12. assign q = q1;
    13. endmodule

    1.3  dtri_n_g.v

    输出为~Q的D触发器。

    1. module dtri_n_g
    2. (
    3. input clk,d,g,
    4. output wire qb,qq
    5. );
    6. reg q1,q2;
    7. always @ (posedge clk)
    8. begin q1 <= ~d; end
    9. assign qb = q1;
    10. always @ (*)
    11. begin
    12. if(g) q2 <= 1'b0;
    13. else q2 = ~q1;
    14. end
    15. assign qq = q2;
    16. endmodule

    1.4  shift_register_tb.v

    仿真程序。

    1. `timescale 1ns/100ps
    2. module shift_register_tb();
    3. reg SCK,SI,RCK,SCLR,G;
    4. wire QA,QB,QC,QD,QE,QF,QG,QH,QH_s;
    5. initial
    6. begin
    7. SCK=0;
    8. SI=0;
    9. RCK=0;
    10. SCLR=0;
    11. G=0;
    12. #20 SI=1;SCLR=1;
    13. #20 SI=0;RCK=~RCK;
    14. #10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;
    15. #10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;
    16. #10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;
    17. #10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;#10 RCK=~RCK;
    18. #10 RCK=~RCK;G=1;
    19. #10 SI=1;
    20. #20 SI=0;RCK=1;
    21. #10 RCK=0;G=0;
    22. #40 SCLR=0;
    23. #10 RCK=1;
    24. #10 RCK=0;SCLR=1;
    25. end
    26. always #10 SCK=~SCK;
    27. shift_register shift_1
    28. (
    29. .SCK(SCK),
    30. .SI(SI),
    31. .RCK(RCK),
    32. .SCLR(SCLR),
    33. .G(G),
    34. .QA(QA),
    35. .QB(QB),
    36. .QC(QC),
    37. .QD(QD),
    38. .QE(QE),
    39. .QF(QF),
    40. .QG(QG),
    41. .QH(QH),
    42. .QH_s(QH_s)
    43. );
    44. endmodule

    二.仿真验证结果

  • 相关阅读:
    全同胞家系如何计算遗传力及育种值
    Java基于springboot+vue+element医疗用品销售购物商城系统 前后端分离
    用c语言实现静态通讯录
    《七月集训》(第一天)——数组
    RESR开发
    C语言程序设计(二)基础内容
    Codeforces Round #812 (Div. 2)
    互联网产品经理的月薪是多少?治好奇!
    【SpringBoot】请求参数处理 —— Rest使用与原理
    selenium报错解决
  • 原文地址:https://blog.csdn.net/bc202205/article/details/134537002
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号