社区
硬件设计
帖子详情
请教一个关于 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
打赏
收藏
请教一个关于 verilog 层次化设计的简单问题 -- 如何调用底层模块?
假设三个模块module top_m, bottom1_m, bottom2_m 分别存在于三个文件top.v, bottom1.v, bottom2.v 请问我要在top_m 模块内调用两个底层模块bottom1_m, bottom2_m 如何实现,如何链接? 实现后是否可综合? 请教各位大侠了!……
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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应该怎么办呢?
数字芯片验证第2部分(扩展补充A)-数字电路和C语言和
Verilog
基
本部分课程中的C语言内容属于朱老师嵌入式Linux核心课程的第四...
Verilog
语言基础篇按需扩展,后面如果有补充录制会加到本课程目录中,如果有需要学习
Verilog
请直接学习本课程的【第3部分:
Verilog
HDL入门】
verilog
层次化
设计
的
简单
问题
-- 如何
调用
底层
模块
原文地址:
层次化
设计
的
简单
问题
-- 如何
调用
底层
模块
" style="text-decoration:none; color:rgb(144,94,64)">
verilog
层次化
设计
的
简单
问题
-- 如何
调用
底层
模块
作者:剑桥石 假设三个
模块
module top_m, bottom1_m, bottom2_m 分别存在于三个文件top.v, bottom1.v, bottom2.v
海思小兵带你快速了解System
Verilog
和Java、C++的异同点,以及对IC做了什么特殊支持
懂软件,就可以对硬件进行“降维打击”吗?
嵌入式工程师有发展前途吗?
嵌入式工程师有发展前途吗? 现在来看,无论是软件开发还是嵌入式等,都是青春饭,但是软件(java,安卓,ios等应用层)的工资都稍高于嵌入式。 但是嵌入式的门槛却非常高。 是否应…显示全部 关注者 1,379 被浏览 1,046,366 已关注写回答 邀请回答 好
问题
22 4 条评论 分享 72个回答 默认排序 zhengzhimin
设计
师 769 人赞同了该回答
一个
在嵌入式行业工作快15年,在华为工作了6年的嵌入式工程师来谈谈看法。 ...
计算机体系结构的一些总结
广义上来说,按照不同层次的授权等级,可把芯片IP分类为指令集、IP核、芯片架构等。如果说指令集是一本“字典”,那么IP核提供了“段落”的写作方式,芯片架构则可被视作是“整篇文章的提纲”。芯片IP企业作为芯片
设计
企业的上游供应商,通常以授权的方式,向后者收取专利费用。而芯片
设计
企业通过购买不同层级的IP授权,可以
设计
出不同自研程度的芯片产品。
硬件设计
6,127
社区成员
11,292
社区内容
发帖
与我相关
我的任务
硬件设计
硬件/嵌入开发 硬件设计
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 硬件设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章