module testmodule(Writedata,Writeregister,clk);
input clk;
input Writedata;
output reg Writeregister;
always @(clk)
begin
Writeregister<=Writedata;
end
endmodule
module newtest(clockk,dataa);
input clockk;
input dataa;
reg registerr;
testmodule tss(dataa,registerr,clockk);
endmodule
代码如上
使用软件为xilinx
testmodule可以正常运行,但是在用newtest调用testmodule的时候就会出错。
错误信息如下:
ERROR:HDLCompiler:329 - "testmodule.v" Line 35. Concurrent assignment to a non-net registerr is not permitted
WARNING:HDLCompiler:918 - "testbe.vhw" Line 46. Size mismatch in mixed language port association, verilog port clockk
ERROR:Simulator:777 - Static elaboration of top level VHDL design unit testbe in library work failed
经过测试,只有把第二个module里的reg registerr变成wire registerr才能运行。但是wire就无法实现想要的功能
求解应该如何调用testmodule
verilog 编译错误是设置错误造成的,解决方法如下:
1、首先打开软件快捷方式。
2、新建工程File -->New Project Wizard...。
3、设置工程路径,如“F:/quartusii_prct/test”,工程名“test”,点击"Nest",确定“Yes”--再点击“Next”。
4、选择好FPGA系列,直接在所有可见的器件选择;选择完毕,点击“Next”-->“Next”-->"Finish",新建工程完成
5、进入工程,新建verilog文件,点击“File”-->“New”-->"Verilog HDL File"-->"OK"。
6、接下来可以编译,点击三角按钮如图,可以观察到编译结果。