首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog模拟输出错误,二进制到格雷转换器

Verilog模拟输出错误,二进制到格雷转换器
EN

Stack Overflow用户
提问于 2018-05-14 23:42:57
回答 1查看 116关注 0票数 0

我正在设计一个二进制到格雷码的转换器。这是我的主要代码:

代码语言:javascript
复制
module gray_code (bin_num, Gray_num);

input [3:0] bin_num; //binary input
output [3:0] Gray_num; //gray output


assign Gray_num[3] = bin_num[3];
assign Gray_num[2] = bin_num[3]^bin_num[2];
assign Gray_num[1] = bin_num[2]^bin_num[1];
assign Gray_num[0] = bin_num[1]^bin_num[0]; 

endmodule

这是testbench:

代码语言:javascript
复制
module gray_code_tb;

reg [3:0] bin_num;
wire [3:0] Gray_num;    
integer i;

gray_code DUT(.bin_num(bin_num),.Gray_num(Gray_num));

initial begin

for(i=0;i<16;i=i+1)begin
    bin_num=i;
    $display("BIN = %b   GRAY =%b", bin_num, Gray_num);
end
end

endmodule

我在模拟后得到的输出是:

代码语言:javascript
复制
BIN = 0000   GRAY =xxxx;
BIN = 0001   GRAY =xxxx;
BIN = 0010   GRAY =xxxx;
BIN = 0011   GRAY =xxxx;

为什么它显示了格雷码的所有x?

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 23:53:17

在模拟中,不会经过任何时间。所以信号永远不会有改变的机会。

bin_num=i;后添加#100;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50334242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档