AR# 19078

|

7.1i XST - HDL で SET 制約を使用して相対配置マクロ (RPM) を作成する方法

説明

キーワード : U_SET, H_SET, RLOC, LOC, 相対, 配置, マクロ, 集合名

6.3i サービス パック 1 の XST から、SET 制約を指定して簡単に相対配置マクロ (RPM) を作成できるようになりました。 さまざまな SET 制約については、次のサイトから『制約ガイド』を参照してください。http://www.xilinx.co.jp/support/software_manuals.htm

ソリューション

1

VHDL

次に、SET 制約を使用した簡単な RPM の VHDL コード例を示します。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity ffs is
Port ( d : in std_logic_vector(7 downto 0);
clk : in std_logic;
q : out std_logic_vector(7 downto 0));
end ffs;

architecture ffs_arch of ffs is

signal reg_1 : std_logic_vector (3 downto 0);
signal reg_2 : std_logic_vector (3 downto 0);

attribute rloc : string;
attribute rloc of reg_1 : signal is "X1Y16 X1Y16 X0Y14 X0Y14";
attribute rloc of reg_2 : signal is "X1Y16 X1Y16 X0Y14 X0Y14";

attribute u_set : string;
attribute u_set of reg_1 : signal is "reg1_set";
attribute u_set of reg_2 : signal is "reg2_set";

begin

process (clk) is
begin
if clk'event and clk = '1' then
reg_1 <= d(3 downto 0);
reg_2 <= d(7 downto 4);
end if;
end process;

q (3 downto 0) <= reg_1;
q (7 downto 4) <= reg_2;

end ffs_arch;

2

Verilog

次に、SET 制約を使用した簡単な RPM の Verilog コード例を示します。

module ffs (d,clk,q);
input [7:0] d;
input clk;
output [7:0] q;

(* RLOC = "X1Y16 X1Y16 X0Y14 X0Y14" *)
(* U_SET = "reg1_set" *)
reg [3:0] reg_1;

(* RLOC = "X1Y16 X1Y16 X0Y14 X0Y14" *)
(* U_SET = "reg2_set" *)
reg [3:0] reg_2;

always @(posedge clk)
begin
reg_1 <= d[3:0];
reg_2 <= d[7:4];
end

assign q[3:0] = reg_1;
assign q[7:4] = reg_2;

endmodule
AR# 19078
日付 01/07/2009
ステータス アーカイブ
種類 一般
People Also Viewed