0
我想製作一個基於fpga板的計算器(斯巴達3)。我有以下代碼如何將兩位BCD碼轉換爲二進制碼?
module bcd_converter(
input [7:0] R,
output reg [3:0] Hundreds,
output reg [3:0] Tens,
output reg [3:0] Ones
);
integer i;
always @ (R)
begin
Hundreds = 4'd0;
Tens = 4'd0;
Ones = 4'd0;
for(i=7;i>=0;i = i-1) begin
if(Hundreds >= 5)
Hundreds = Hundreds + 3;
if(Tens >= 5)
Tens = Tens + 3;
if(Ones >= 5)
Ones = Ones + 3;
Hundreds = Hundreds<<1;
Hundreds[0] = Tens[3];
Tens = Tens << 1;
Tens[0] = Ones[3];
Ones = Ones<<1;
Ones[0] = R[i];
end
end
endmodule
但是,所提供的代碼僅將二進制轉換爲BCD。我正在尋找一種方法來扭轉這種算法。有沒有更好的方法將BCD轉換爲二進制文件?
對於2個BCD數字只有100個值,所以你可以使用帶有100個case語句,讓編譯器做的工作適合你。 – aja