在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7537|回复: 20

[求助] 求助一个程序

[复制链接]
发表于 2011-11-29 10:13:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本人写了一段5—32的编码器,为什么仿真的时候输出出现的是高阻值
代码如下:module decoding(datain,dataout);
    input [4:0] datain;
    output [30:0] dataout;
    reg dataout;
always @(datain)
case(datain)
        5'd0:dataout= 31'b0000000000000000000000000000000;
        5'd1:dataout= 31'b0000000000000000000000000000001;
        5'd2:dataout= 31'b0000000000000000000000000000011;
        5'd3:dataout= 31'b0000000000000000000000000000111;
        5'd4:dataout= 31'b0000000000000000000000000001111;
        5'd5:dataout= 31'b0000000000000000000000000011111;
        5'd6:dataout= 31'b0000000000000000000000000111111;
        5'd7:dataout= 31'b0000000000000000000000001111111;
        5'd8:dataout= 31'b0000000000000000000000011111111;
        5'd9:dataout= 31'b0000000000000000000000111111111;
        5'd10:dataout=31'b0000000000000000000001111111111;
        5'd11:dataout=31'b0000000000000000000011111111111;
        5'd12:dataout=31'b0000000000000000000111111111111;
        5'd13:dataout=31'b0000000000000000001111111111111;
        5'd14:dataout=31'b0000000000000000011111111111111;
        5'd15:dataout=31'b0000000000000000111111111111111;
        5'd16:dataout=31'b0000000000000001111111111111111;
        5'd17:dataout=31'b0000000000000011111111111111111;
        5'd18:dataout=31'b0000000000000111111111111111111;
        5'd19:dataout=31'b0000000000001111111111111111111;
        5'd20:dataout=31'b0000000000011111111111111111111;
        5'd21:dataout=31'b0000000000111111111111111111111;
        5'd22:dataout=31'b0000000001111111111111111111111;
        5'd23:dataout=31'b0000000011111111111111111111111;
        5'd24:dataout=31'b0000000111111111111111111111111;
        5'd25:dataout=31'b0000001111111111111111111111111;
        5'd26:dataout=31'b0000011111111111111111111111111;
        5'd27:dataout=31'b0000111111111111111111111111111;
        5'd28:dataout=31'b0001111111111111111111111111111;
        5'd29:dataout=31'b0011111111111111111111111111111;
        5'd30:dataout=31'b0111111111111111111111111111111;
        5'd31:dataout=31'b1111111111111111111111111111111;
        
endcase
endmodule
发表于 2011-11-29 10:19:16 | 显示全部楼层
testbench的内容呢?波形图呢?什么信号出现了高阻?
 楼主| 发表于 2011-11-29 10:37:41 | 显示全部楼层
回复 2# falloutmx

testbench代码:
    module tst;
    reg [4:0]din;
    wire [30:0]dout;
   
       initial begin
               din= 5'b00000;
           end
        always begin
        #100 din=din+1;
    end
    decode decode(din,dout);
endmodule
图为
未命名.bmp
未命名.bmp
发表于 2011-11-29 10:42:01 | 显示全部楼层
你好,首先确认你想设计一个什么东西。如果是5-32译码器,那么你的程序表达的含义并不是译码器,你可以看一看它的RTL级原理图。译码器的风格应当是类似于独热码,即赋值中只有一位是有效的,即31‘b0000100000000000000000000000000
另外你的编码风格需要注意,要加上begin~end块,并且在case语句中要加default项。
verilog设计硬件不是像软件一样编程,而是先要知道你想要什么。
 楼主| 发表于 2011-11-29 10:50:00 | 显示全部楼层
回复 4# pptwo


    谢了,具体我应该怎么改要实现功能为
未命名1.bmp
发表于 2011-11-29 11:34:45 | 显示全部楼层
找到你的问题了
reg dataout应该是reg [30:0]dataout
发表于 2011-11-29 11:35:42 | 显示全部楼层
教训吧,编程风格很重要
发表于 2011-11-29 11:52:53 | 显示全部楼层
一个是编码风格,另一个是查错方法。其实只要你把所有信号和reg都引出来看,就能发现问题了
发表于 2011-11-29 13:03:51 | 显示全部楼层
个人感觉写得不太好啊
发表于 2011-11-29 13:46:00 | 显示全部楼层
问下各位老师,这样的模块,没有clk,实际工程中有用么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-13 13:57 , Processed in 0.038620 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表