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

EXEMPLAR, SYNPLIFY - HDL (VHDL/Verilog) での LOC/RLOC ロジックの使用

説明

キーワード : Synplicity, Synplify, Virtex, VHDL, Verilog, RLOC

インスタンシエートされたロジックを CLB に LOC/RLOC を使ってロックする方法を教えてください。 (VHDL および Verilog)

Virtex デザインの Verilog および VHDL のサンプル コードは次のとおりです。ほかのデバイスにも同様のコードが使用できます。

詳細は、ザイリンクスの『制約ガイド』にある関連制約のセクションを参照してください。このガイドは次のページから参照できます。
http://www.xilinx.co.jp/support/software_manuals.htm

メモ :
- Synplify 5.2.2a および Exemplar 1999.1i でテスト済みです。
- I/O ピンのロック方法については、(Xilinx Answer 2379) を参照してください。

ソリューション

1

Synplify 属性を使った Verilog RLOC 例

Exemplar の場合、属性を次のように置き換えます。
examplar attribute <instance_name> rloc <location>

例 :
これを
/*synthesis rloc="r1c0.s0" */
次のものを置き換えます。
/*exemplar attribute u0 rloc r1c0.s0 */
-----------------------------------------------------------

module flops (di, ce, clk, qo, rst);
input di;
input ce;
input clk;
output qo;
input rst;

wire q0, q1;


FDCE u0(.D(di),
.CE(ce),
.C (clk),
.CLR (rst),
.Q (q0))/*synthesis rloc="r0c0.s0" */;

FDCE u1 (.D (q0),
.CE(ce),
.C (clk),
.CLR(rst),
.Q (q1))/* synthesis rloc="r0c0.s1" */;

FDCE u2(.D (q1),
.CE(ce),
.C (clk),
.CLR (rst),
.Q (qo)) /* synthesis rloc="r1c0.s0" */;

endmodule

2

VHDL RLOC 例
-- Exemplar および Synplify --

library IEEE;
use IEEE.std_logic_1164.all;

entity flops is port(
di: in std_logic;
ce : in std_logic;
clk: in std_logic;
qo: out std_logic;
rst: in std_logic);

end flops;

architecture inst of flops is
component FDCE port( D: in std_logic;
CE: in std_logic;
C: in std_logic;
CLR: in std_logic;
Q: out std_logic);
end component;

attribute RLOC: string;
attribute RLOC of U0: label is "R0C0.S0";
attribute RLOC of U1: label is "R0C1.S0";
attribute RLOC of U2: label is "R1C1.S0";
signal q0,q1 : std_logic;


begin
U0 : FDCE port map(D => di,
CE=> ce,
C => clk,
CLR => rst,
Q => q0);

U1: FDCE port map(D => q0,
CE=> ce,
C => clk,
CLR => rst,
Q => q1);

U2: FDCE port map(D => q1,
CE=> ce,
C => clk,
CLR => rst,
Q => qo);

end inst;

3

VHDL LOC 例
-- Exemplar および Synplify --

library IEEE;
use IEEE.std_logic_1164.all;

entity flops is port(
di: in std_logic;
ce : in std_logic;
clk: in std_logic;
qo: out std_logic;
rst: in std_logic);

end flops;

architecture inst of flops is
component FDCE port( D: in std_logic;
CE: in std_logic;
C: in std_logic;
CLR: in std_logic;
Q: out std_logic);
end component;

attribute LOC: string;
attribute LOC of U0: label is "CLB_R2C3.S0";
attribute LOC of U1: label is "CLB_R2C4.S0";
attribute LOC of U2: label is "CLB_R6C8.S0";
signal q0,q1 : std_logic;


begin
U0 : FDCE port map(D => di,
CE=> ce,
C => clk,
CLR => rst,
Q => q0);

U1: FDCE port map(D => q0,
CE=> ce,
C => clk,
CLR => rst,
Q => q1);

U2: FDCE port map(D => q1,
CE=> ce,
C => clk,
CLR => rst,
Q => qo);

end inst;

4

Synplify 属性を使った Verilog LOC 例

Exemplar の場合は、属性を次のように置き換えます。
examplar attribute <instance_name> loc <location>

例 :
これを
/*synthesis rloc="r1c0.s0" */
次のものに置き換えます。
/*exemplar attribute u0 rloc r1c0.s0 */
----------------------------------------------------------------

module flops (di, ce, clk, qo, rst);
input di;
input ce;
input clk;
output qo;
input rst;

wire q0, q1;


FDCE u0(.D(di),
.CE(ce),
.C (clk),
.CLR (rst),
.Q (q0))/*synthesis loc="CLB_r2c3.s0" */;

FDCE u1 (.D (q0),
.CE(ce),
.C (clk),
.CLR(rst),
.Q (q1))/* synthesis loc="CLB_r4c5.s1" */;

FDCE u2(.D (q1),
.CE(ce),
.C (clk),
.CLR (rst),
.Q (qo)) /* synthesis loc="CLB_r6c2.s0" */;

endmodule
AR# 8055
日付 04/24/2007
ステータス アーカイブ
種類 一般