微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > Verilog functions

Verilog functions

时间:10-02 整理:3721RD 点击:
今天练习了verilog的函数,当进行testbench测试时,输出总是显示第一位,其他位为高阻态,仔细检查了功能模块与testbench对应的端口位数相同,仿真的时候总是提醒位数不匹配,代码如下,求大神指导:module led_data(in_data,seg);
input[1:0] in_data;
output [1:0] seg;
reg seg;
always@(in_data)
begin
seg=display(in_data);

end

function[1:0] display;
inputdata;
case(data)
'd0:
display=2'b00;

'd1:
display=2'b01;
'd2:
display=2'b10;
'd3:
display=2'b11;

default:display=2'bxx;
endcase
endfunction
endmodule



`timescale 10ns/1ns
module led_data_tb();
reg[1:0] in_data_test;
wire[1:0] seg_test;
initial
begin

#100
in_data_test=0;
#100
in_data_test=1;
#100
in_data_test=2;
#100
in_data_test=3;

#1000 $stop;
end

led_data led_data1(.in_data(in_data_test),.seg(seg_test));
endmodule

inputdata;

reg [1:0] seg;
^^^

output [1:0] seg;
reg seg;
这两句冲突了,仿真器忽略了第一次声明,用了1bit的reg。

嗯,明白了,谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top