問題アーチ助けreqがに16bit fpgacpu、組織

U

umairsiddiqui

Guest
コアCPUのビットがしようとすること16、私は状況をごん直面してデッドに!
CPUはキットスターター3 OpenCores.org)にシンプルでは必要な運転ミニUARTを、(で氏Ovidiu Lupas
(何かをするか?? -印刷の"hello world"

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

)。
システム用に、私が考えていたことは、CPUからのuser-data/codeを描くpower-up/reset
プラットフォームフラッシュと負荷SRAMに。

ああ!私のcomp - archとデジタルデザインの知識は思った私はより悪い証明すること。
してください何かでアーチに役立つ私をさらに設計の簡素化、任意の組織/欠陥除去、結局私はそう簡単に何か
と呼ばれることができる"汎用CPUは" -制御を処理できるようにしないいくつかのデータ...のようなシステムを駆動する
system6801(ケントのミスタージョン)。

多くの時間の浪費後、私は思い付く:
-16ビットデータパス
-セグメンテーション64kのフラットアドレスメモリと(両方のコードデータと)なしでページング
ワードを使用して(16ビット)アドレス、シーケンシャルメモリ言葉は2によって異なるではなく、1。
-16割り込み
-私は別のI / Oアドレス空間(256 locs)
-スタック4kの
ユーザー表¥示レジスタ:
*アキュムレータ() - 16ビット
*ベース/索引(B)は- 16ビット
*ループカウンタ(℃) - 16ビット
* 12ビットスタックポインタ(SP)の-
*)はフレームポインタ(fPがスタック- 12ビットを
全体的なメモリマップ:
16 locsの割り込みの最初* - int型0リセット
FPはいる'1111とSP *スタック4kの最後の(最初の4ビット')
*ユーザーコード/データメモリとの間/ OのマップのI
-アドレッシングモード:
*例を登録(:楽章のAは、C)
*直通(例:楽章のA、[16ビット絶対アドレス];
*間接的(例:楽章のA、の)
*インデックス/ベース(例:楽章のA、を[16bitの変位];
*即時
[1] *スタックの中に(例-アクセスargsと地元の人々の変数:楽章のA、[浮動小数点;がオーバーライドしていない"セグメント"は、
SPとfpは)はスタックの管理

-ジャンプ、条件分岐とコールスタックをすべて絶対を除くすべてのアドレッシングモードを(支持し!)
ノー乗算、除算、バレルシフト:が全体が問題プロセッサがいるように見えること
フラットアドレス64kのは、* 16のRAM
- "という言葉を使用して(16ビット)アドレス、シーケンシャルメモリ言葉は"によって異なる1ではなく2より
-神経固定スタック(つまり私は-私は、6800、6502でした検索のデータシートを、ドキュメントのアーチとのasmの6809と68K)
- FPは、スタックサイズとSPとの大きさを、私は重複コードしようとした避けるスタック
-index/baseアドレッシングモードは、必要な配列/ LUT処理()のデザインを複雑に、任意の代替?私はのようなKISSの方法を私の経験は、8088限られているに8051 ...

余裕がない、私はソ¥リューションをエレガントな幅のデータパスが必要な削減データパスを...美しくデザインを5月8日ビット!

 
それは建築だクールだが、私が質問を見つけることができなかったので、私はあなたの被疑者の場合は、私たちに祈るために...

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

顔は、これらのセントている私の 3:

-私は宇宙をしたいメモリ× 8ビットだけを使用フラットaddresasble 64を
-私は機能¥をアドレッシング/インデックスを憎むすべてのCPUをベースなし
-たぶんいつかは、コードを聞かせてそれが重複されます必要がありますので、大きなスタック

幸運

 
たぶん与えることに参照をするwww.opencores.orgのコアのIP。

 
指定された*の要求のコメントはパターソ¥ン修正は、*命令セットを&ヘネシー(だまさを含む多くの分野-学習すなわち後多くの本のアーチ試し版!

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

)cylcesデータパス* simplificaton *と以下のクロック:

r0の利用、- numberのレジスタ

アドレスのメモリサイズ

バイトを整列扱う?

とアドレッシング、間接の登録モードを、特に実装
絶対アドレス指定

"変位"(第のビット)のデータをお勧めします(ベース変位読み込んでいます)とコード(ジャンプ)?)必要があります心の両方が等しい(simplificatonの* *維持か?

アルゴリズム(秒)"の割り当てオペコードを良い" -

制御(DMAのは必須)CPUの任意の(追加)命令バスと

任意の他の"非常におすすめ"の命令/機能¥...

ありがとう...

////////////////////////////////////////////////// /////////////////////////////////////

1)合計64kの連想メモリ:2 ^ 16(0〜2 ^ 16 - 1)アドレス線形バイト
メモリの場所
2)16の汎用レジスタ(R0を、r1が... R15を)と別の菌

3)メモリはOマップのI /
4)16ビットPC
5)フラグ[00000000000、CFの、の、SFのは、ZFは、IF]
6)32ベクタ割り込み(0 -算数オーバーフロー,1 -無効な命令、2 -アラインメントエラー、残りマスク)
7)が格納オペランドのために読み込み/ビット-サポート8
8)16ビットのオペランドの境界でも揃えにin base displacement addressing),

9)はアドレッシングモード:)登録アドレス、アドレスベースの オフセット
としてアドレス変位が(r0の実装がされることにより、基本変位
当面のアドレッシング、レジスタ間接的絶対アドレッシング
10)すべての命令)を推奨することのいずれか16/32-bits(16ビット
11)はキャッシュは、パイプラインは、ページングおよびDMAは必要ありません命令

楽章reg16、reg16

Lw / MOV形式reg16、[reg16]

Lw / MOV形式reg16、[reg16 r0の]

南西/ MOV形式[reg16]、reg16

のSw / MOV形式[でREG r0の]、reg16、imm16は- imm16のみ読み込まれるreg16 Lwi reg16 MOV形式/

Lbu / Movzx reg16、[reg16]

Lbu / Movzx reg16、[reg16 r0の]

SBUの/ Movzx [reg16]、reg16

SBUの/ Movzx [reg16 r0の]、reg16

ポンド/ Movsx reg16、[reg16]

ポンド/ Movsx reg16、[reg16 r0の]

アンチモン/ Movsx [reg16]、reg16

アンチモン/ Movsx [reg16 r0の]、reg16reg16プッシュ

ポップreg16

Pushf

Popf

reg16追加reg16を、

imm16追加reg16を、

サブreg16、reg16

サブreg16、imm16ADCのreg16、reg16

ADCのreg16、imm16スイス連邦reg16、reg16

スイス連邦reg16、imm16株式会社reg16

12月reg16cmpはreg16、reg16

cmpはreg16、imm16テストreg16、reg16

テストreg16、imm16そして、reg16、reg16

そして、reg16、imm16またはreg16、reg16

またはreg16、imm16Xorはreg16、reg16

Xorはreg16、imm16しないreg16shlで/サルreg16、imm4

SHRのreg16、imm4

サールreg16、imm4

ロルreg16、imm4

RoRのreg16、imm4

退縮reg16、imm4

Rcr reg16、imm4コール[reg16]

コール[reg16 r0の]Retのint型imm5

には、 -オーバーフローのint 1 =の意志が呼び出された場合IretJMPの[reg16]仁/ Jzの詳細項目- ZF社= 1

JLは/ Jngeは詳細項目-平方フィート<>の

Jle / Jngの詳細項目- ZF社= 1、平方フィート<>の

バトン/ Jnaeの詳細項目- CFは= 1

Jbe / Jnaの詳細項目- CFは= 1、ZF社= 1

ジョー詳細項目- = 1

jsファイルは、さらに詳細項目-平方フィート= 1

Jne /既に他に獲得の詳細項目- ZF社= 0

DDIコマンド/ Jgeの詳細項目- SFの=の

Jnle /ヤコブソ¥ン詳細項目- ZF社= 0、SFの=の

定足数を/在の詳細項目- Cfを= 0

Jnbe /ジャ詳細項目-場合CFの= 0、ZFの= 0

Jnoの詳細項目-場合の= 0

Jnsの詳細項目-がSFの= 0CLCの

CMCの

STCはSTIの
CLIはcliNOP命令

HLTコマンド

////////////////////////////////////////////////// //////////////////////////////////
の最後の編集時に2005年6月27日8時38分;編集回数:1 umairsiddiqui合計

 
reg16プッシュ

こんにちは、
instuctionセットがよさそうだうわ。
しかし、私は操作をポッププッシュし、次のためにいけない理解が必要です。

プッシュ[reg16]
)を押す(addrに
]を押して[reg16 詳細項目

ポップ[reg16]
ポップ(addrは)
ポップ[reg16 詳細項目]

私が思うの代わりに、これらの

reg16を押す
ポップreg16
all_reg16を押す
ポップall_reg16
pushf
popf

十¥分です!

 
押して、コマンドをポップと避けることができる全体アーキテクチャは、アドレッシングモードがインクリメントされるポストはるかに強化されただけで追加する前とデクリメントします。
レジスタのような関数カウンタ専門また、ベースアドレスレジスタなどが、タスクをあなたの簡素化しない。私は通常の概念を、ソ¥フトウェアハードウェアを好む簡素化RISCアーキテクチャとしては、。
プロセッサがあります場合は、ARM今までに見たプログラマモデルとの命令セット?それを見てでください。これは、内のオペコードの実行のような条件の概念をいくつかのきちんとしたコマンドをスキップし、ように。
-9 /イェゴ

 
まず感謝のすべての士気を私高めるための撮影は本当に関心をその!

私のプロジェクトの目標は、資源をソ¥フトのCPUだったに設計IPアドレスをシミュレートし、スターターキットの使用して、FPGA上に手紙を、それを、上にあるビットされた制約監督、それが必要である(少なくとも16)とルートも場所&。内部CPUのいくつかのようにですそれが表¥示される実用性がある彼はまた、必要ないくつかの"そうインタラクティビティを"。彼はハイパーターミナルで世界をこんにちは表¥示する考えだと満足していない。アイデアは)オープンコアズ来たから氏ジョンケントの利用(System09にそれらを実行する命令を対話的にしてキーを押しての'g'を

すべてのこの原料はapril2005され、新しい圧倒的なの末尾に、それを完了する必要が

思いやりのあるアプリを示唆赤身、平均

アプリケーションのための物語を維持するの心、論理加算組み込みRISCsを行う利用が32いいですビットのフラットアドレスが、MicroBlazeは、必須IIを(-持っていない、まだ明らかにのNiosしかし、彼らは大きい間違いなく)。

RISCの場合)は%だけ比スケールダウン(と"アスペクト"100ビットアーチ16は、レジスタ少なく、スペースアップで64が終了

はい、それは、依存アプリケーションが命令では、一般的なRISCのですが、単純なdonot複雑)と可変サイズの指示を追加コード良い提供Oは密度(考慮64に沿って、メモリマップ/私は。2オペランド命令ではなく、3サイズを小さくいくつかのコード。サイズコードの実装動作を、複数の命令の増加。親指とMIP16に投稿EDABOARDの完了されていませんarchsを私の特別なモードは、16ビットRISCアーキテクチャ、またはコアに記載の操作は、以前(追加は必要ありませんアドレッシング)

したがって、シンプルでコンパクトな命令のエンコーディングが)銀行に応じて必要な例のアドレス空間(増やすいくつかの技術にコード

親切にプロトタイピングを迅速に手法を提案する、仕様を念頭に置い行った後、労働、いくつかの、例えば距離とアウトスローしてテスト(の来ているエンコーディングの命令が、私は推測しているだけ)、バスタイミングはまだ指定していない。

BISTのとDST設計(そのようなご案内私についてのテスト戦略

<img src=¥"http://www.edaboard.com/images/smiles/icon_wink.gif¥" alt=¥"ウインク¥" border=¥"0¥" />

)少なくとも[OK]を、システムとする設計作業のIPコア

何が)とページを15-20の書き込み(で、それぞれのこれらの報告書?
1)分析と設計報告書("問題"の詳細分析、"高レベルの詳細設計"、"研究方法論"、"実装とテスト戦略")
2)初期の設計と実装ドキュメント
3)最終デザインドキュメント
4)プロジェクトの最終報告書

また、ARM社の本は2ですEDABOARDとアーチを読む"のARM SoCの"私はモデルをプログラミングとできなかった見つける公式アーム命令セット
(ダウンロードの大きな本)が遅いのも問題の接続

 
ダウンロードMcGraw.Hill.VHDL.Programming.by.Example.4th.Ed.pdfボードのEDAからここすなわち。この本は、FPGAはすべてシミュレートするCPUをのVHDL 16bitの設計に関することを、アルテラと実装、それを。私は、キーボードVGAおよびビットCPUを32独自のビットのCPUを実装する私の16を使用このベースになります。

 
アーキテクチャではプロセッサバス、私は)第B.3された使用オープンコアズウィッシュボーン仕様を( - WBの古典的なバスサイクルを取得する
でオープンコアズコアからオープンソ¥ースのサポートpheripharal。

CPUのデータパスの設計は、コントローラの完全直面している私は、この問題。主にメカニズムを割り込みのためにリセットされます。

引用:3.1.1リセット動作

すべてのハードウェアインターフェイスは事前定義された状態に初期化されます。
これは、リセットで行われます

信号[RST_O]いつでも、対抗することができます。
また、テストシミュレーションの目的で使用される

すべての自己開始ステートマシン設計で使用される可能¥性がありますカウンタを初期化します。リセット信号[RST_O]はシスコンモジュールによって駆動されます。
これは、[RST_I]信号に接続されて

すべてのマスタとスレーブのインターフェイス。
図3-1は、リセットサイクルを示しています。ルール3.00

すべてのウイッシュボーンバスはならないの上昇[CLK_I]エッジで次の自分自身を初期化インターフェイス

[RST_I]の主張。
彼らがしなければならない初期化状態に上昇[CLK_I]エッジまで滞在が

[RST_I]の否定に従います。

ルール3.05

[RST_Iはならない少なくとも1つの完全なクロックサイクルのすべてのウイッシュボーンバスインターフェイス上で対抗することが]。

の同意や許し3.00

[RST_I]かもしれません1つ以上のクロックサイクルの間、と主張されるかもしれませんが無期限に対抗することが。

ルール3.10

すべてのウイッシュボーンバスはならない[RST_I]にいつでも反応する能¥力があるインターフェイス。

ルール3.15

すべての自己開始ステートマシンは、カウンタウイッシュボーンバスインターフェイスでしなければならない自分自身を初期化する

上昇[CLK_I]端[RST_I]の主張を次に示します。
彼らはしなければならないにとどまる

初期状態[RST_I]の否定を、次の上昇[CLK_I]エッジまで。RECOMENDATION 3.00

デザインシスコンように、彼らは、電源投入状態時に[RST_O]を主張するモジュール。
[RST_O]

すべての電圧レベルとシステム内のクロック周波数までアサートがままに安定している。

時なので、この仕様に準拠して同期的に[RST_O]を行うには否定。

ご意見ご3.00
いくつかの回路が機能¥を必要とする非同期リセット。場合は、IPコアやその他のSoCのコンポーネント
、非同期リセットが必要ですし、信号ウイッシュボーンバス-定義を非。これは混乱を防ぐ
と使用して純粋な同期プロトコルを持つ信号ウイッシュボーンバスリセット[RST_I]の
必要が唯一のインターフェイスウイッシュボーンバスにすることが適用されます。
気象変化3.20
すべてのウイッシュボーンバスインターフェイスは、信号リセット応答する。しかし、IPコアに接続
ウイッシュボーンバスインターフェイスは信号をリセットしませんに対応するため、必ずしも必要があります。

....タグの種類の3.1.5を使用

ウイッシュボーンバスインターフェイスは、ユーザーとの信号を定義変更することができます。
これは技術で行われる

タグと呼ばれる。
タグは、マイコンのバス業界ではよく知られて概念です。

彼らは、ユーザーが情報をアドレス、データワード、またはバスサイクルに関連付けられて定義されてことができます。

すべてのタグ信号のガイドラインタグタイプとして知られている設定に準拠する必要があります。
表¥3-1に、すべての

その関連データ設定し、信号波形と一緒に定義されたタグの種類。
時タグが

これはテーブルからタグ型が割り当てられているインターフェイスに追加しました。
これは、明示的に定義されてどのように

タグが動作します。
この情報は、ウイッシュボーンバスデータシートに含まれる必要があります。表¥3-1。
タグの種類。

---------------- ------------------- ------------ ----------------

|マスター|

---------------- ------------------- ------------ ----------------

|概要|タグタイプ|に関連付けられて表¥示|

---------------- ------------------- ------------ ----------------

|アドレスタグは、| TGA_O()| ADR_O()|

---------------- ------------------- ------------ ----------------

|データタグ、入力| TGD_I()| DAT_I()|

---------------- ------------------- ------------ ----------------

|データタグ、出力| TGD_O()| DAT_O()|

---------------- ------------------- ------------ ----------------

|サイクルタグは| TGC_O()|バスサイクル|

---------------- ------------------- ------------ ---------------- ルール3.70

すべてのユーザーがタグをしなければならないタグ型を割り当てることが定義されます。
さらに、彼らはならないに従う

タイミング仕様指定されたタグ型は、このドキュメントで指定された。

の同意や許し3.45

すべてのタグの種類は、配列として(括弧()で)、する実際のタグかもしれませんが指定されている

非アレイ信号。....
 
コアがRISCのこれは8ビットが私はあなたと思うに助けをいくつかのことの意志は、

http://www.opencores.com/projects.cgi/web/erp/overview

 
マイクロプロセッサ卿私の単純な完了に約。のModelSimのシミュレーションのため、私は
プロセッサを搭載した思考のテストに沿ってベンチを含むSRAMを(行動することがどのモデル)をお読みのテキストファイルを。
SRAMのモデル負荷バイナリ形式のコード、リセット後にプロセッサがコードを実行...(すべての最初の、?????)のテストの種類かどうかをこのベンチ`環境に十¥分な'ですサーは、私のプロセッサdonot操作を含むすべてのパイプライン、キャッシュ、複雑なメモリ管理。

私は、主に計算処理する必要がありますテスト:正しい命令機能¥(コントロールユニット)番号、および読み取り/書き込み、割り込みサイクル
機能¥....

plzは)ブロック転送をお勧めいくつかのalgosを/テストの並べ替えをコード(例えば、迅速
これは私アドレスプロセッサことが読み込むのSRAMのモデルでは、マイクロエレクトロニクスの注意
メモリは64kだと私はバージョンを無料でいます使用してModelSimの。

 
サー、
私はセッションのポスターだ混乱の結果を提示するのModelSimシミュレーションには、どのように。
のような導入内容は、他の命令セット、バスサイクル、プログラミング規則を、
フィギュアトップレベルは、データパスとの一緒にユニット、コントロールのポスターに挿入されますが
としてレポートで発表¥した。しかし、シミュレーションの結果は、画面のコンピュータのことで提示されるより
むしろ描画より/ポスターに貼¥り付ける。

サーは、上を提供してください。提案を、また、ポスターの学生を検索私はのための
関連する発行物関連すべてのプロジェクトでは、場合を見つける場合は、リンク、そのしてください送ってください。
http://www.opencores.org/projects.cgi/web/hpc-16/overview

注記:CPUのコードと16プロジェクトHPCの関連ドキュメントはの""で掲載されて
http://www.opencores.org/projects.cgi/web/hpc-16/overview

 
親切...............問題助けを借りて、このシミュレーション<img src=¥"http://www.edaboard.com/images/smiles/icon_cry.gif¥" alt=¥"クライングまたは非常に悲しい¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_cry.gif¥" alt=¥"クライングまたは非常に悲しい¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_cry.gif¥" alt=¥"クライングまたは非常に悲しい¥" border=¥"0¥" />私はに読み込ま変換このプログラムをバイナリ
RAMのモデルです。使用されるこのシミュレーションi"のtest2.vhd"(でコードを参照してくださいhttp://www.opencores.org/projects.cgi/web/hpc-16/overview )

################################
##このプログラムのテスト:
#楽章、liとHLTコマンドの手順
################################
0:5555h李r0の、
4:楽章r1が、r0の
6:楽章SPの、r1が
8:楽章r5に、SPの
10:HLTコマンド
##############################

すべての命令は、シミュレーションでは、正しく実行される...

の"test2.vhd"は、このシミュレーションのためのテストベンチ
CPUを含んでおり、RAMしか(ramNx16.vhd)。

以来、国の必要性はないそこにある待機i'have接続だけ
CPUは"stb_o"CPUのポート"ack_i"...

図の信号を考慮する
"/ test2/cpu/control/rst_i"
"/ test2/cpu/control/rst_sync"
"/ test2/cpu/control/ack_i"
"/ test2/cpu/control/ack_sync"

私は同期と同じだポスターセッションは、入力の両方...
しかし、あなたは"ack_syncをすることができます参照してくださいという"よりも2 CLKの後半
と"rst_syncは"CLKの1後半...

また
あなたは"ack_syncで"glichをすることができます参照してください...

修正方法このことができることは???

してください問題はこの助けを借りて...
申¥し訳ありませんが、添付ファイルを、この必要があります表¥示するにはログインしての

 

Welcome to EDABoard.com

Sponsor

Back
Top