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 |