マルチソ¥ースエラーVHDLの合成中に

S

sgil

Guest
こんにちはすべて、

私は
、 次のコードを実装しようとしています:

-------------------------------------------------- --------------------------------
例library ieee;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_UNSIGNED.ALL;

エンティティfir_cuです

ポート(ファ:STD_LOGICで;
ブリアトーレ:STD_LOGICで;
STD_LOGICのFC:に;
STD_LOGIC f_d:に;
clk:STD_LOGICで;
reset_n:STD_LOGICで);
-ン:STD_LOGIC_VECTOR(3 '1 0); -未使用の出力ポート..削除しようとする
- 2006年度:STD_LOGICアウト;
-ビジー:STD_LOGICアウト);
エンドfir_cu;

アーキテクチャの行動fir_cuです

コンポーネントのアイコンを
ポート

control0:アウトstd_logic_vector(35 '1 0)
);
バックエンドコンポーネント;

コンポーネントのイラ
ポート

コントロール:std_logic_vector(35 '1 0);
clk:std_logicで;
データ:std_logic_vector(53 '1 0);
trig0:std_logic_vector(7 '1 0)
);
バックエンドコンポーネント;

信号control0:std_logic_vector(35 '1 0);
信号ila_data:std_logic_vector(53 '1 0);
信号trig0:std_logic_vector(7 '1、0);
-
信号CNTの:std_logic_vector(7 '1、0);
信号Lstrobe_R1:std_logic;
信号Lstrobe_R4:std_logic;
信号Rstrobe_R1:std_logic;
信号Rstrobe_R4:std_logic;
信号selR4:std_logic_vector(1 '1 0);
信号selR1:std_logic;
信号desel_R1:std_logic;
信号desel_R4:std_logic;
信号enable_R1:std_logic;
信号enable_R4:std_logic;
信号d_strobe_Ah0:std_logic;
信号d_strobe_Y:std_logic;
信号a_strobe:std_logic;
信号b_strobe:std_logic;
信号c_strobe:std_logic;
信号d_strobe:std_logic;

信号dummy_busy:std_logic;

開始する

i_icon:アイコンを
ポートマップ

control0 ="control0
);

i_ila:イラ
ポートマップ

コントロール="control0、
clk ="clk、
データ="、ila_data
trig0 ="trig0
);

-時間スロット0
T0:(CLK)のプロセス
開始する
場合(clk'eventとCLK = '1')し
場合(ファ= '1'とfb = '1'とfc = '1'とf_d = '1')し
場合(reset_n = '1')し
CNTの"="00000000";
終了の場合;
終了の場合;

a_strobe"= '1';
b_strobe"= '1';
c_strobe"= '1';
d_strobe"= '1';
selR4"="00";
CNTの"= CNTの '1';

終了の場合;
エンドプロセスT0;

-時間スロット1
本館:(CLK)のプロセス
開始する
場合(clk'eventとCLK = '1')し
場合(="CNTの00000001")して
dummy_busy"= '1';
Lstrobe_R1"= '1';
Lstrobe_R4"= '1';
CNTの"= CNTの '1';

elsif(CNTの="000000010")を
enable_R4"= '1';
selR4"="01";
selR1"= '0';
desel_R4"= '0';
CNTの"= CNTの '1';elsif(CNTの="00000011")して
CNTの"= CNTの '1';
Lstrobe_R1"= '0';
Lstrobe_R4"= '0';
enable_R4"= '0';

elsif(CNTの="00000100")して
Rstrobe_R4"= '1';
CNTの"= CNTの '1';

elsif(CNTの="00000101")して
d_strobe_Ah0"= '1';
CNTの"= CNTの '1';

elsif(CNTの="00000110")して
CNTの"= CNTの '1';
終了の場合;

終了の場合;
エンドプロセス本館;

-時間スロット2
本館:(CLK)のプロセス
開始する
場合(clk'eventとCLK = '1')し
場合(="CNTの00000111")して
Lstrobe_R1"= '1';
Lstrobe_R4"= '1';
CNTの"= CNTの '1';

elsif(CNTの="00001000")して
enable_R1"= '1';
enable_R4"= '1';
selR4"="10";
selR1"= '1';
desel_R4"= '1';
desel_R1"= '0';
CNTの"= CNTの '1';

elsif(CNTの="00001001")して
CNTの"= CNTの '1';
Lstrobe_R1"= '0';
Lstrobe_R4"= '0';
enable_R4"= '0';
enable_R1"= '0';

elsif(CNTの="00001010")して
Rstrobe_R4"= '1';
Rstrobe_R1"= '1';
CNTの"= CNTの '1';
終了の場合;

終了の場合;
エンドプロセス本館;

ila_data(7 '1 0)"= CNTの(7 '1、0);
ila_data(

<img src=¥"http://www.edaboard.com/images/smiles/icon_cool.gif¥" alt=¥"涼しい¥" border=¥"0¥" />

"=ファ;
ila_data(9)"=フライングブルー;
ila_data(10)"=のFC;
ila_data(11)"= f_d;
ila_data(12)"= clk;
ila_data(13)"= Lstrobe_R1;
ila_data(14)"= Lstrobe_R4;
ila_data(15)"= Rstrobe_R1;
ila_data(16)"= Rstrobe_R4;
ila_data(18 '1 17)"= selR4(1 '1 0);
ila_data(19)"= desel_R1;
ila_data(20)"= desel_R4;
ila_data(21)"= enable_R1;
ila_data(22)"= enable_R4;
ila_data(23)"= d_strobe_Ah0;
ila_data(24)"= d_strobe_Y;
ila_data(25)"= dummy_busy;

trig0(0)"=ファ;
trig0(1)"=フライングブルー;
trig0(2)"=のFC;
trig0(3)"= f_d;

最後の行動;

------------------------------------
しかし、i、複数のエラーが出る-私の考えられる原因を見つけるには
、 ザイリンクスのサポートWebサイトでチェックが本当に..助けていないか私はおそらく何を正確に変更するのか分からない...私が手に
、 次の:
================================================== ======================

エラー:XSTで:528 -マルチ信号<fir_cu>上のユニットのソ¥ース<desel_R4>
ソ¥ースがあります:
信号<desel_R4>ユニットで<fir_cu> VCCに割り当てられている

エラー:XSTで:528 -マルチユニットのソ¥ース<fir_cu>信号<Lstrobe_R1>に
ソ¥ースがあります:
Fdのインスタンス<Lstrobe_R1>の出力信号
FDSEインスタンス<Lstrobe_R1_ren>の出力信号

エラー:XSTで:528 -マルチ信号<fir_cu>上のユニットのソ¥ース<enable_R1>
ソ¥ースがあります:
Fdのインスタンスの出力信号<enable_R1>
FDEのインスタンスの出力信号<enable_R4>

エラー:XSTで:528 -マルチ信号<fir_cu>上のユニットのソ¥ース"selR4"1""
ソ¥ースがあります:
信号"selR4"1単位""で<fir_cu> GNDに割り当てられている

エラー:XSTで:528 -マルチ信号<fir_cu>上のユニットのソ¥ース"selR4"0""
ソ¥ースがあります:
信号"selR4"0単位""で<fir_cu> VCCに割り当てられている

エラー:XSTで:528 -マルチ信号<fir_cu>上のユニットのソ¥ース"CNTの"3""
ソ¥ースがあります:
FATAL_ERROR:XSTで:移植性の/ export / Port_Main.h:127:1.17 -このアプリケーションでは
、 そこから回復することができない例外的な条件を発見しました。プロセスを終了します。このエラーに関する詳細情報については、回答のデータベースまたはプロジェクトhttp://www.xilinx.com/supportで添付してウェブケース開いて相談してください。

プロセス"の合成に失敗しました"

 
唯一の1つのプロセス信号用のドライバをすることができます。あなたのコードでは
、 多くの信号を複数のプロセスによって駆動されるためエラーがあります。

 
返事ring0いただき
、 ありがとうございます

<img src=¥"http://www.edaboard.com/images/smiles/icon_smile.gif¥" alt=¥"笑み¥" border=¥"0¥" />

...

あなたの言うとおり...私は1つの質問に、iが複数のプロセスを持つことができますか?場合にのみ
、 すべての信号は
、 これらのプロセスで駆動され
、 相互に排他的です/互いに何の関係もありますか?

その場合には、私のコードを変更します
、 私は1つだけのプロセスがありかどうか確認..作品のよう

 
たとえば、複数のプロセスを持つことが他のプロセスから1つのプロセスを使用し出力します。それだけでは信号のいくつかのプロセス(または並列の割り当てによって駆動されるように)が必要です。

 
私が得たのエラーは
、 シミュレーション1つのプロセスを使用して取り除く完璧に動作します。


、 もし私は私の2番目のプロセスは
、 すべて
、 これらの信号を必要とせず
、 最初のプロセスの出力を使用して
、 別のプロセスを使用する場合(プロセス1から)は
、 感度のリストで使用される?やclock'で十¥分です'?

ありがとう

<img src=¥"http://www.edaboard.com/images/smiles/icon_smile.gif¥" alt=¥"笑み¥" border=¥"0¥" />
 
て利用する場合のエッジの同期プロセス(フリップフロップ)sensivityリスト(および非同期クリア信号)に十¥分な、クロック信号です。とするすべての信号のためのシミュレーションと合成の間の等価性を確保するためsensivityリスト内のプロセスで使用される言及すべき非同期プロセスがラッチされます。

 

Welcome to EDABoard.com

Sponsor

Back
Top