Primitive: Multi-Region Clock Buffer with Clock Enable
Introduction
The BUFMRCE is a multi-region clock-in/clock-out buffer with clock with clock enable (CE). Deasserting CE stops the output clock to a user specified value. The BUFMRCE replaces the multi-region/bank support of the BUFR and BUFIO available in prior Virtex 7 architectures. Each bank contains two BUFMRCEs, and one specific MRCC in the same bank can drive each buffer. The BUFMRCE drives the BUFIOs and/or BUFRs in the same region/banks and in the region above and below via the I/O clocking backbone. When using BUFR dividers (not in bypass), disable the BUFMRCE by deasserting the CE pin, reset the BUFR by asserting CLR, and then assert the CE signal. This sequence ensures that all BUFR output clocks are phase aligned. If you do not use the dividers within the BUFRs, this additional circuitry is unnecessary. If you do not need the clock enable circuitry, use a BUFMR component in place of a BUFMRCE.
Port Descriptions
| Port | Direction | Width | Function |
|---|---|---|---|
| CE | Input | 1 | Active-High buffer enable input. When low, output settles to INIT_OUT value. |
| I | Input | 1 | BUFMR clock input pin. Connect to an IBUF input that in turn is directly connected to a MRCC I/O port. |
| O | Output | 1 | BUFMR clock output pin. Connect to BUFIOs and/or BUFRs to be driven in the same and adjacent regions. |
Design Entry Method
| Instantiation | Yes |
| Inference | No |
| IP catalog | No |
| Macro support | No |
Available Attributes
| Attribute | Type | Allowed Values | Default | Description |
|---|---|---|---|---|
| CE_TYPE | STRING | "SYNC", "ASYNC" | "SYNC" | Set to "SYNC" for CE to be synchronous to input I and create a glitchless
output. Set to "ASYNC" for stopped clock or non-clock operation of the CE signal. |
| INIT_OUT | DECIMAL | 0, 1 | 0 | Initial output value, also indicates stop low vs. stop high behavior |
VHDL Instantiation Template
Library UNISIM;
use UNISIM.vcomponents.all;
-- BUFMRCE: Multi-Region Clock Buffer with Clock Enable
-- 7 Series
-- Xilinx HDL Language Template, version 2025.2
BUFMRCE_inst : BUFMRCE
generic map (
CE_TYPE => "SYNC", -- SYNC, ASYNC
INIT_OUT => 0 -- Initial output and stopped polarity, (0-1)
)
port map (
O => O, -- 1-bit output: Clock output (connect to BUFIOs/BUFRs)
CE => CE, -- 1-bit input: Active high buffer enable
I => I -- 1-bit input: Clock input (Connect to IBUF)
);
-- End of BUFMRCE_inst instantiation
Verilog Instantiation Template
// BUFMRCE: Multi-Region Clock Buffer with Clock Enable
// 7 Series
// Xilinx HDL Language Template, version 2025.2
BUFMRCE #(
.CE_TYPE("SYNC"), // SYNC, ASYNC
.INIT_OUT(0) // Initial output and stopped polarity, (0-1)
)
BUFMRCE_inst (
.O(O), // 1-bit output: Clock output (connect to BUFIOs/BUFRs)
.CE(CE), // 1-bit input: Active high buffer enable
.I(I) // 1-bit input: Clock input (Connect to IBUF)
);
// End of BUFMRCE_inst instantiation
Related Information
- 7 Series FPGAs Clocking Resources User Guide (UG472)