八进制到二进制的verilog代码

时间:2018-02-05 04:11:54

标签: verilog

module hgf(oct,bin);
input [1:0]oct;
output [7:0]bin;
reg[1:0]n;
reg [7:0]k;
integer i,d;
always@(*)
begin
n = oct;
while(n<0)
begin
d=(d+(n%10))* (8^i);
n=n/10;
end
i=1;
while(d!=0)
begin
k = k+(d%2)*i;
d=d/2;
i=i*10;
end

end
assign bin=k;
endmodule

我尝试使用上面的代码将八进制转换为二进制,但它有一些错误。好像是C编码。是的,我得到了C代码,并根据我的知识将其转换为verilog。

我是verilog的初学者。拜托,有人帮助我。

1 个答案:

答案 0 :(得分:0)

那里没有八进制数字。它们以三位为单位。你有一些你称之为八进制的东西,但它只有两位。

这是旧PDP11的图像,其中18位输入面板由六个八进制数组成。我正在向您展示如何获取多个八进制数并将它们转换为更大的二进制数。在Verilog中,您不会使用模块,因为只需要一个语句即可完成

enter image description here

默认情况下,您的代码无法正常工作,Verilog中的所有数字都是无符号的。所以&#34;而(n <0)&#34;不起作用。