EETOP 创芯网论坛 (原名:电子顶级开发网)
标题:
大家遇到过这样的问题吗?vhdl 例化出问题了,但是明明。。。
[打印本页]
作者:
qiurijian
时间:
2017-10-8 09:50
标题:
大家遇到过这样的问题吗?vhdl 例化出问题了,但是明明。。。
fifo_tx_gt0 : fifo_generator_0
port map(
din => di_txfifo,
rd_clk => txusrclk,
rd_en => re_txfifo_gt0,
rst => not gt0_txfsmresetdone_i,
valid => valid_txfifo_gt0);
.......
其中红色部分系统(vivado)画了个下划线说:actual for formal port rst is neighter a static name or gloablly static expression
去掉not之后红线消失。所以问一下到底是怎么回事?
作者:
qiurijian
时间:
2017-10-8 10:57
http://china.xilinx.com/support/answers/62513.html
搜索了半天了,没有解决方法。简单的解释一下上面的代码,就是说从一个例化模块的输出端口引出一条线,这条线给到两个输入口,这两个输入口属于不同的模块,但其中的一个输入口需要的是这条线的非信号,也就是需要加上一个not,因此出错了,去掉not就正确,真是蛋疼死了,都没法改,一直用verilog,今天给看的程序是vhdl,真是泪,真矫情,应该怎么改?
作者:
qiurijian
时间:
2017-10-8 10:59
我服,我真的服,这个论坛发个贴,就要审核,就要审核,真是无语了,真是无语了。
作者:
qiurijian
时间:
2017-10-8 11:05
http://china.xilinx.com/support/answers/62513.html
解释一下:
( , 下载次数: 105 )
上传
点击文件名下载附件
就是上图的例化方式,贴的代码是三号模块。去掉非门(not)就是对的,但是加上就是错的,但是not是功能必须的,所以这个经典的问题应该怎么解决?
作者:
qiurijian
时间:
2017-10-8 11:06
审核,审核,我也是醉了。
作者:
qiurijian
时间:
2017-10-8 11:06
多输入几个字就审核,这到底是为什么?
作者:
qiurijian
时间:
2017-10-8 11:56
还没有审核完?
作者:
qiurijian
时间:
2017-10-8 12:04
( , 下载次数: 98 )
上传
点击文件名下载附件
[img][/img]
作者:
qiurijian
时间:
2017-10-8 12:05
( , 下载次数: 106 )
上传
点击文件名下载附件
[img][/img]
作者:
qiurijian
时间:
2017-10-8 17:30
审核要花至少一天的时间,真是气死我了,好气。问题解决了,不能加非门,我的方法是把非门写成一个模块,然后例化,这是我想的办法,还是可行的,就是感觉多此一举。
作者:
qiurijian
时间:
2017-10-8 17:32
我上午发的帖子,就在这个里头,然后有贴图,然后过了半个月,论坛还在进行审核,这是为什么,给我个管理员的联系方式,我问一下到底是怎么回事。
作者:
江山无限辉
时间:
2017-10-9 11:32
not后面应该加个下横线才可以呀
作者:
qiurijian
时间:
2017-10-9 14:51
回复
12#
江山无限辉
首先谢谢您的回答,看到您的名字就感到很亲切,感觉就是老朋友了。
not后面加下划线,我不太明白您的意思,在这里not是起到一个非门的作用,就是要达到图示的效果。加个下横线就不是非门了吧。
作者:
gaurson
时间:
2017-10-9 15:18
呵呵,首先,老兄还需要修身养性一下,论坛本来就不是及时聊天的工具,审核也是不得已采取的措施,管理员后面也有很多双眼睛盯着,我觉得不是管理员能够做主的,稍安勿躁;其次,针对问题,老兄自己翻一下VHDL的语法书,也许十分钟就解决了。还是需要耐心,不可急躁呀,作为工程师。
作者:
qiurijian
时间:
2017-10-9 21:57
回复
14#
gaurson
是呀,太暴躁了,压力太大。
作者:
yuanhang54
时间:
2017-10-10 13:44
审核很费时间
作者:
qiurijian
时间:
2017-10-10 15:42
回复
16#
yuanhang54
恩,一般很少会有人在技术论坛上进行捣乱的。。
有一个小窍门,只要输入的字少,就容易通过,就不用审核,我老是发图,所以老是审核我。
作者:
qiurijian
时间:
2017-10-10 17:19
这个问题已经解决了。提问的状态可以改成已解决吗?
为了回报大家的关注:我把这个问题重新理一遍,并阐述我的思考。
大家都看了我的贴图了。
模块1的输出扇出两个信号,假设模块1的输出端口为
ut_1;
模块2的输入端口为:in_2;
模块3的输入端口为:in_3;
要实现我的图示的连线,例化如下:
wire out_1_line;
module 1(
.out_1(out_1_line)
);
module 2(
.in_2(out_1_line)
);
module 2(
.in_3(!out_1_line)
);
在verilog中这么做是没有问题的,相信大家都这样写过。vhdl的话,老版本的vivado也可以这样写,但是新版本是不可以这样的。module 2的写法是错误的,新版本怎么退步了,不简洁了(vhdl是错误的,verilog不清楚能不能这样写),这是我的愤怒。但是仔细一看,新版本只是更严谨了。
因为非门是组合逻辑,时序电路中应该避免。
解决的方法就是把图示的非门也写成一个模块,我的建议是非门的动作也放在时钟之下。但是这样,非门也写成一个模块,真是复杂了呢。写到这里我又想听听大家的理解。
欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/)
Powered by Discuz! X3.5