verilog中多次调用一个module实例
verilog中如何多次调用同一个module实例?如:有一个数组实现的存储器modulemem(addr,data,out)存储器将数据data写入addr位置,再将此...
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 展开
有一个数组实现的存储器 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是放在同一个目录下吗
把所有这些文件放在同一个目录下,在top文件里实例化这些module就可以调用了
---------------------------------------------------------
top文件和新建一个module一样的,不过模块里主要是定义连线和实例化子模块,你随便找本verilog的教程就有啦:)
实例化是这样的,greycode是你的module名字,G1是实例化名字(可任意),后面括号里的东东需要跟你定义的端口顺序一致。建议不要采用这种顺序绑定的形式,建议采用端口命名绑定方式
你可以先找本基本的verilog语法书看看,上手很快的
------------------------------------------------------------
你greycode.v的module名字是叫greycode吗
另外,greycode.v是放在同一个目录下吗
展开全部
你写mem m(addr,data,out)就是调用了,程序会一直将addr输入到调用的模块,如果addr改变了,那么out立刻就会变的,不用你单独写进always里,这样也是不行的task是任务,可以在always中调用,而你的men是模块不行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我明白你的意思:
没有你这么理解硬件逻辑的。
Verilog不是C语言,FPGA也不是CPU。
你的思想是串行调用函数思想,不是硬件的模块思想。
具体到你的问题:
Always里面从来不能调用模块。
都是在顶层模块里面连接底层模块。
没有你这么理解硬件逻辑的。
Verilog不是C语言,FPGA也不是CPU。
你的思想是串行调用函数思想,不是硬件的模块思想。
具体到你的问题:
Always里面从来不能调用模块。
都是在顶层模块里面连接底层模块。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实例模块都是要给一个名字的,但你可以给和模块相同的名字
一般不推荐这么做,因为有些模块会例化多次,通常例化的名字是根据模块名拓展的
例如一个模块叫
clk_gen
例化时可以
clk_gen
clk_gen_inst
一般不推荐这么做,因为有些模块会例化多次,通常例化的名字是根据模块名拓展的
例如一个模块叫
clk_gen
例化时可以
clk_gen
clk_gen_inst
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询