(8)Exams/ece241 2014 q7a

1.1 目录

(1)目录

(2)题目要求

(3)原理

(4)代码

1.2 题目要求

Design a 1-12 counter with the following inputs and outputs:

  • Reset Synchronous active-high reset that forces the counter to 1
  • Enable Set high for the counter to run
  • Clk Positive edge-triggered clock input
  • Q[3:0] The output of the counter
  • c_enable, c_load, c_d[3:0] Control signals going to the provided 4-bit counter, so correct operation can be verified.

You have the following components available:

  • the 4-bit binary counter (count4) below, which has Enable and synchronous parallel-load inputs (load has higher priority than enable). The count4 module is provided to you. Instantiate it in your circuit.
  • logic gate

解释:就是给你一个4位二进制计数器(它自己本身可以构建0-15的计数器,因为4位1为15),让你使用这个 4位二进制计数器构建一个1-12的计数器。模块给你了,你直接实例化就行。

1.3 原理

问题:因为给的4位计数器可以计数0-15,而你需要1-12所以我们需要了解这个4位二进制计数器。它的具体原理可以自行百度。我给大家解释一下,它给的4位二进制计数器各个端口的意义。

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

(1)enable是模块的使能信号,为高电平时模块工作进行计数。

(2)load为1时可以对该模块进行置数(意思就是它为高电平时,可以给计数模块一个初值(就是当时的输入d),让它从这个初值开始进行计数,我们本题是让从1进行计数所以把d和load置为1就行。)

(3)d就是模块的初始计数起点值。

(4)Q就是输出的计数值

1.4 代码

module top_module (
    input clk,
    input reset,
    input enable,
    output [3:0] Q,
    output c_enable,
    output c_load,
    output [3:0] c_d
); 
    always@(*)
        begin
            if(reset == 1'b1)
                begin
            		c_load <= 1'b1;
                    c_d	<= 4'd1;
                end
            else
                begin
                    c_load <= 1'b0;//置零原因是为了防止再次置数
                    if((enable == 1'b1) && (Q == 4'd12))
       			 		begin
                     		c_load <= 1'b1;
                     		c_d <= 4'd1;
                		 end
                end
        end
    assign	c_enable = enable;
    	
    count4	count4_inst(
        .clk	(clk)	,
        .enable	(enable)	,
        .load	(c_load)	,
        .d		(c_d)	,
        .Q		(Q)
    );

endmodule

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只准备起飞的小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值