📄 synattr.vhd
字号:
-- $Header: /syn/cvs/rcs/compilers/vhdl/vhd/synattr.vhd,v 1.90.2.14.2.1 2003/07/08 18:06:01 akapoor Exp $
-----------------------------------------------------------------------------
-- --
-- Copyright (c) 1997-2003 by Synplicity, Inc. All rights reserved. --
-- --
-- This source file may be used and distributed without restriction --
-- provided that this copyright statement is not removed from the file --
-- and that any derivative work contains this copyright notice. --
-- --
-- --
-- Library name: synplify --
-- Package name: attributes --
-- --
-- Description: This package contains declarations for synplify --
-- attributes --
-- --
-- --
-- --
-----------------------------------------------------------------------------
--
-- Definitions used for Scope Integration ----------------
--{tcl set actel "act* 40* 42* 32* 54* ex* ax*"}
--{tcl set altera "max* flex* acex*"}
--{tcl set altera_retiming "flex* acex* apex* mercury* excalibur*"}
--{tcl set apex "apex20k apexii excalibur*"}
--{tcl set apexe "apex20kc apex20ke mercury* stratix* cyclone"}
--{tcl set apex20k "apex20k*"}
--{tcl set lattice "pLSI*"}
--{tcl set mach "mach* isp* gal*"}
--{tcl set quicklogic "pasic* quick* eclipse*"}
--{tcl set lucent "orca*"}
--{tcl set xilinx "xc* vir* spart*"}
--{tcl set virtex "vir* spartan*"}
--{tcl set virtex2 "virtex2*"}
--{tcl set stratix "stratix*"}
--{tcl set triscend "triscend*" }
--{tcl set asic "asic*" }
--{tcl set atmel "fpslic" }
--{tcl set cp_only "apex20k* excalibur* mercury apexii stratix* cyclone spartan* virtex*" }
-------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
package attributes is
-- Compiler attributes
-- {family *}
attribute phys_pin_loc : string; -- pin loacatin {objtype port} {desc Placement constarint for pin or pad} {physattr 1}
attribute phys_pin_hslots : string; -- pin loacatin {objtype module} {desc Set of slots or placable IO locations} {physattr 1}
attribute phys_pin_vslots : string; -- pin loacatin {objtype module} {desc Set of slots or placable IO locations} {physattr 1}
attribute phys_halo : string; -- pin loacatin {objtype module cell } {desc Halo to be used for the macros} {physattr 1}
-- syn_enum_encoding specifies the encoding for an enumeration type
attribute syn_enum_encoding : string; -- "onehot", "sequential", "gray" {noscope}
-- syn_encoding specifies the encoding for a state register
attribute syn_encoding : string; -- "onehot", "sequential", "gray", "safe" {objtype fsm} {desc FSM encoding (onehot, sequential, gray, safe)} {default gray} {enum onehot sequential gray safe safe,onehot safe,sequential safe,gray default}
-- syn_allow_retiming specifies if the register can be moved for retiming purpose
-- {family $altera_retiming $virtex $virtex2 $stratix }
attribute syn_allow_retiming : boolean; -- {objtype register} {desc Controls retiming of registers} {default 0}
attribute syn_state_machine : boolean; -- marks reg for SM extraction {noscope}
--
-- syn_preserve prevents optimization across registers it is
-- applied to. syn_preserve on a module/arch is applied to all
-- registers in the module/arch. syn_preserve on a register
-- will preserve redundant copies.
-- Can also be used to preserve redundant copies of instantiated
-- combinational cells.
attribute syn_preserve : boolean; -- {noscope}
-- syn_keep is used on signals keep the signal through optimization
-- so that timing constraints can be placed on the signal later.
-- The timing constraints can be multi-cycle path and clock.
attribute syn_keep : boolean; -- {noscope}
attribute syn_sharing : string; -- "off" or "on" {noscope}
-- syn_evaleffort is used on modules to define the effort to be used in
-- evaluating conditions for control structures. This is useful for
-- those modules that contain while loop or if-then-else conditions
-- that may evaluate to a constant if more effort is applied.
-- The higher this number, the higher the evaluation effort,
-- and consequently the memory requirement and CPU time. The default
-- value is 4.
-- This attribute is not recommended!
attribute syn_evaleffort : integer; -- an integer between 0 and 100 {noscope}
-- syn_cpueffort is used on modules to define the cpu effort to be used in
-- various optimizations (such as BDDs). It may take a value from 1 to 10,
-- with the default being 5. A value of 1 to 4 would result in less CPU
-- time and most likely less optimization, while a value of 6 to 10 would
-- result in longer CPU time and possibly more optimization.
--
-- This attribute is not recommended!
attribute syn_cpueffort : integer; -- an integer between 1 and 10 {noscope}
-- syn_looplimit my be attached to a loop label. It represents the maximum
-- number of loop iterations that are allowed. Use this attribute when
-- Synplify errors out after reaching the maximum loop limit.
attribute syn_looplimit : integer; -- the maximum loop count allowed {noscope}
-- the syn_pmux_slice attribute is used to enable the pmux optimization
-- code on/off. If on at the last architecture, it is carried on the
-- hierarcy chain until it finds an architecture in which the attribute
-- is expicitly set to off.
attribute syn_pmux_slice : boolean; -- a boolean value {noscope}
attribute syn_isclock : boolean; -- {noscope}
-- turn on or off priority mux code
attribute syn_primux : boolean; -- {noscope}
-- General mapping attributes
-- inst/module/arch
--{family *}
attribute syn_resources : string; -- spec resources used by module {noscope} {objtype cell} {desc Specifies resources used by module/architecture}
attribute syn_area : string; -- spec resources used by module {noscope}
attribute syn_noprune : boolean; -- keep object even if outputs unused {noscope} {objtype cell} {desc Retain instance when outputs are unused}
attribute syn_probe : string; -- {objtype signal} {app ~synplify_asic} {desc Send a signal to output port for testing} {enum 0 1}
attribute syn_direct_enable : boolean; -- {objtype signal} {app ~synplify_asic} {desc Prefered clock enable} {default 1} {enum 1}
-- registers
attribute syn_useenables : boolean; -- set to false to disable enable use {objtype register} {app ~synplify_asic} {desc Generate with clock enable pin}
-- registers
attribute syn_reference_clock : string; -- set to the name of the reference clock {objtype register} {desc Override the default clock with the given clock }
-- I/O registers
-- {family $lucent $apex $apexe $xilinx $quicklogic}
attribute syn_useioff : boolean; -- set to false to disable use of I/O FF {objtype global port register} {desc Embed flip-flps in the IO ring}
-- {family $xilinx $apex $apexe}
attribute syn_forward_io_constraints : boolean; -- set to true to forward annotate IO constraints {objtype global} {desc Forward annotate IO constraints}
-- used to specify implementations for dff in actel for now
-- {family $actel}
attribute syn_implement : string; -- "dff", "dffr", "dffs", "dffrs" {noscope}
attribute syn_radhardlevel : string; -- "none", "cc", "tmr", "tmr_cc" {objtype register } {desc Radiation-hardened implementation style} {enum none cc tmr tmr_cc}
-- {family asic}
attribute syn_ideal_net : string; -- {objtype signal} {desc Do not buffer this net during optimization} {enum 1}
-- {family asic}
attribute syn_ideal_network : string; -- {objtype signal} {desc Do not buffer this network during optimization} {enum 1}
-- {family asic}
attribute syn_no_reopt : string; -- {objtype module} {desc Do not resize during reoptimization} {enum 1}
-- {family asic}
attribute syn_wire_load : string; -- {objtype module} {desc Set the wire load model to use for this module} {enum -read-wireloads-}
-- {family *}
-- black box attributes
attribute syn_black_box : boolean; -- disables automatic black box warning {noscope}
-- OLD black box attributes
attribute black_box : boolean; -- disables automatic black box warning {noscope}
attribute black_box_pad_pin : string; -- names of I/O pad connections {noscope}
attribute black_box_tri_pins : string; -- names of tristate ports {noscope}
-- Black box timing attributes
-- tpd : timing propagation delay
-- tsu : timing setup delay
-- tco : timing clock to output delay
attribute syn_tpd1 : string; -- {noscope}
attribute syn_tpd2 : string; -- {noscope}
attribute syn_tpd3 : string; -- {noscope}
attribute syn_tpd4 : string; -- {noscope}
attribute syn_tpd5 : string; -- {noscope}
attribute syn_tpd6 : string; -- {noscope}
attribute syn_tpd7 : string; -- {noscope}
attribute syn_tpd8 : string; -- {noscope}
attribute syn_tpd9 : string; -- {noscope}
attribute syn_tpd10 : string; -- {noscope}
attribute syn_tsu1 : string; -- {noscope}
attribute syn_tsu2 : string; -- {noscope}
attribute syn_tsu3 : string; -- {noscope}
attribute syn_tsu4 : string; -- {noscope}
attribute syn_tsu5 : string; -- {noscope}
attribute syn_tsu6 : string; -- {noscope}
attribute syn_tsu7 : string; -- {noscope}
attribute syn_tsu8 : string; -- {noscope}
attribute syn_tsu9 : string; -- {noscope}
attribute syn_tsu10 : string; -- {noscope}
attribute syn_tco1 : string; -- {noscope}
attribute syn_tco2 : string; -- {noscope}
attribute syn_tco3 : string; -- {noscope}
attribute syn_tco4 : string; -- {noscope}
attribute syn_tco5 : string; -- {noscope}
attribute syn_tco6 : string; -- {noscope}
attribute syn_tco7 : string; -- {noscope}
attribute syn_tco8 : string; -- {noscope}
attribute syn_tco9 : string; -- {noscope}
attribute syn_tco10 : string; -- {noscope}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -