实现74LVC161的计数器功能

VerilogHDL程序设计与仿真作业8:

——实现74LVC161的计数器功能

一、实验目的

  • 实现74LVC161的计数器功能

二、实现74LVC161的计数器功能

1、设计思路

  • 结合74LVC161的引脚图、功能表等等,进行为级建模,实现74LVC161的计数器功能

  • 74LVC161的引脚定义

在这里插入图片描述

  • 74LVC161逻辑符号

在这里插入图片描述

  • 74LVC161的功能表

在这里插入图片描述

2、实现代码

//文件名称:_74LVC161.v
//fuchaoxinHUST12102020
module _74LVC161(CP, MR_, PE_, D, CEP, CET, Q, TC);
input CP, MR_, PE_;
input [3:0] D;
input CEP, CET;
output reg [3:0] Q;
output reg TC;
/*说明:
输入端:PE_预置信号端;CR_清零信号端;CEP,CET使能信号;CP时钟信号,上升沿敏感;[3:0] D预置输入;
输出端:[3:0] Q输出端;进位信号TC;
*/

always @(posedge CP or negedge MR_) begin
    if(~ MR_) begin
        Q = 4'b0000;
        TC = 0;
    end

    else if (~ PE_) begin
        Q <= D;
    end

    else begin
        casex ({CEP, CET})
        2'b0x: Q <= Q; // 保持
        2'bx0: begin
            Q <= Q; TC = 0; // 保持
            end 
        2'b11: begin
            Q <= Q + 1'b1; TC = (Q == 4'b1111);
            end
        endcase
    end
end
endmodule

3、测试代码

//文件名称:Test_74LVC161.v
//fuchaoxinHUST12102020
`timescale 10ns/1ns
module Test_74LVC161;
reg CP, MR_, PE_, CEP, CET ;
reg [3:0] D;
wire [3:0] Q;
wire TC;

_74LVC161 U0(CP, MR_, PE_, D, CEP, CET, Q, TC);//实例化元件

initial
    $monitor($time,":\t MR_=%b, PE_=%b, D=%b, CEP=%b, CET=%b, Q=%b, TC=%b \n", MR_, PE_, D, CEP, CET, Q, TC);
    //监视器的显示内容
initial
    CP = 0;
always
    #1 CP = ~CP;
initial begin
    // 预置1111
    MR_=1; PE_ = 0; CEP=1; CET=1; D=4'b1111;
    #1
    // 保持
    MR_=1; PE_ = 1; CEP=0; CET=1; D=4'b1111;
    #1
    // 清零
    MR_=0; PE_ = 1; CEP=1; CET=1; D=4'b1111;
    #1
    // 计数
    MR_=1; PE_ = 1; CEP=1; CET=1; D=4'b1111;
    #25
    // 停止计数,并保持
    MR_=1; PE_ = 1; CEP=1; CET=0; D=4'b1111;
    #2
    $stop;//停止模拟仿真
end
endmodule

4、仿真

  • 波形

在这里插入图片描述

  • 监控器

在这里插入图片描述

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值