【问题标题】:Quartus set optimization options per entity from VHDL sourceQuartus 从 VHDL 源中为每个实体设置优化选项
【发布时间】:2020-08-20 07:26:29
【问题描述】:

我想在 Quartus 中为各个实体设置不同的综合设置。具体来说,我想更改 Auto Resource Sharing 选项。我设法使用分配编辑器更改了单个组件的此设置。这会将以下行添加到 QSF:

set_instance_assignment -name AUTO_RESOURCE_SHARING OFF -to "adder:inst73"

虽然这可行,但很难在项目中维护这些设置。我宁愿在组件的 VHDL 源代码中直接分配此设置。我尝试了以下属性,但似乎没有什么不同。

entity adder is
    -- ...
end entity;

architecture behaviour of adder is
    attribute altera_attribute : string;
    attribute altera_attribute of adder : entity is "-name AUTO_RESOURCE_SHARING OFF";
    attribute altera_attribute of behaviour : architecture is "-name AUTO_RESOURCE_SHARING OFF";
begin
    -- ...
end behaviour;

有人知道是否可以通过 VHDL 属性更改此设置吗?

【问题讨论】:

  • IEEE Std 1076-2008 7.1 “规范......应始终出现在与命名实体的声明出现的同一声明部分中,或者(在规范的情况下与设计单元有关……)直接在与设计单元、子程序主体或块语句的声明相关的声明部分内。”自-1987 年以来。 Altera/Intel 和一些模拟器一样忽略了这个要求(有时有选择地使用命令行选项)。实体声明部分在语义上不同于架构声明部分。
  • @user1155120 我不确定你对那句话的意思。您如何建议我更改示例?我尝试在实体声明中移动实体的属性,但仍然没有应用设置。

标签: vhdl quartus


【解决方案1】:

据此:https://www.intel.com/content/www/us/en/programmable/quartushelp/17.0/hdl/vhdl/vhdl_file_dir_attribute.htm,这可能适用于实体,但不适用于架构:altera_attribute 只能分配给实体、实例、端口和寄存器。

如果应用于任何其他对象,则忽略综合属性。

这个: https://courses.cs.washington.edu/courses/cse467/08au/labs/Resources/Quartus%20II%20IntegratedSynthesis.pdf

明确显示了一个在架构上设置属性的示例,因此它应该是受支持的,尽管上面的文档似乎另有说明。

我的猜测是 - 尽管您在架构上设置了属性 - 您必须明确说明您的意思是哪个实体实例:

attribute altera_attribute : string;
attribute altera_attribute of <architecture name>: architecture is "-name AUTO_RESOURCE_SHARING OFF -to ""<entity_name>:<instance_name>""";

当我这样分配属性时,它至少被接受并列在“分析与综合 -> 源分配”下

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2017-03-10
  • 1970-01-01
相关资源
最近更新 更多