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
/