📄 k_counter.v
字号:
module k_counter(Kclock, reset, dnup,enable, Kmode, carry, borrow );input Kclock, reset, dnup, enable;input[2:0] Kmode;output carry, borrow;reg[8:0] count; /*可逆计数器*/reg[8:0] Ktop; /*预设模值寄存器*//*根据计数器模值设置信号Kmode来设置预设模值寄存器的值*/always @(Kmode)begincase(Kmode) 3'b001: Ktop = 7; 3'b010: Ktop = 15; 3'b011: Ktop = 31; 3'b100: Ktop = 63; 3'b101: Ktop = 127; 3'b110: Ktop = 255; 3'b111: Ktop = 511; default:Ktop = 15;endcaseend/*根据鉴相器输出的加减控制信号dnup进行可逆计数器的加减运算*/always @(posedge Kclock or negedge reset)begin if(~reset) count <= 0; else if(enable) begin if(~dnup) // 进行加运算 begin if(count==Ktop) count <= 0; else count <= count+1; end else begin // 进行减运算 if(count==0) count <= Ktop; else count <= count-1; end endendassign carry = enable&(~dnup)&(count==Ktop);assign borrow = enable&(dnup)&(count==0);endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -