微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 如何在VHDL中调用带参数的verilog模块

如何在VHDL中调用带参数的verilog模块

时间:12-12 整理:3721RD 点击:
rt,最近碰到个头疼的问题,VHDL是顶层文件,需要在其中调用verilog module,而且实现参数传递。直接调用试了下没问题,但参数传递没想到合适的办法。在VHDL中用generic,verilog中用parameter,且在调用之前要先声明,parameter应该加在哪个位置呢?不知这个问题怎么解决,请教各位大牛。

难道parameter不是写在verilog module里面吗?

现在希望通过调用覆盖module中的parameter。譬如说在verilog中调用VHDL模块可用
entity_name #() instance_name (port list);
其中#后面的括号里就是原来entity中generic的内容,通过调用可以覆盖原来的值。
现在遇到的问题是在VHDL中调用verilog模块实现对等的功能。

类似VHDL的Generic语句,Verilog也可以在例化时传递参数
例子见http://sutherland-hdl.com/online_verilog_ref_guide/vlog_ref_top.html
#8.0%20Module%20Instances
传递的参数是子模块中定义的parameter。
传递的方法:
1、module_name #( parameter1, parameter2) inst_name( port_map);
2、module_name #( .parameter_name(para_value), .parameter_name(para_value
)) inst_name (port map);
用#方法和port map的写法差不多
3、defparam
defparam heirarchy_path.parameter_name = value;
这种方法与例化分开,参数需要写绝对路径来指定。
这么多种方法您都试过么?

我的理解是你回答的跟他问的不是一回事,他是要在VHDL中例化verilog,且要实现参数传递,你说的这个他帖子里也说了。

我靠,这原来不叫例化啊!
那我回得叫啥啊?
我好想只学了这么一种例化+参数传递的方式啊

你说没错,但是都是verilog里实例参数的方式。他的问题是在vhdl怎么实例化参数。其实答案很简单,按照vhdl的方式就可以了,呵呵

你的意思是把verilog中的parameter放到entity的generic中?MS不行吧?

问题解决了 谢谢大家 也谢谢LeuSe提供的帮助

这种活工具干最合适了,半分钟搞定。http://www.veriloghdl.org/download.html
对混合语言的设计支持很好。

不知怎么点到后面去了,回了个旧帖,呵呵~~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top