HDLBits问题记录:Counter 1-12-例化4bits counter


  • 理解4bit-counter输入输出的关系
  • 学习如何调用已有模块实现要求逻辑

问题分析:

1、count4输入输出分析

module count4(
	input clk,        //沿触发计数
	input enable,     //高电平有效才开始计数
	input load,       //置位使能信号,高电平有效
	input [3:0] d,    //load有效时将d作为预设值
	output reg [3:0] Q
);

2、count4例化和顶层的关系

module count4(
	input clk,
	input enable,
	input load,
	input [3:0] d,
	output reg [3:0] Q
);

module top_module (
    input clk,          //clk共用
    input reset,        //reset高电平有效,实现置位,
    input enable,       //enable共用
    output [3:0] Q,     //共同输出
    output c_enable,    //c_enable=enable  
    output c_load,      //c_load=reset| (Q==4'b1100) 还需要考虑一下enable的优先级(一般reset优先级更高)
                        //复位信号有效或者已经计数到12了,在下一个时钟上升沿来的时候置位信号有效
    output [3:0] c_d    //置位信号有效时,c_d置为1
); 

参考解决方式

//My solution
module top_module (
    input clk,
    input reset,
    input enable,
    output [3:0] Q,
    output c_enable,
    output c_load,
    output [3:0] c_d
); //
    assign c_enable=enable;
    assign c_load = reset|((Q==4'b1100)&enable);
    assign c_d = 4'b0001;
   	count4 the_counter (.clk(clk),.enable(c_enable),.load(c_load), .d(c_d) ,.Q(Q));

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值