我的问题是,我有一个int_array泛型在VHDL实体中,我想从我的SV tb中设置它。哪一个是正确的SV数据类型呢?我尝试了几种可能性,但没有一个是正确的。 在此先感谢。SystemVerilog数据类型映射到VHDL
回答
这是不可能的完全说。由于VHDL和SystemVerilog之间的接口没有以任何方式指定,因此模拟器供应商可以以他们认为合适的方式实现它。您必须向您的EDA供应商询问您的需求是否可行,如果需要,您需要使用哪种数据类型。
既然你没有提供任何代码,我只好猜测,你不得不使用它作为一个通用之前定义的数组类型(否则它不会编译):
package my_types_pkg is
type my_array_t is array (0 to 2) of integer range 0 to 255;
end package my_types_pkg;
这可能是你的DUT的样子:
entity dut is
generic (
int_array : my_array_t
);
end dut;
architecture dummy of dut is
begin
end dummy;
因为我们不得不有定义一个新的类型,奎斯塔要求我们的类型定义导入到SystemVerilog的世界。这是它获得专有权的地方。该方法Mentor Graphics公司选择这样做是与-mixedsvvh
开关编译VHDL包:
vcom -mixedsvvh dut.vhd
这是至关重要的类型是VHDL包,否则它不会出口中定义。里面的SystemVerilog的文件,你可以定义my_array_t
类型的localparam
和使用,为您的实例:
module top;
localparam my_types_pkg::my_array_t my_array = '{ 1, 2, 3 };
dut #(my_array) dut_inst();
endmodule // top
在上面my_types_pkg
该代码是在VHDL定义的包,这是出口与-mixedsvvh
开关SV。
现在来了可悲的一部分。这对我不起作用。即使类型匹配,vsim
仍然抱怨通用无效。这个答案应该可以帮助你开始,但是(例如,在文档中搜索什么)。也可以尝试将这种情况提供给Mentor Graphics支持。
我在Modelsim 10.1c – Alessandro 2014-12-03 07:52:01
@Alessandro我已经用QuestaSim的一些提示更新了我的答案,但不幸的是我无法让它工作100%。不过,这应该对你有所帮助。 – 2014-12-03 10:09:01
- 1. Sqlite数据类型映射到.net(CLR)框架数据类型
- 2. 将spark数据帧数据类型映射到jdbc数据类型
- 3. 将复杂数据类型映射到模型类(SOAP)
- 4. 将.NET类型映射到SQL Server 200数据类型
- 5. 如何在映射模型到mongoDB时使用JPA映射JSON类型数据
- 6. 使用映射将COM VARIANT类型映射到实际类型
- 7. GraphQL到PostgresQL类型映射
- 8. 映射CSV文件的数据类型
- 9. 映射秀自定义数据类型
- 10. JNA中BSTR数据类型的映射
- 11. 使用NHibernate映射XML数据类型
- 12. 如何映射对象数据类型
- 13. 休眠时数据类型的映射
- 14. DynamoDB映射器映射集合数据类型
- 15. 将Oracle类型映射到Hibernate类型
- 16. 我需要MySQL数据类型映射到.net(CLR)数据类型
- 17. 端口映射到VHDL地面
- 18. VHDL RAM端口映射
- 19. 将JAXB数据映射到域模型
- 20. 将mvvm映射到数据模型
- 21. 将图像模型映射到数据
- 22. 在Rails ActiveRecord迁移中将数据类型映射到MySQL
- 23. ebean映射到BYTEA的数据类型是什么?
- 24. 将PostgreSql货币数据类型映射到ORMLite
- 25. SQL Server到实体框架数据类型映射
- 26. SQLite数据类型如何映射到Java?
- 27. 映射到MySql的Ecto或Elixir数据类型BIGINT
- 28. 如何JSON数据映射到C#模型类
- 29. 将数据类型从C映射到Java
- 30. Oracle数据提供程序到CLR类型映射
提及你使用的模拟器。 – 2014-12-02 21:49:33