gpt4 book ai didi

attributes - 将属性放入文件可能吗?

转载 作者:行者123 更新时间:2023-12-05 03:13:12 24 4
gpt4 key购买 nike

我有一大堆由 KEEP 组成的属性,DONT_TOUCH 和 MARK_DEBUG。这主要是我想要的信号列表在我的设计中调试。由于列表占用了太多空间,我想知道是否有可能以某种方式将所有这些属性存储在一个文件并根据全局将它们加载到我的 VHDL 设计中常数-变量/信号/其他什么?

所以它看起来像这样:

entity top is
end top ;
architecture Behavioral of top is
if(DEBUG_ENABLE = "TRUE") then
include "../path/to/file.txt";
end if;
begin
end Behavioral;

文件看起来像这样:

attribute KEEP          : string;
attribute DONT_TOUCH : string;
attribute MARK_DEBUG : string;

attribute KEEP of signal_1 : signal is "TRUE";
attribute KEEP of signal_2 : signal is "TRUE";

attribute DONT_TOUCH of signal_1 : signal is "TRUE";
attribute DONT_TOUCH of signal_2 : signal is "TRUE";

attribute MARK_DEBUG of signal_1 : signal is "TRUE";
attribute MARK_DEBUG of signal_2 : signal is "TRUE";

有人知道吗,这是否可能?

干杯

编辑:我并不是要通过 use-statement 包含库。这主要是为了将其他组件或类型/数组/函数/过程声明包含到您的实体中。我想在架构头中包含一些不是组件或类似组件的东西,这些组件首先没有引用我的实体设计,除非我明确实例化它。我想在我的架构负责人中包含一些描述已声明信号的内容。就我的理解而言,这对于库和包是不可能的。

最佳答案

您可以像这样实现条件属性:

attribute KEEP : BOOLEAN;

constant ENABLE_DEBUG : BOOLEAN := TRUE;
attribute KEEP of mySignal : signal is ENABLE_DEBUG;

条件字符串赋值可以通过一个 item (if-then-else) 函数来解决。

function ite(cond : BOOLEAN; val1 : STRING ; val2 : STRING) return STRING is
begin
if cond then
return val1;
else
return val2;
end if;
end function;

attribute FSM_ENCODING : STRING;
attribute FSM_ENCODING of State : signal is ite(ENABLE_DEBUG, "gray", "auto");

一些属性可以通过依赖于供应商的约束文件加载/分配。

赛灵思 ISE 示例:
例如,可以在原理图、VHDL 和 Verilog 中或通过 Xilinx XCF、NCF 或 UCF 文件分配 KEEP。参见 Xilinx Constraint Guide有关可以在何处(第 21 页)将哪些属性分配给哪个工具(合成图、P&R 等)的详细信息。

NET "myInstance/mySignal" KEEP;

赛灵思 Vivado 示例:
Vivado 支持“DONT_TOUCH”属性,可以通过 XDC 文件进行设置。请参阅 Vivado 的 Using Constraints用户指南了解更多详情。以下示例来自第 56 页:

set_property DONT_TOUCH true [get_cells fsm_reg]

因此请查看综合工具的用户指南和支持的属性/约束列表。

关于attributes - 将属性放入文件可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com