hyhyx1 发表于 2019-11-10 20:25:57

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]
查看完整版本: 16进制数转10进制数的改进方法