UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 8836

CPLD - ABEL、Verilog、VHDL を使用して CPLD にラッチをインプリメントする方法について

説明

キーワード : latch, 9500, HDL, ABEL, Verilog, VHDL, CPLD, registered, ラッチ, レジスタ

重要度 : 標準

概要 :
ABEL、VERILOG、または VHDL を使用して、ラッチをインプリメントする方法

ソリューション

1

<b>ABEL</b> を使用して、レジスタ付きの組み合わせラッチを作成する方法を次に示します。

// Registered Latch
MODULE top

data0 pin;
latch_enable pin;
out0 pin istype 'reg';

Equations
out0 := data0;
out0.lh = latch_enable;
END top

// Combinatorial Latch
MODULE latch

data pin;
latch pin;
dout pin istype 'retain';
// dout_temp node istype 'retain';

Equations

dout = data & latch # dout & !latch
# dout & data; // redundant product term

// dout_temp = data & latch # data & dout;
// dout = dout_temp # data & !latch; // redundant pterm
END

There are two forms of a combinational latch given; the commented lines are necessary for the alternate form. The commented version may be useful for situations where the data equation is large. Because of the "retain" attribute, when the data equation is large, the software will not be able to appropriately minimize the logic, which results in high Product Term usage.

2

<b>VHDL</b> を使用して、レジスタ付きのラッチを作成する方法を次に示します。

library IEEE;
use IEEE.std_logic_1164.all;

entity top is
port (
gate: in STD_LOGIC;
din: in STD_LOGIC;
dout: out STD_LOGIC
);
end top;

architecture top_arch of top is
begin

process (GATE, DIN)
begin
if GATE='1' then
DOUT <= DIN;
end if;
end process;

end top_arch;

3

<b>Verilog</b> を使用して、レジスタ付きのラッチを作成する方法を次に示します。

module top (DIN, GATE, DOUT) ;

input DIN ;
input GATE ;
output DOUT ;
reg DOUT ;


always @ (GATE or DIN)
begin
if(GATE)
DOUT =DIN;
end

endmodule
AR# 8836
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加