Verilog语言如何描述以下的计数器 当输入使能en为高时开始计数, 计到9时就不计了,且9之后计数器全是0
答案:1 悬赏:60 手机版
解决时间 2021-01-20 04:30
- 提问者网友:刺鸟
- 2021-01-19 13:00
Verilog语言如何描述以下的计数器 当输入使能en为高时开始计数, 计到9时就不计了,且9之后计数器全是0
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-01-19 13:58
module yibufuwei(EN, CLK, RESET, Din, count, Q);
input EN;
input CLK;
input RESET;
input [3:0] Din;
output count;
output [3:0] Q;
reg [3:0] Q1;
reg count;
assign Q=Q1;
always@(posedge CLK or negedge RESET)begin
if(!RESET) Q1=0; //RESET=0,对内部寄存器单元异步清零
else if(EN) begin //同步时能EN为1时,允许计数
if(Q1<9) Q1=Q1+1; //当Q1小于9,允许累加
else Q1=4'b0000;end //否则,一个时钟后清0返回初值
end
always@(Q1)
if(Q1==4'h9) count=1'b1; //当Q1=1001时,count输出进位标志1
else count=1'b0;//否则,输出进位0
endmodule
input EN;
input CLK;
input RESET;
input [3:0] Din;
output count;
output [3:0] Q;
reg [3:0] Q1;
reg count;
assign Q=Q1;
always@(posedge CLK or negedge RESET)begin
if(!RESET) Q1=0; //RESET=0,对内部寄存器单元异步清零
else if(EN) begin //同步时能EN为1时,允许计数
if(Q1<9) Q1=Q1+1; //当Q1小于9,允许累加
else Q1=4'b0000;end //否则,一个时钟后清0返回初值
end
always@(Q1)
if(Q1==4'h9) count=1'b1; //当Q1=1001时,count输出进位标志1
else count=1'b0;//否则,输出进位0
endmodule
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯