用quartus II作一个异步复位,同步使能,自动加载型16位二进制加法计数器

本文介绍了如何使用Quartus II设计一个16位二进制加法计数器,具备异步复位、同步使能和自动加载功能。在初始设计中遇到问题,当load为0时无法自动加载。通过修改设计,最终实现了预期功能,计数器在达到一半计数值时会翻转cout信号,并在满足特定条件时加载输入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始的想法是

module cont16(clk,rst,en,load,cout,dout,data);

parameter value=10; 


input  clk,rst,en,load;
input  [15:0] data;
output [15:0] dout;
output cout;


reg [15:0] q;
reg cout;


assign dout = q;


always @(posedge clk or posedge rst) 
begin
        if(rst)
        begin
                q<=0;
                cout<=0;
        end
        else if(en)
        begin
        if(!load) q<=data;
        else if(q>=(value/2-1)) 
        begin
        q=0; 
        cout=~cout;
        end
        else q<=q+1;
        end
end
endmodule

但用仿真时发现当 load = 0时,发现不能做到自动加载。后来改了下

module lsyyx_1(clk,rst,en,load,cout,dout,data,count);

parameter value=10000; 

input  clk,rst,en

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值