22

一些設計者可互換地使用術語屬性和約束。 其餘設計師給他們不一樣的意義。 此外,使用某些語言結構的術語類似可是意義不一樣網絡

 

Xilinx®使用術語屬性和約束以下定義。架構

屬性app

屬性是與設備體系結構原語組件相關聯的屬性,其一般影響實例化的組件功能或實現。編輯器

屬性經過如下方式傳遞:ide

•通用地圖(VHDL)函數

•實例化基元組件時傳遞的Defparams或內聯參數(Verilog的)工具

全部屬性都在Xilinx庫指南中做爲原始組件描述的一部分進行了描述。性能

CPLD Fitter優化

The following constraints apply to CPLD devices:ui

BUFG (CPLD)

Collapse (COLLAPSE)

CoolCLOCK (COOL_CLK)

Data Gate (DATA_GATE)

Fast (FAST)

Input Registers (INREG)

Input Output Standard (IOSTANDARD)

Keep (KEEP)

Keeper (KEEPER)

Location (LOC)

Maximum Product Terms (MAXPT)

No Reduce (NOREDUCE)

Offset In (OFFSET IN)

Offset Out (OFFSET OUT)

Open Drain (OPEN_DRAIN)

Period (PERIOD)

Prohibit (PROHIBIT)

Pullup (PULLUP)

Power Mode (PWR_MODE)

Registers (REG)

Schmitt Trigger (SCHMITT_TRIGGER)

Slow (SLOW)

Timing Group (TIMEGRP)

Timing Specifications (TIMESPEC)

Timing Name (TNM)

Timing Specification Identifier (TSidentifier)

VREF

Wire And (WIREAND)

邏輯約束

邏輯約束是在映射或擬合以前附加到元素的約束。

•邏輯約束有助於使設計性能適應預期的最壞狀況。

•當您執行如下操做時,邏輯約束將轉換爲物理約束:

1.選擇特定的Xilinx®架構,以及

2.放置和佈線,或適合設計。

•您能夠使用輸入設計中的屬性附加邏輯約束,這些屬性將寫入網表約束文件(NCF)或NGC網表或用戶

約束文件(UCF)。

•三類邏輯約束是:

 - 放置限制

 - 相對位置約束

對於FPGA器件,相對位置約束:

¨將邏輯元素分組爲離散集。

¨容許您定義集合中任何元素相對於的位置

集合中的其餘元素,不管最終放置在總體設計中。

 - 時間限制

時序約束容許您指定容許的最大延遲或傾斜

在任何給定的路徑或網絡上。

物理約束

注意本節僅適用於FPGA器件。

物理約束是附加到物理設計中的元素的約束。

映射(mapping)

•物理設計是映射後的設計。

•映射設計時,(1)網表和(2)用戶約束文件(UCF)中的邏輯約束將轉換爲適用於特定的物理約束

建築。

•物理約束在映射期間建立的物理約束文件(PCF)中定義。

物理約束文件(PCF)

物理約束文件(PCF):

•是映射器生成的文件。

•包含兩個部分:

 - 原理圖

包含基於網表和UCF中的邏輯約束的物理約束。

 - 用戶

¨可用於添加任何物理約束。

¨Xilinx®建議您將用戶生成的約束放在UCF中,而不是放在NCF或PCF中。

Mapping Directives

Mapping directives instruct the mapper to perform specific operations.

Mapping Directives(Mapping指令指示映射器執行特定操做。製圖指令)

• Area Group

• BEL

• Block Name

• DCI Value

• Drive

• Fast

• Hierarchical Block Name

• Hierarchical Lookup Table Name

• HU Set

• IOB

• Input Output Block Delay

• Input Output Standard

• Keep

• Keeper

• Lookup Table Name

• Map

• No Delay

• Pulldown

• Pullup

• Relative Location

• Relative Location Origin

• Relative Location Range

• Save Net Flag

• Slew

• U Set

• Use Relative Location

• XBLKNM

放置限制(Placement Constraints)

本節描述FPGA設計中每種邏輯元件的放置約束,包括:

• Flip-Flop

• 只讀存儲器

• 內存

•BUFT

•CLB

•IOB

•I / O.

•邊緣解碼器(Edge decoder)

•全局緩衝區(Global buffer)

各個邏輯門,如AND或OR門:

•在讀取約束以前映射到CLB函數生成器。

•不能約束。

指定約束

大多數約束能夠在:

•HDL源代碼,或

•用戶約束文件(UCF)

在約束文件中,每一個放置約束做用於一個或多個符號。 設計中的每一個符號都帶有惟一的名稱,該名稱在輸入文件中定義。 在約束語句中使用此名稱來標識符號。

區分大小寫

•UCF和NCF區分大小寫。

•標識符名稱(對象名稱,例如網絡名稱)必須與案例徹底匹配

源設計網表中存在的名稱。

•Xilinx®關鍵字(例如LOC,PROHIBIT,RLOC和BLKNM)能夠所有大寫或所有小寫輸入。 不容許混合案例。

網表映射和放置約束

如下約束控制網表中符號的映射和放置:

•BLKNM

•HBLKNM

•HLUTNM

•LOC

•LUTNM

•禁止

•RLOC

•RLOC_ORIGIN

•RLOC_RANGE

•XBLKNM

相對位置(RLOC)約束

RLOC約束將邏輯元素分組爲離散集。

•您能夠定義集合中任何元素相對於其餘元素的位置

在集合中,不管最終放置在總體設計中。

•例如,若是RLOC約束應用於按列組織的一組八個觸發器,則映射器將保持列順序並將整組觸發器做爲單個單元移動。

•相比之下,絕對LOC約束將設計元素限制在FPGA裸片上的特定位置,與其餘設計元素無關。

Placement Constraints

• AREA_GROUP

• BEL

• LOC

• LOCATE

• Prohibit

• RLOC

• RLOC_ORIGIN

• RLOC_RANGE

• USE_RLOC

路由指令

路由指令指示PAR執行特定操做。

•AREA_GROUP

•CONFIG_MODE

•LOCK_PINS

綜合約束

綜合約束指導特定設計或硬件描述語言(HDL)代碼的綜合工具優化技術。 約束要麼嵌入在源代碼中,要麼包含在單獨的綜合約束文件中。

如下約束是綜合約束:

• 從到

•IOB

• 保持

•MAP

•MARK_DEBUG

•OFFSET IN

•OFFSET OUT

•期間

•TIG

•TNM

•TNM_NET

綜合約束文檔

XST綜合約束記錄在:

•適用於Virtex-4,Virtex-5,Spartan-3和更新CPLD器件的XST用戶指南(UG627)

•適用於Virtex-6,Spartan-6和7系列器件的XST用戶指南(UG687)

軟件供應商的文檔中記錄了其餘綜合約束。

時間限制

Xilinx®軟件使您可以使用全局或路徑特定的時序約束來指定精確的時序要求。

定時討論了定義約束的推薦方法

關閉用戶指南(UG612)。

如下是時序約束和相關的分組約束:

• Asynchronous Register

• Disable

• Enable

• From Thru To

• From To

• Maximum Skew

• Offset In

• Offset Out

• Period

• Priority

• System Jitter

• Temperature

• Timing Ignore

• Timing Group

• Timing Specifications

• Timing Name

• Timing Name Net

• Timing Point Synchronization

• Timing Thru Points

• Timing Specification Identifier

• Voltage 

Configuration Constraints

• Configuration Mode

• DCI Cascade

• MCB Performance

• Stepping

• Post CRC

• Post CRC Action

• Post CRC Frequency

• Post CRC INIT Flag

• VCCAUX

• VREF

• Internal Vref Bank

Xilinx約束的進入策略

下表顯示了ISE®DesignSuite用於輸入給定約束類型的功能。

下表顯示了ISE®DesignSuite用於輸入給定約束類型的功能。

原理圖設計
遵循如下規則,將Xilinx®約束做爲符號或示意圖中的屬性添加:
•若是約束適用於網絡,請將其做爲屬性添加到網絡中。
•若是約束適用於實例,請將其做爲屬性添加到實例。
•您沒法添加PART和Prohibit等全局約束。
•您不能添加附加到時序規範或時序組的任什麼時候序規範。
•以所有大寫或所有小寫形式輸入屬性名稱和值。 不容許混合大寫和小寫。
有關建立,修改和顯示屬性的更多信息,請參閱「原理圖和符號編輯器幫助」。
能夠在原理圖中輸入的任何約束的語法在該約束的部分中描述。 有關正確的原理圖語法的示例,請參閱BEL中的原理圖語法示例。

VHDL屬性
在VHDL代碼中,能夠使用VHDL屬性指定約束。 在使用它以前,必須使用如下語法聲明約束:
attribute attribute_name:string;

屬性RLOC:string;

能夠在實體或體系結構中聲明屬性。
•若是在實體中聲明屬性,則它在實體和體系結構主體中均可見。
•若是在體系結構中聲明屬性,則不能在實體聲明中使用它。

聲明屬性後,您能夠指定VHDL屬性,以下所示:

接受的attribute_values取決於屬性類型。
例一
屬性RLOC:string;
u123的屬性RLOC:label是「R11C1.S0」;
示例二屬性bufg:string;
my_clock的屬性bufg:signal是「clk」;
對於Xilinx®,最多見的對象是信號,實體和標籤。 標籤描述組件的實例。
注意必須在輸出端口上使用signal屬性。
VHDL不區分大小寫。
在某些狀況下,現有的Xilinx約束不能用於屬性,由於它們也是VHDL關鍵字。 要避免此命名衝突,請使用約束別名。 每一個Xilinx約束都有本身的別名。 別名是預先設置的原始約束名稱
前綴XIL_例如,RANGE約束不能直接在屬性中使用。 請改用XIL_RANGE。

Verilog屬性
Verilog屬性以星號(*)爲界,並使用如下語法:
(* attribute_name = attribute_value *)
哪裏
•attribute在其引用的信號,模塊或實例聲明以前。
•attribute_value是一個字符串。 不容許使用整數或標量值。
•attribute_value介於引號之間。
•默認值爲1.(* attribute_name *)與(* attribute_name =「1」*)相同。
Verilog屬性語法示例一
(* clock_buffer =「IBUFG」*)輸入CLK;
Verilog屬性語法示例二
(* INIT =「0000」*)reg [3:0] d_out;
Verilog屬性語法示例三
老是@(current_state或重置)
begin(* parallel_case *)(* full_case *)
case(current_state)

Verilog屬性語法示例四(* mult_style =「pipe_lut」*)MULT my_mult(a,b,c);Verilog限制不支持Verilog屬性:•信號聲明•聲明•端口鏈接•表達式運算符Verilog Meta評論也能夠使用元註釋在Verilog代碼中指定約束。 Verilogformat是首選語法,但仍支持元註釋樣式。 使用語法以下://合成屬性AttributeName [of] ObjectName [是] AttributeValueVerilog Meta評論示例// u123的合成屬性RLOC是R11C1.S0//合成屬性HU_SET u1 MY_SET// my_clock的合成屬性bufg是「clk」約束

相關文章
相關標籤/搜索