verilog中如何多次调用同一个module实例?如:有一个数组实现的存储器modulemem(addr,data,out)存储器将数据data写入addr位置,再将此数据作为out输出现在在另一个module中要每个...
verilog中如何多次调用同一个module实例?如:
有一个数组实现的存储器 module mem(addr,data,out) 存储器将数据data写入addr位置,再将此数据作为out输出
现在在另一个module中要每个clk上升沿修改mem中的数据,那么
mem m(addr,data,out);//初始化mem实例和里面的数据
always@(posedge clk)
begin
//code
end
在code中如何再次调用之前创建的mem实例(由于是存储器,不可能每次都创建一个新的,否则之前的数据都没了)
我写m(addr,data,out); Quartz II说task m is not used as a task
分开放,这是verilog coding style的一种良好习惯,每个文件里面只包含一个独立的module
把所有这些文件放在同一个目录下,在top文件里实例化这些module就可以调用了
---------------------------------------------------------
top文件和新建一个module一样的,不过模块里主要是定义连线和实例化子模块,你随便找本verilog的教程就有啦:)
实例化是这样的,greycode是你的module名字,G1是实例化名字(可任意),后面括号里的东东需要跟你定义的端口顺序一致。建议不要采用这种顺序绑定的形式,建议采用端口命名绑定方式
你可以先找本基本的verilog语法书看看,上手很快的
------------------------------------------------------------
你greycode.v的module名字是叫greycode吗
另外,greycode.v是放在同一个目录下吗