二进制:采用两个计数符号0和1;逢2进1;
十六进制:常用十六进制和八进制来表示二进制吗;采用是16个计数符号;逢16进1
以同步二十四二进制计数器cnt24为例子:
1. 采用二进制
module cnt24_1(clk,clr,ten,one,co);
input clk,clr;
output[3:0]ten,one;
output co;
reg co;
reg[3:0]ten,one;
always@(posedge clk)
begin
if(clr) begin ten<=0;one<=0;co<=0;end
else
begin
if((one==4'b0011)&&(ten==4'b0010)) begin one<=0;ten<=0;co<=1;#50 co=0;end
else if(one==4'b1001)begin one<=0;ten<=ten+1;end
else one<=one+1;
end
end
one从4‘b000~4'b1001跳变到0,再从4‘b000~4'b1001跳变到0,再从4‘b000~4'b0010跳变到0;实现了0~23即模24的计数。
2. 采用十六进制
module cnt24_1(clk,clr,ten,one,co);
input clk,clr;
output[3:0]ten,one;
output co;
reg co;
reg[3:0]ten,one;
always@(posedge clk)
begin
if(clr) begin ten<=0;one<=0;co<=0;end
else
begin
if((one==3)&&(ten==2)) begin one<=0;ten<=0;co<=1;#50 co=0;end
else if(one==9)begin one<=0;ten<=ten+1;end
else one<=one+1;
end
end
endmodule
///
效果与1完全一样
3. 更改2中的3为4’h0011;2为4'h0010;9为4'h1001
程序就出错了。
4‘h0011=1*(16)^0+1*(16)^1=17!
十六进制以16为基数
二进制以2为基数