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# 5800

FPGA Express 3.3:Virtex/E デバイスの SR16 および SRL16E コンポーネントの推測方法

説明

キーワード:FPGA Express, Foundation, Virtex, SRL, shift register, infer, シフト レジスタ, 推測

重要度 :標準

概要:
FPGA Express 3.3 (Foundation Express 2.1i サービス パック 2) には Virtex デバイスのシフト レジスタ LUT を推測する機能があります。HDL ソース コードに以下のコードを使って、推測します。

どのサイズのシフト レジスタでも推測できますが、16 ビット未満の場合は、アドレス行は VCC または GND に接続され、小型のシフト レジスタが作成されます。16 ビット以上の場合は、複数の SRL16 コンポーネントが推測され、大型のシフト レジスタが作成されます。

どのサイズのシフト レジスタも Static Length Mode で推測されますが、Dynamic Length Mode を使用する場合は、コンポーネントをインスタンシエートする必要があります。

ソリューション

1

以下の VHDL コードは、SRL16 コンポーネントを推測します。








process (CLK)
begin
if (CLK'event and CLK ='1') then
REG <= DIN & REG(15 downto 1);
end if;
DOUT <= REG(0);
end process;






クロック イネーブル信号を追加して SRL16E コンポーネントを推測します。


process (CLK)
begin
if CLK'event and CLK='1' then
if CE='1' then
REG <= DIN & REG(15 downto 1);
end if;
end if;
DOUT <= REG(0);
end process;


2

以下の Verilog コードは、SRL16 コンポーネントを推測します。








always @(posedge clk)
begin
int = {din, int[15:1]};
end
assign dout = int[0];




クロック イネーブル信号を追加して SRL16E コンポーネントを推測します。


always @(posedge clk)
begin
if (ce)
int = {din, int[15:1]};
end
assign dout = int[0];
AR# 5800
作成日 03/04/1999
最終更新日 08/11/2003
ステータス アーカイブ
タイプ 一般