关于verilog里的module调用问题,例如下,怎么写才能使下例成功运行,谢谢先

`timescale 1ns/100ps
module testbench ();

reg a;
//reg b;
wire c;

trrry DUT (
.a(a),
//.b(b),
.c(c)
);

initial begin
a = 1;

end

endmodule

module trrry(a, c);
input a,
reg b,
output c,

ad ad(.a, .b);

bc bc(.b, .c);

endmodule

module ad(a, b);
input wire a;
output reg b;

always @ (*)
b = a;

endmodule

module bc(b, c);
input wire b;
output reg c;

always @ (*)
c = b;

endmodule

第1个回答  2015-04-05
`timescale 1ns/100ps
module testbench ();

reg a;
//reg b;
wire c;

trrry DUT (
.a(a),
//.b(b),
.c(c)
);

initial begin
a = 1;

end

endmodule

module trrry(a, c);
input a;
wire b;
output c;

ad ad(.a, .b);

bc bc(.b, .c);

endmodule

module ad(a, b);
input wire a;
output b;

always @ (*)
b = a;

endmodule

module bc(b, c);
input wire b;
output c;

always @ (*)
c = b;

endmodule

我改了一些,你试试本回答被提问者和网友采纳

verilog的module中怎样循环调用另外几个module?
endmodule 上述所有放主程序topmod.v里即可。子程序也可以拆分出去,分别命名为submod1.v, submod2.v。

verilog中,在module里想调用别的module时出现问题说Array x0 Needs a...
第一种写法就可以,你可以把你报错的信息贴过来,具体情况具体分析,楼上的网友是一种错误!就是你没有申明,但是我想你不会连申明都没有做,那你就不用再继续了,继续回去看语法书吧!你可能的原因是你的输出设置的是reg型,你调用的时候就会报错,其实可以这样说,你的top层是一个接口层,top里面...

verilog中如何调用另一个module里面的task?include有用吗?我试了没成 ...
用<module>.<task>的方式,module就是包含task的模块名,task就是任务名。例如你的模块名是comp,里面有个任务叫sum(a,b,c);在当前的模块下先例化comp my_comp();使用任务就用my_comp.sum(a,b,c);

请各位高手指点迷津!!小弟初学Verilog,想学一学模块调用,自编了一段小...
1、进程里面不能调用模块,只能调用函数或者任务,然而在clk模块里含有always等,所以也无法写成任务或者函数;2、在try这个模块里,q如果定义成reg型的,就不能用作例化模块的信号(clk CK2(.clk_in(clk_in),.q(q)); ),因为主模块的接口信号必须是wire型的,但如果改成wire型的话非阻塞赋值语句...

看一下verilog中 模块实例化问题
这个例化调用放在always语句块的外面!不能这样直接调用的!你要有电路的思想,一个例化调用就相当于一个电路,你用if语句,有时候要综合出这个电路有时候又不要综合出这个电路了,这个不是让人家软件为难吗!你要这样,综合出来时必须的,至于用不用,要看你有没有信号给它,它的输出有没有引回来!

一个verilog里在case中赋值的问题, 求大家帮帮助, 如下例, 谢谢先.
当然不会变化,你的S信号位宽是1bit,它永远不可能等于2或者3,所以不可能变化,位宽加大

verilog里,为什么我定义一个input也会报错. 我是新学, 例如下,谢谢.
输入变量不能直接定义为reg行,你如果需要寄存这个变量,可以这样写 module ViterbiDecoder (v, r); input [19:0] v; output reg [1:0] r; reg [19:0] v_reg always @(v) v_reg <= v; endmodule

【急急急】Verilog的一些基本问题
1,是的,input,output都是默认为wire的。对于output,如果想声明为reg必须单独声明,想用wire的话是可以不声明wire的。2,一个模块使用另一个模块输入或输出信号,可以直接实例化,不用写include。但如果被使用的信号不是输入或输出而是内部信号的话,就要用层次调用 比如你有一个TB模块,下面有A,B两...

Verilog根据不同条件调用不同module
不可以这样调用,module是静态的,不能在仿真的时候动态调用的。你可以同时例化两个模块,然后根据选择信号,决定最后的输出使用哪个模块的输出

verilog请问在顶层模块里面如何实现底层模块之间的参数传递?谢谢。
在Verilog中,调用底层模块的语法结构为:底层模块名 实例名 参数定义。比如在top_m里,如果已经全部源文件加到了同一个工程里,那么可以直接 bottom1_m bottom1_m(A,B,C)注意 A,B,C这些参数的顺序,要和底层定义的是一致的。名字可以不一致。如果没有加到同一个工程,可以使用 'include "bottom...

相似回答