Verilog 把8位的16进制转换为8位的10进制,且提取10进制的百、十和个位数的方法

1、8位的16进制转换为8位的10进制
就是把第0位的数值加上第1位的数值的16倍

function [7:0]Hex_to_Doc;
input  [7:0] num_h;
begin
     Hex_to_Doc = num_h[3:0] + num_h[7:4]*16;
end 
endfunction

2、提取10进制的百、十和个位数
a.如果该数大于等于100:
三位数的百位:百位数是将这个数直接除以100;
三位数的十位:十位数是将这个数直接除以10再对10取余数;
三位数的个位:个位数是将这个数直接对10取余数;
b.如果该数大于等于10,小于100:
两位数的十位:十位数是将这个数直接除以10;
两位数的个位:个位数是将这个数直接对10取余数;
c…如果该数小于10:
那该数就是其个位数。

//
reg[7:0] bit_bai;
reg[7:0] bit_shi;
reg[7:0] bit_bai;
always @(posedge clk)
begin
		transfer(8'd120);
end

task transfer;
input  [7:0] num;
begin
      if(num >= 8'd100)
      begin
            bit_bai <= num/100;
            bit_shi <= (num/10)%10;
            bit_ge  <= num%10;
      end
      else if(num < 8'd100 && num >= 8'd10)
      begin
            bit_bai <= 8'h00;
            bit_shi <= num/10;
            bit_ge  <= num%10;
      end
      else
      begin
            bit_bai <= 8'h00;
            bit_shi <= 8'h00;``
            bit_ge  <= num;
      end
end 
endtask
/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值