VHDL读取通用默认值

时间:2013-04-02 16:38:10

标签: vhdl

我想知道在合成过程中是否有办法访问entities default generic valuesan 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,则组合多个块。随着技术的发展,可用障碍物的大小会发生变化。因此,我编写了一个具有两个通用参数memorytechnology的实体,它以尽可能少的Blockrams实现我的记忆。这可能导致内存大于请求。如果我现在有另一个需要内存大小的实体来充分利用它(即循环缓冲区控制器),我必须提供它所分配内存的实际大小。

2 个答案:

答案 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
   );