请教一个关于 verilog 层次化设计的简单问题 -- 如何调用底层模块?

HAWK_G 2007-10-15 12:02:07
假设三个模块module top_m, bottom1_m, bottom2_m 分别存在于三个文件top.v, bottom1.v, bottom2.v 请问我要在top_m 模块内调用两个底层模块bottom1_m, bottom2_m 如何实现,如何链接? 实现后是否可综合?

请教各位大侠了!……
...全文
2844 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
清钟沁桐 2007-10-16
  • 打赏
  • 举报
回复
`timescale 1ns/100ps
module test();

parameter size=11;

reg[size:0] d;
reg clk;

wire[size:0] q;


always #5 clk=~clk;//100 is so long time

initial
begin
clk=0;
#10 d=0;
#10 d=1;
#10 d=2;
#10 d=3;
#10 d=4;
#10 $stop;
end
reg12 t(.d(d),.clk(clk),.q(q)); // 位置映射
endmodule
以上示例代码
ningxin 2007-10-15
  • 打赏
  • 举报
回复
在Verilog中,调用底层模块的语法结构为:
   底层模块名 实例名 参数定义
比如在top_m里,如果已经全部源文件加到了同一个工程里,那么可以直接

bottom1_m bottom1_m(A,B,C)
注意 A,B,C这些参数的顺序,要和底层定义的是一致的。名字可以不一致。
如果没有加到同一个工程,可以使用
'include "bottom1.v"

可不可以综合,这个得看你代码怎么写的,和层次无关。
HAWK_G 2007-10-15
  • 打赏
  • 举报
回复
嗯 多谢指导 虚心接受 不过我的程序已经调通了 多谢多谢!!!
加分……
ningxin 2007-10-15
  • 打赏
  • 举报
回复
原来是使用UART啊。你连什么时候需要收数据,什么时候需要发数据都没弄明白,呵呵。
你的子模块 uart_rec和uart_send模块我不知道具体的实现,只能告诉你:
第一,模块实例化以后,相当于一个实际的电路,是物理上存在的实体,并非函数。所以,不存在always调用这一说。如果你的子模块设计得当,那么,只要输入的信号满足你的条件,模块就有相应输出;
第二,你要看子模块的相关文档,如果是自己写的,要搞清楚UART时序;
第三,不要把接收寄存器(data)和发送寄存器用同一个,而且,17位的寄存器有点怪;
第四,你可以在代码里用always来完成判断什么时候该去从模块中读取数据(或者写入),什么时候复位等等。always后面的条件,可能是9个时钟(看你的UART设置),又或者是data被赋值或清空,这个要看子模块如何设计的;
第五,网络上有verilog或者VHDL实现UART的代码,google一下很容易找到,可以用来做参考,学习的效果应该比在这里问问题要强一点,也要连续一些。
HAWK_G 2007-10-15
  • 打赏
  • 举报
回复
module uart_top(clk, nreset, rec, send, data);
input clk;
input nreset;
input rec;
output send;


parameter len = 16;
output [len:0]data;

uart_rec rec1( //底层模块1
.rec(rec),
.clk(clk),
.nreset(nreset),
.data(data)
);

uart_send send1(//底层模块2
.data(data),
.clk(clk),
.nreset(nreset),
.send(send)
);

endmodule

我就想 无条件循环调用uart_rec 和 uart_send
ningxin 2007-10-15
  • 打赏
  • 举报
回复
你得先把逻辑给出来,最好把你的代码贴出来。
always重复调用是有条件的,比如某个信号发生变化了。。。
抓住这个逻辑条件,就可以实现了。
HAWK_G 2007-10-15
  • 打赏
  • 举报
回复
链接没问题了,但是我发现底层模块的调用是不能用在顶层模块的always语句后面的,那我想在顶层模块中重复调用底层module应该怎么办呢?

6,127

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧