| Answers Database
 
 CPLD: XC9500: How to place a macrocell/signal in low power mode (LOWPWR or PWR_MODE)   Record #2146
 
Product Family:  Software
 Product Line:  CPLD Implementation
 
 Product Part:  hitop
 
 Product Version:  1.4
 
 Problem Title:
 CPLD: XC9500: How to place a macrocell/signal in low power mode (LOWPWR or PWR_MODE)
 
 
 Problem Description:
 Urgency: Standard
 
 General Description:
 
 In Design Manager (XACT-CPLD or M1.x/2.1i) there exists a global
 option (under Design -> Implement -> Edit Template) to declare macrocells in low power mode.  Howeve
r depending on your design
 entry approach - there are several ways to place a particular
 macrocell/signal in low power mode in the design itself using
 the LOWPWR (for XACT-CPLD) or PWR_MODE (for M1) attributes.
 
 The following are described below:
 
 Resolution #1: Schematic entry
 Resolution #3: ABEL
 Resolution #3: Foundation XVHDL
 
 For more information on LOWPWR (XACT-CPLD) and PWR_MODE (M1),
 consult the respective Libraries Guides.
 
 
 Solution 1:
 
 XACT-CPLD:
 
 Placing the LOWPWR attribute on a particular symbol requires
 both a name and value parameter.
 
 1) Select the particular symbol in question.
 2) Open the symbol properties window.
 3) Assign NAME -> LOWPWR and VALUE -> ON.
 
 
 M1.X/ 2.1i:
 
 Placing the PWR_MODE attribute on a particular symbol
 requires both a name and value parameter.
 
 1) Select the particular symbol in question.
 2) Open the symbol properties window.
 3) Assign NAME -> PWR_MODE and VALUE -> LOW.
 
 *Because declaring attributes varies between schematic
 capture tools - please consult the appropriate interface
 guide for the correct procedure in declaring attributes.
 
 
 
 Solution 2:
 
 XACT-CPLD:
 
 -- Foundation XVHDL example of using the LOWPWR attribute
 
 library IEEE;
 use IEEE.std_logic_1164.all;
 
 library METAMOR;
 --Package attributes contains declarations of the Metamor --specific synthesis attributes.
 use METAMOR.attributes.all;
 
 entity flop is
 port (clk, din, reset: in std_logic ;
 dout : out std_logic);
 end flop;
 
 architecture PWRTEST of flop is
 --  D F/F with asynchronous Reset
 
 signal DUMMY: std_logic;
 
 attribute LOWPWR: string;
 attribute LOWPWR of DUMMY: signal is "on" ;
 
 begin
 process (CLK, RESET)
 begin
 if RESET='1' then	--asynchronous RESET active High
 DUMMY <= '0';
 elsif (CLK'event and CLK='1') then  --CLK rising edge
 DUMMY <= DIN;
 end if;
 end process;
 
 Dout <= DUMMY; -- passes the ouput of FF to the opad
 -- this dummy signal is created to be
 -- able to put a lowpwr attribute
 -- on the FF whose output is also
 -- a top-level port
 end PWRTEST;
 
 
 M1:
 
 -- Foundation XVHDL example of using the PWR_MODE attribute
 
 library IEEE;
 use IEEE.std_logic_1164.all;
 
 library METAMOR;
 --Package attributes contains declarations of the Metamor --specific synthesis attributes.
 use METAMOR.attributes.all;
 
 entity flop is
 port (clk, din, reset: in std_logic ;
 dout : out std_logic);
 end flop;
 
 architecture PWRTEST of flop is
 --  D F/F with asynchronous Reset
 
 signal DUMMY: std_logic;
 
 attribute PWR_MODE: string;
 attribute PWR_MODE of DUMMY: signal is "low" ;
 
 begin
 process (CLK, RESET)
 begin
 if RESET='1' then	--asynchronous RESET active High
 DUMMY <= '0';
 elsif (CLK'event and CLK='1') then  --CLK rising edge
 DUMMY <= DIN;
 end if;
 end process;
 
 Dout <= DUMMY; -- passes the ouput of FF to the opad
 -- this dummy signal is created to be
 -- able to put a pwr_mode attribute
 -- on the FF whose output is also
 -- a top-level port
 end PWRTEST;
 
 
 
 Solution 3:
 
 XACT-CPLD:
 
 In ABEL, there exists the following property statement:
 
 xepld property 'pwr low <signal_1> <signal_2> ...'
 
 which will place signal_1 and signal_2 in low power mode.
 The remaining signals in the design will remain in STD power
 mode.
 
 Further explanation on this and other property/syntax
 statements are found under (Xilinx XAPP076) -- Using ABEL
 with Xilinx CPLD's.
 
 
 "XABEL example of using the xepld property PWR statement:
 
 module PWRTEST
 Title 'pwrtest'
 
 " D F/F with asynchronous Reset
 
 Declarations
 
 DIN PIN;
 CLK PIN;
 RESET PIN;
 DOUT PIN istype 'reg';
 
 xepld property 'pwr low dout';
 
 Equations
 
 DOUT.CLK = CLK;
 DOUT.ACLR = RESET;
 DOUT := DIN;
 
 end PWRTEST
 
 
 M1:
 
 In ABEL, there exists the following property statement:
 
 xilinx property 'pwr_mode=low <signal_1> <signal_2> ...'
 
 which will place signal_1 and signal_2 in low power mode.
 The remaining signals in the design will remain in STD power
 mode.
 
 "XABEL example of using the xepld property PWR_MODE statement:
 
 module PWRTEST
 Title 'pwrtest'
 
 " D F/F with asynchronous Reset
 
 Declarations
 
 DIN PIN;
 CLK PIN;
 RESET PIN;
 DOUT PIN istype 'reg';
 
 xilinx property 'pwr_mode=low dout';
 
 Equations
 
 DOUT.CLK = CLK;
 DOUT.ACLR = RESET;
 DOUT := DIN;
 
 end PWRTEST
 
 
 
 
 End of Record #2146 - Last Modified: 12/13/99 12:25
 |