我想知道在合成过程中是否有办法访问entities default generic values
或an entities architectures constants
。
这是出于好奇(我想实现类似的东西)。
可能的用例
1)为默认实体生成Testbench:
entity testme is
generic(outputs:integer:=4);
ports(output:out bit_vector(0 to outputs);
end entity;
在测试平台中,我需要生成一个可以连接到输出的信号,而不知道泛型值,没有办法这样做。
2)我想知道实例化Blockram时我使用的实际大小。在FPGA上有Blockram,可以使用固定的ram块,如果需要比一个块中可用的更多ram,则组合多个块。随着技术的发展,可用障碍物的大小会发生变化。因此,我编写了一个具有两个通用参数memory
和technology
的实体,它以尽可能少的Blockrams实现我的记忆。这可能导致内存大于请求。如果我现在有另一个需要内存大小的实体来充分利用它(即循环缓冲区控制器),我必须提供它所分配内存的实际大小。
答案 0 :(得分:0)
你必须从顶部(即从测试平台)向下推动这些东西。检查较低级别的区块是不可能的(虽然我猜你可以带出一个信号然后回到顶部!)
答案 1 :(得分:0)
你可以使用无约束类型,例如:
entity example
port(
i: std_logic_vector;
o: std_logic_vector
);
在测试平台中添加已定义的向量,例如:
....
signal i,o: std_logic_vector(10 downto 0);
begin
uut: example
port map(
i => i,
o => o
);