SRL(16) là shift-register look-up table trong các dòng chip của Xilinx. SRL16 rất hữu ích, và rất phù hợp với một project nhỏ như LCD Controller dùng trong các Xilinx kit.
Một ứng dụng của SRL16 là dùng để chia clock. Một SRL16 có thể chia clock xuống 16 lần. Một SRL16 + 1 register có thể chia xuống 17 lần, như thí dụ sau đây (SRL16 primitive với clock enable được instantiate):
Mấu chốt ở đây là phần INIT = x"00ff", và address A0/1/2/3.
Dưới đây là một thí dụ để chia clock xuống 13 lần chỉ dùng 1 SRL16.

Phương thức này và chân clock enable (CE) có thể được kết hợp để tạo xung. Với 4 SRL16 và 1 register, chúng ta có thể tạo pulses cách nhau ~8ms (clock đầu vào = 33MHz/17).
Một ứng dụng của SRL16 là dùng để chia clock. Một SRL16 có thể chia clock xuống 16 lần. Một SRL16 + 1 register có thể chia xuống 17 lần, như thí dụ sau đây (SRL16 primitive với clock enable được instantiate):
Code:
SRL16_clk_div16_inst : SRL16E
generic map (
INIT => x"00ff"
)
port map (
Q => clk33MHz_div16,
A0 => '1',
A1 => '1',
A2 => '1',
A3 => '1',
CLK => clk_33MHz,
CE => '1',
D => clk33MHz_div17
);
clk33MHz_div17 <= clk33MHz_div16 when rising_edge(clk_33MHz);
Dưới đây là một thí dụ để chia clock xuống 13 lần chỉ dùng 1 SRL16.
Code:
SRL16_clk_div13_inst : SRL16E
generic map (
INIT => x"003f"
)
port map (
Q => clk33MHz_div13,
A0 => '0',
A1 => '0',
A2 => '1',
A3 => '1',
CLK => clk_33MHz,
CE => '1',
D => clk33MHz_div13
);

Phương thức này và chân clock enable (CE) có thể được kết hợp để tạo xung. Với 4 SRL16 và 1 register, chúng ta có thể tạo pulses cách nhau ~8ms (clock đầu vào = 33MHz/17).



Comment