VHDLを使用して、ビッグエンディアン形式で表現

C

cristiano7

Guest
こんにちは、私は愚かな質問をしたい..私は信号LEN1を持っている
 
任期ビッグエンディアン(またはリトルエンディアン)バイト指向のプロセッサでバイト順序を指定し、VHDLのビットベクターに適合していません。専門用語は、配列の範囲を昇順と降順になります。事前定義された数値型と同様に、符号付きおよび符号なしの範囲は、規約で降順に制限されています。あなたの例を参照するには、信号LEN1のビット順序を教えてくれなかった。また、あなたが直接、異なる長さのビットベクトルを割り当てることはできません。同じ長さのビットベクトルはそれらの昇順または降順の独立した、オーダー "左から右へ"に従って割り当てられます。あなたは "高いものから安いものへ"の順序を保持する場合は、ビット単位の割り当てを実行する必要があります。
 
私はあなたが言ったことを理解し全く持っていない、しかし私は次の、より明確に理解できることを願っています。 LEN1(0から3)
 
どのようにして、知っていることをLEN1(0から3)
 
メッセージの長さのバイナリ表現は "1000"であるメッセージMの長さは( "11001100")は8ビットですよね?だから、それはないですか?整数8(1000 = 8) "1000"です、なぜそれが間違っている可能性がすべきことLEN1(0から3)
 
"1000"は符号なしのバイナリでは8ですが、符号付きバイナリで-8です。あなたは範囲0から3を使用する場合は、MSBとして最も右側のビットを服用していた場合、またはそれが1である可能性があります。だから、これは私たちがdownto使って、むしろよりもスタートににこだわる理由です。これは、整数を表すために'1を使用する際の欠陥です。それが符号付きまたは符号なしされているか否かに資格をtheres。
 
そう、あなたは私が何をするアドバイスしますか?
 
では、なぜそれが間違っているはずLEN1(0から3)は
 
ゼロの384から1-len1mod512('0 ')が続いている。
 
我々はメッセージMを持っているexample.Hereについては、以下を参照してください。
 
あなたは本当にあなたがやっていることについては非常に明確であるわけではありません。なぜあなたは、512ビットワードが必要なのでしょうか?なぜ傾けるあなただけのステートマシンを使用して、その場でそれを生成しますか?私はあなたが実際にacheiveするしようとしている投稿を示唆したり、すでに作ってみたいくつかのコード。 FVM:numeric_stdについて昇順範囲を使用しては結構です、それがMSBに0を扱いますが、関数は常に配列downtoが返されますが、これらはasscendingアレイに割り当てることができます[COLOR = "シルバー"] ​​[SIZE = 1] --- ------- 10:17 ----------前の投稿で追加ポストは10:14 ---------- [/SIZE] [/COLOR]絵にあったあなたは、添付されているコンテキストが存在しないため、意味がありません?それは、メッセージの種類ですか?あなたはそれを送っているでしょうか?どのようにそれを送信している? "" "b"と "c"は何を意味するのですか?彼らは文字を制御していますか?そして、出力として出力(0 downto 1023)で何が間違っているのでしょうか?どのように何か別のものにこのような大規模な配列をマッピングするために期待していますか?
 
私は何をしたいとすると、タスクは上記示したとおりのものである! :P あなたがメッセージMを持っているのlビットである(だからとしましょう​​そのM(0〜7)。
 
あなたのコードは、実際には3つの定数を設定すること以外の何かを示すものではありません。とhexはちょうど進数ですので、A、B、Cは "61"、 "62"、 "63"のように16進数で表現することができます。そしてなぜあなたはちょうどこれを書いていない理由は、非常に多くのループを使用しましたか? [コード]メッセージ2(0〜7)
 
メッセージ2 XOR hi.So iはoutput.Iが信号としてそれを必要とメッセージ2を行う必要はありません:メッセージ2は、私がそのあとやるhi.soと呼ばれる別の'1とのXORゲートに使用する信号です!
 
[OK]をアン今問題なのでしょうか?私が推測するには、可変長メッセージにコードを変更することについてです。しかし、あなたは8固定長メッセージ1を定義しました。だから、最高の状態で、あなたはそれが0から8までの可変メッセージの長さのために働くことができます。すべてのループ式で= to_integer(符号なし(LEN1))8の代わりに固定長と可変長の操作を取得する:この問題のしかし、離れて、整数変数lenを使用することができます。あなたは事前に読み込むことによって、コードを簡略化することができます(その他=> '0 ')メッセージ2と唯一の非ゼロ部分を充填する。
 
"私が推測するには、可変長メッセージにコードを変更することについてですが8の固定長メッセージ1を定義したので、最高にしかし、あなたはそれは0から8までの可変メッセージの長さのために動作させることができます。" - はい、これ私がいつか解決するために私の心を持っていることが一つですが、私は本当にメッセージ1のパディングが右であることを証明する必要がnow.Nowません。物事を単純化するために、iは入力メッセージ1として与えたい、メッセージ1とシステムの長さは次のようになりますメッセージ2を作るためにそれらを使用する必要があります。メッセージ2
 
だから場合は、次のようにメッセージ1(0〜7)
 
私は自分のコードでそれが正しいと知ることは、私はシミュレーション上でそれを見ることができます!メッセージ1の長さの128ビットのバイナリ表現は、ビッグエンディアン形式で[A / B]:私はそれが正しいと言うタスクに応じてされている場合はわからない
 

Welcome to EDABoard.com

Sponsor

Back
Top