16进制数转10进制数的改进方法
在我们的按键处理和显示代码中,要使用16进制转10进制进行显示的问题,讲义中使用了如下的两个always分别实现高四位和低四位的转换,在这里推荐一种一次就可以转换完毕的方法。
原来的方法:
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout <= 0;
end
else if(din>9)begin
dout <= din-10;
end
else begin
dout <= din;
end
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout <= 0;
end
else if(din >9) begin
dout <= 1;
end
else begin
dout <= 0;
end
end
改进方法如下:
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout <= 0;
end
else if(din >9) begin
dout <= din+6;
end
else begin
dout <= din;
end
end
这样只需要一个always,一次实现八位转换过程!
页:
[1]