我是靠谱客的博主 爱笑云朵,最近开发中收集的这篇文章主要介绍libero soc 仿真74HC161,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目: 设计一个电路,利用74HC161+74HC4511,使显示数码管按1s的频率循环显示0-9 思路: - 仿真74HC161和74HC4511(仿真74HC161的步骤一样,只有代码不同) - 整合74HC161和74HC4511 工具:Libero SoC v11.9

以下为第一步中的仿真74HC161的代码

仿真步骤看EDA实验-仿真74HC4511_weixin_54140484的博客-CSDN博客,步骤一样,改文件名、设计代码和测试代码即可

  • 设计代码:
    • 代码
      •  // HC161.v
          module HC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC);
          input CP,CEP,CET;
          output [3:0]Qn;
          input MRN;
          input PEN;
          input [3:0]Dn;
          output reg TC;
          reg [3:0]qaux;
          always @(posedge CP)
              begin
                  if(!MRN)
                      qaux<=4'b0000;
                  else if(!PEN)
                      qaux<=Dn;
                  else if(CEP&CET)
                      qaux<=qaux+1;
                  else
                      qaux<=qaux;
              end
          always @(posedge CP)
              begin
                  if(qaux==4'b1010)
                      TC=1'b1;
                  else
                      TC=1'b0;
              end
          assign Qn=qaux;
          endmodule
  • 测试代码

    • 代码

      •   //test161
          `timescale 1ns/1ns
          module test161;
          reg CP,CEP,CET,MRN,PEN;
          reg[3:0]Dn;
          wire [3:0]Qn;
          wire TC;
          initial
              begin
                  CP=0;
              end
          parameter DELY=20;
          always #(DELY/2)CP=~CP;
          initial
              begin 
                  CEP=0;
                  repeat(20)
                  #20 CEP=1;
              end
          initial
              begin
                  CET=0;
                  repeat(20)
                  #20 CET=1;
              end
          initial
              begin
                  MRN=0;
                  repeat(20)
                  #20 MRN=1;
              end
          initial
              begin
                  PEN=0;
                  repeat(20)
                  #20 PEN=1;
              end
          initial
              begin
                  Dn=0;
                  repeat(20)
                  #20 Dn=$random;
              end
          HC161 u161(.CP(CP),.CEP(CEP),.CET(CET),.MRN(MRN),.PEN(PEN),.Dn(Dn),.Qn(Qn),.TC(TC));
          endmodule

最后

以上就是爱笑云朵为你收集整理的libero soc 仿真74HC161的全部内容,希望文章能够帮你解决libero soc 仿真74HC161所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部