用verilog程序设计一个具有异步清零功能的24进制计数器
module counter_24 ( input clk, input rst, input cnt_in ,output reg cnt_out );
reg [4:0] cnt;
always @ (posedge clk or posedge rst_n) begin
if (rst) cnt <= 5'b0;
else if (~cnt_in) cnt <= cnt;
else if (cnt == 5'b10110) cnt <= 5'b0;
else cnt <= cnt + 1'b1;
end
always @ (posedge clk or posedge rst) begin
if (rst) cnt_out <= 1'b0;
else if (cnt_in && cnt == 5'b10110) cnt_out <= 1'b1;
else cnt_out <= 1'b0;
end
endmodule
input add; //为1时加操作
input dec; //为1时减操作
output [5:0] counter;
reg [5:0] counter;
always @(add and dec) begin
if(add && !dec) begin
if(counter == 6'd38) begin
counter <= 6'd0;
扩展资料:
有一种记数系统便是24进制的,其中1~24有专门的符号来表示,大于24的数便可以像24进制那样写成多位数,如tokaputokapuŋgayepoko代表24进制中的P0(552)。malapu talusupuŋga talu代表24进制中的H2G(9856)。
为了避免混淆1和I,0和O,故跳过字母I、O,18~~23分别计作J、K、L、M、N、P。比如:16计作G、22计作N。
等于或大于24的数字计作:24→10、25→11、26→12……25→11中标粗体的1代表24。同一个数字在不同的位置代表的值是不一样的。
参考资料来源:百度百科-二十四进制
module counter_39{
add,
dec,
counter
};
input add; //为1时加操作
input dec; //为1时减操作
output [5:0] counter;
reg [5:0] counter;
always @(add and dec) begin
if(add && !dec) begin
if(counter == 6'd38) begin
counter <= 6'd0;
end
else begin