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