如何在VHDL中调用带参数的verilog模块
难道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
对混合语言的设计支持很好。
不知怎么点到后面去了,回了个旧帖,呵呵~~~