首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于内部模块互联的问题

关于内部模块互联的问题

各位走过路过的高手,小弟有些疑问又需要大家来帮忙了,我现在对于我的这个DDS项目已经把各个模块作的差不多了,现在就是需要在顶层文件中把各个模块连接起来!但是我在例化的时候又不知所措了,有几个问题:
1:我的一个思路是把四个波形数据存入四个基于BRAM的块中,也就是说我生成了四个相同的ROM核,而通过一个2-4译码器的输出来连接每个核的EN端,然后将其输入口与相位累加器的输出(地址)相连,请问这样可以吗?也就是说我的相位累加器的9位地址总线连接了四个都具有9位输入口的ROM。如果可以的话,我该怎么在顶层连接呢?比如说,我的相位累加器的输出口是address_out,而rom核的输入口是address_in,我怎么实现一个与四个相连?.address_out(address_in)?
2:我的这个2-4译码器的输出是decode_out[3:0],怎么如四个ROM核的使能EN段连接呢?也是按照上面的方法?
3:我的移位寄存器的输出是32位,那么我怎样将其不同的位输出给不同的模块?这样可以吗?:.qout[0:1](.mok1);.qout[2:17](.mok2)。。。?
先谢过了!!!

非常感谢!还是这里高手比较多!
谢谢版主们这么的热心,感动中。。。
还是要问版主,我按照你的意思来做,不知道你的意思是不是这样:
twofyima TWO (
.datain(data_out[1:0]),
.dataout[3](en1),
.dataout[2](en2),
.dataout[1](en3),
.dataout[0](en4)
);
我这样做之后总是有一个错误,那就是Expecting(,意思是缺失左括号。我把[]去掉之后出现这样的提示:Duplicate connection to named port dataout,而且我觉得这样也不行,因为它不能确定我到底是哪个和那个相连!
还有一个问题,我将.v和.xco文件放在一起综合,它出现这样的错误:Reference to undefined module sinrom。这个sinrom就是工程中的sinrom.xco,请问版主我该怎么解决?再一次麻烦你了!
而且我按照SyplifyPro上面的帮助信息加了这么一条在sinrom.v文件的相应位置上:/*synthesis syn_black_box =1 */;但是还是不行,郁闷!
谢谢你解释的这么详细,这个问题已经解决了!基本上是你那个思想,我是用原理图实现,转换成HDL时我看到的代码就跟着差不多了!现在有一个问题是我的的一些引脚怎么约束为一般引脚,也就是不用全局GCKIOB,因为我的一些模块有一些时钟输入(单片机模拟的时序),模块的连接名字是clock,这样的话RTL能通过,但是在MAP的时候综合工具好像自动认为它是全局时钟输入端,告诉我这样:Illegal LOC on IPAD symbol "SCK" or BUFGP symbol "SCK_BUFGP"
(output signal=SCK_BUFGP), IPAD-IBUFG should only be LOCed to GCLKIOB site.
我该怎么将它约束为一般管脚?我加IBUF的时候(就是按照他说的作为全局输入)出了错误,现在想约束为一般管脚,还得麻烦你!
哦,非常感谢斑竹,还有,我是使用IP核生成的模块,而且顶层文件时原理图时不能用syplifypro,所以只能在Verilog中改,但是这个.v文件(由系统在生成IP核时产生)能修改吗?
我懂你的意思,但是次顶级就不太懂了,我想干脆把全部换掉,也就是说把系统根据原理图所生成的HDL来换掉原理图,然后在这个HDL中加你上次说得内容!我试试看。(我试了在IP核生成的.v文件中加,没有效果)
当然,我不用替换所有,我只是替换顶层原理图,不好意思,没说清楚,问题层出不穷,先到这里吧,呵呵,等我整理一下再问,免得浪费你的时间。现在功能仿真都不对了,我再看看吧
返回列表