cancel
Showing results for 
Search instead for 
Did you mean: 
Observer
Observer
1,704 Views
Registered: ‎07-18-2017

Will BUFGCE get optimized to FDCE ?

Jump to solution

For a simple logic implementation of clock gating I used BUFGCE. When went through the schematics I noticed logic is implemented using FDCEs. But CE of FDCE are not used. My question is why BUFGCE didn't got optimized using CE in FDCE. Am I missing something here ? Please help.

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
2,237 Views
Registered: ‎08-01-2008

Re: Will BUFGCE get optimized to FDCE ?

Jump to solution

BUFGCE is a clock buffer with one clock input, one clock output and a clock enable line. FDCE is D Flip-Flop with Clock Enable and Asynchronous Clear.  BUFGCE cannot be optimized using CE in FDCE. 

Check these library guides for details 

https://www.xilinx.com/support/documentation/sw_manuals/xilinx13_2/7series_scm.pdf

https://www.xilinx.com/support/documentation/user_guides/ug362.pdf

 

--Example non gated clock 

 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity normalclk is
port( clk : in std_logic;
      load : in std_logic;
      i : in std_logic;
     o : out std_logic
      );     
end normalclk;


architecture Behavioral of normalclk is

BEGIN
process(clk)
begin
if(rising_edge(clk)) then
if(load ='1') then
<= i;
end if;
end if;
end process;

end Behavioral;

 

--VHDL code for gated clock

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity gatedclk is
port( clk : in std_logic;
      load : in std_logic;
      i : in std_logic;
      o : out std_logic
      );     
end gatedclk;

architecture Behavioral of gatedclk is
signal gclk : std_logic;

BEGIN
gclk <= clk and load;
process(gclk)
begin
if(rising_edge(gclk)) then
o <= i;
end if;
end process;

end Behavioral;

Thanks and Regards
Balkrishan
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.

View solution in original post

4 Replies
Highlighted
Moderator
Moderator
1,702 Views
Registered: ‎01-16-2013

Re: Will BUFGCE get optimized to FDCE ?

Jump to solution

@tollinjose,

 

Are you using instantiation of BUFGCE? If yes, then it will not be optimized to FDCE. 

Can you share the snippet of code and its schematic?

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
Highlighted
Xilinx Employee
Xilinx Employee
2,238 Views
Registered: ‎08-01-2008

Re: Will BUFGCE get optimized to FDCE ?

Jump to solution

BUFGCE is a clock buffer with one clock input, one clock output and a clock enable line. FDCE is D Flip-Flop with Clock Enable and Asynchronous Clear.  BUFGCE cannot be optimized using CE in FDCE. 

Check these library guides for details 

https://www.xilinx.com/support/documentation/sw_manuals/xilinx13_2/7series_scm.pdf

https://www.xilinx.com/support/documentation/user_guides/ug362.pdf

 

--Example non gated clock 

 

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity normalclk is
port( clk : in std_logic;
      load : in std_logic;
      i : in std_logic;
     o : out std_logic
      );     
end normalclk;


architecture Behavioral of normalclk is

BEGIN
process(clk)
begin
if(rising_edge(clk)) then
if(load ='1') then
<= i;
end if;
end if;
end process;

end Behavioral;

 

--VHDL code for gated clock

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity gatedclk is
port( clk : in std_logic;
      load : in std_logic;
      i : in std_logic;
      o : out std_logic
      );     
end gatedclk;

architecture Behavioral of gatedclk is
signal gclk : std_logic;

BEGIN
gclk <= clk and load;
process(gclk)
begin
if(rising_edge(gclk)) then
o <= i;
end if;
end process;

end Behavioral;

Thanks and Regards
Balkrishan
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.

View solution in original post

Highlighted
Observer
Observer
1,664 Views
Registered: ‎07-18-2017

Re: Will BUFGCE get optimized to FDCE ?

Jump to solution

yes. I was using instantiation of BUFGE. My circuit was very simple, I just implemented a simple four bit counter to which I gave clock through BUFGCE. You meant once we instantiate its hard wired? Optimization algorithm of xilinx wont touch it ? 

0 Kudos
Highlighted
Moderator
Moderator
1,657 Views
Registered: ‎01-16-2013

Re: Will BUFGCE get optimized to FDCE ?

Jump to solution

@tollinjose,

 

 You meant once we instantiate its hard wired? Optimization algorithm of xilinx wont touch it ? 

As per my knowledge Yes. 

 

Regards,
Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos