VHDLコードをsynthisizing中にエラーメッセージのSynplify

S

shaiko

Guest
こんにちは人:定数x:'1((conv_integer(Y) - 1 downto 0)):あなたは、次のコードについてどう思いますか=(他人=> '1 '); - yは、エンティティで定義されたジェネリック'1ですSynplifyPro、次のエラーメッセージが表示されてそれを停止している間、ザイリンクスISEのない問題には、このコードを合成: "式は位置の値を持っていません"教えてください...
 
あなたは整数、ジェネリックを使用しない理由はどんな理由?あなたは符号なしとして引数を修飾しない限りconv_integer()の結果は未定義であるかもしれません。
 
はい、理由があります。私は、メモリ·スタックの最上位アドレスを指定するには、このジェネリックを使用して...私はそれがオーバーフローすることにしたい(その他=> '0 ')の値は、このアドレスに到達します。たとえば、次のようにそれは '"1111"と'1であればそれは "0000"へのオーバーフローを加えられます。 15 + 1 / = 0のためこのように "1111"が+ '1 '= "0000"に相当する整数は適用されません
 
conv_integerは標準関数ではないためこのように "1111" + '1 '= "0000"に相当する整数は適用されません。あなたはnumeric_std使用する場合は、それを使うべきではありません。代わりにto_integer使用。 'y'が整数だった場合は最初の投稿では、なぜ最終的な結果は、異なるのでしょうか?定数 'x'はとにかく'1なります。このケースでは、なぜスタック·ポインタ(numeric_stdで) "符号なし"を使用しないのですか?あなたがそれをインクリメントの場合は、符号なし "1111" "0000"に折り返されます。
 
std_match、yの最終結果は、それが整数として定義されている場合は異なることはありません - 私はそれがラップすることができるようにベクトルであるためにそれを必要としていました。私は一番上のアドレスのための汎用としてyを使用し、それをラップしたいので、私はベクトルとして定義します...私はあなたの提案を理解していない。あなたはyを符号なし整数として定義されている場合、それはベクトルのように包むだろうと言っていますか?
 
'1((conv_integer(Y) - 1 downto 0)):=(他人=> '1 '); - yは、エンティティで定義されたジェネリック'1、[/QUOTE]私はx定数; [995354 = shaiko引用] "y"は何であるか理解していない。それは、 "x"がありますどのように多くのビット定義'1ですか? "x"が "y"をより多くのビットを持つことができます。あなたは何をしたいですか? [QUOTEは= shaiko]あなたはyを符号なし整数として定義されている場合、それはベクトルのように包むだろうと言っていますか?[/QUOTE]いいえ、numeric_stdの "符号なし"が符号なし整数ではありません。これは、符号なしの数値として解釈'1です。あなたは、'1用としてビット数を定義し、直接数学的な操作を行うことができます。算術演算の結果のビット数は、関与する最大の符号付き/符号と同じになります。あなたはすべてのビット= '1 'とする符号なしをインクリメントする場合、それはすべてゼロに折り返されます。 [コード]信号x:(3 downto 0)の符号であり、x
 
情報をありがとう。私が代わりに "'1"の "符号"を使用して起動すると思います... FVM、 'y'の約。それは確かにconv_integerにないシーンが整数を作りました...私はベクトル変換機能は、冗長にならないように私はそれを定義したと思った。
 
スレッドは、1行のスニペットを議論の問題を示しています。我々は、インポートされたライブラリやその他のコンテキスト情報を知りません。元の問題を参照すると、ジェネリックの型がジェネリックは一定の値であるので、包み込む信号に関係していない。コンパイル時に評価され、算術式の中で使用ジェネリックは私の見解では明らかな型として整数があります。モジュロ演算子は、同様にコンパイル時の動作が可能になります。ビットマスクまたは初期化定数はビットベクトルとして良いです。
 
確かに、整数ジェネリックは単なる定数である。しかし、私は一定ではなく、指定された "'1"の信号を評価するためにそれを使用します。したがって、私はそれがラップしたい... xの型'1( "1111")が一定である場合、以下が適用されます: "1111" + '1 '= "0000" xが整数である場合 - それは動作しません同じように評価する
 
また、あなたはあまりにも多くの括弧を持っています。 '1((1 downto 0))であっても有効であるかどうか私はわからない。
 
整数式で、符号付きまたは符号なしビットベクトルの比較、例えば、をするif(i +1)MOD 16 = U しかしながら作品。またはは、i = U1-U2 も追加して、符号付き/符号なしビットベクトルと整数定数のサブが定義されている操作はは、i = U - 1
 
FVM、信号some_interger; - 32ビット幅の整数some_interger
 
私が推測するには、長さ4のビットベクトルのMOD 16を使用することになります。しかし、両方の比較が真である。 (15 + 2)modの4以上(15 + 2)モッズ16は1の結果の両方を持っています。
 
それがあいまいであるので、それは、そのままでは文句を言わない仕事 - 文字列が符号付きまたは符号なしの型であれば、コンパイルは知って文句を言わない。いずれかの整数を変換したり、文字列を修飾する必要があります。 to_Unsigned((some_integer +1)MOD 4、4)= "0000"または(some_integer +1)MOD 4 =符号なし '( "0000")[COLOR = "シルバー"] ​​[SIZE = 1] ------ ----ポストは11時15分追加----------前の投稿は11:11だった---------- [/SIZE] [/COLOR]
numeric_stdいや、 "符号なし"が符号なし整数ではありません。これは、符号なしの数値として解釈'1です。 [/引用]申し訳ありません - これは融通が利かない人の投稿を行うには衝動を感じました。符号付き/符号なしタイプが'1ではありません。彼らは自分のタイプです。彼らはstd_logic型のすべての配列なので、 "同じような"型であり、あなたはそれらの間の単純な型変換を行うことができますが、署名されていないが'1ではありません。それはまた、符号なし整数(それが意図されているものである)として扱うことができます。それはあなたが符号なし整数としてstd_logic_vectorsを解釈することができ、非標準std_logic_unsignedではライブラリです。
 
ありがとうございます。これは非常にhelpfullです
 
[QUOTE = TrickyDicky; 995619]申し訳ありません - これは融通が利かない人の投稿を行うには衝動を感じました。符号付き/符号なしタイプが'1ではありません。彼らは自分のタイプです。彼らはstd_logic型のすべての配列なので、 "同じような"型であり、あなたはそれらの間の単純な型変換を行うことができますが、署名されていないが'1ではありません。それはまた、符号なし整数(それが意図されているものである)として扱うことができます。それはあなたが符号なし整数としてstd_logic_vectorsを解釈することができ、非標準std_logic_unsignedではライブラリです。[/引用]それは、 "符号なし、符号なしの数値として解釈'1である"と言うことが正式に誤っている可能性がありますが、それは権利を取るのに役立ちます決定。 '1、符号付きおよび符号なしの型定義は同一である。合成に関しては、これは(そしてnumeric_std)符号なし/符号を回避する理由が全​​くないことを意味します。私は、符号付き/符号なし等のVHDLを使用するときに非常に有用だと思えるような文書を添付
 
それがあいまいであるので、それは、そのままでは文句を言わない仕事 - 文字列が符号付きまたは符号なしの型であれば、コンパイルは知って文句を言わない。いずれかの整数を変換したり、文字列を修飾する必要があります。
少なくともアルテラのQuartusおよびModelSimで、その他の前提条件なしで、符号なしまたは符号付き作品に対する整数を比較する。私は以来、それを使用しています。
 
はい、タイプがすでに知られていないプレrequesitsはありません。しかし、 "0000"は、符号付きまたは符号なしかもしれませんし、 "="は両方のために存在しています。だから式を持つ:その後、A + B = "0000"の場合... "="関数は、符号付きと符号なしの型に整数を比較するために存在していますが、 "0000"は、符号付きまたは符号なしの型であるかどうかをコンパイラに明確ではありませんので、aとbが整数であるとすると、エラーが表示されます。したがって、整数を変換したり、文字列を修飾する必要があります。
 
あなたは、署名もされても、符号なしの "0000"ビットベクトル定数に対して正しい。言ったように私の例では、符号付きまたは符号なしの信号に言及していました。私は本当のコーディングの問題として3番目の定数を持つ2つの定数の合計を比較し理解していなかった。コー​​ドスニペットを議論もう一度問題...
 

Welcome to EDABoard.com

Sponsor

Back
Top