AhXfR[_ƎI/OfoCX
AhXoXƃAhX
vZbT̃XCb`AɃANZXƂɂ́A AhXoXɂāAANZXw肷̂łB (3ڂ̎eQ) ̍ہAǂ̃foCXɃANZX悤ƂĂ̂A AhXoXǂݎAANZXΏۂ̃foCXɎw HKvɂȂ܂B ̂悤ȉHAhX fR[_ (address decoder)ƌĂт܂B AhXfR[_́AAhXoX̒lA ANZXΏۂ̑IMoƂɂȂ܂BCPU{[hI/OfoCX̃AhXfR[_
CPU{[hɂ́AXCb`(8)ALED(8)A7ZOgLED(4)A SRAMƂI/OfoCXڂĂāAꂼÂ悤 AhXԂɃ}bsOĂ̂łBAhX̒l | ANZXfoCX |
0x2000 - 0x3fff | SRAM |
0x4000 - 0x4003 | 7ZOgLED |
0x4004 | XCb`(8) |
0x4005 | LED(8) |
74AHC138́AG1=1, /G2A=0, /G2B=0, ̂Ƃ̂݁A A, B, C32iƂ݂ȂA̒lɑΉY0`Y7 ꂩ݂̂0ɂȂAƂ@\Ă܂B (G1=1, /G2A=0, /G2B=0̂ƂȊÓAY0`Y7ׂ͂1ƂȂ)
2‚74ACH138pāA킹ăAhXfR[h Ă邱Ƃɒӂ܂傤B ႦSRAMANZXΏۂƂȂ邱ƂMł CSRAMn0(_)ƂȂ̂́A A15=0, A14=0, A13=1̂ƂAłA AhXoX̂悤ɂȂl͈̔͂́A u0x2000`0x3fffvƂƂɂȂ܂B A12`A0́Â܂SRAMɂ‚ȂĂ܂B Ȃ킿AAhXoX̏3{(A15`A13)ɂSRAMIA SRAM̒ŃANZXꏊ́AA12`A0ɂĎw邱Ƃ Ȃ܂B
フロッピーディスクが書き込み保護されていたらどう
K4-1
CPU{[hŁAXCb`ALEDA7ZOgLEDAꂼ L̂悤ȃAhXԂɃ}bsO闝RlĂ݂܂傤B ܂A͗ႦXCb`0x4004łȂA0x5004ȂǂɃANZXĂ XCb`ւ̃ANZXN邱ƂɂȂ܂B Ȃ킿CPUɂƂẮAXCb`ʂ̃AhX 2g(ȏ)悤Ɍ܂Aۂɂ͓̂ ANZX邱ƂɂȂ܂B (̂悤ȌۂVhE(shadow)ƌĂт܂) ̂قɁAǂ̂悤ȃAhXŃANZXł邩lA ۂɃANZXvOœmFĂ݂܂傤Bqg: 2iōlƂ킩₷ł傤B ‚܂AAhXfR[_ɂ‚ȂĂȂAhXoX̒ĺA CPUʂĂAAhXfR[_ɂ͖WłB Ȃ킿A̒l0ł1łAAhXfR[_̏o͂ł CSSWnȂǂ̒lɂ͖WƂƂɂȂ܂B
OoXpI/OfR[_
OI/Ou(0x6000-0x6fff)ւ̃ANZXAL AhXfR[_ɂĂ‚CSEXTnƂM ܂B ۂɂ́ACPŨAhXoXEf[^oX́A CSEXTn=0̂Ƃ̂݁ARlN^CN-AɓdCIɐڑĂ܂B Ȃ̓dCIȐڑ́AH}̃obt@IC (74HCT541(PDF), 74HCT245(PDF))ɂĎĂ܂B l̓f[^V[gǂł݂܂傤Bo̓foCX̐v
CPU{[h̃RlN^CN-Aɂ́Aقǂ̉H}̂悤 AhXoXAf[^oX̂قɁACPU݁Eǂݏo sƂɂꂼ0ƂȂWRn, RDn‚ȂĂ܂B ̃RlN^CN-AAFPGA{[h̃RlN^ɉ̐}̂悤 tbgP[uŐڑAFPGACPUANZX"\I/OfoCXƂ Ƃł܂B ȂtbgP[úA{[h́}[N(1ԃs)ǂ‚Ȃ悤 ɂ邱ƁB̎̑OŐvFPGẢHł́A A[0]`A[7], A[12]`A[15]ƂMŃAhXoXA D[0]`D[7]ƂMŃf[^oXA WRn, RDnƂMłꂼWRn, RDnA ꂼCPU{[h̐MƐڑ邱Ƃł܂B (CN-Ãs̐AA[8]`A[11]͊OɐڑĂ܂)
̐MgāACPUOI/OAhXԂɃANZX ƂɁA삷I/OfoCX邱Ƃł܂B ƂāACPU{[hAAhXԓ0x60f0ɃANZXƁA FPGA{[hLED8(܂7ZOgLED)̓_ł𐧌łI/OfoCX vĂ݂邱Ƃɂ܂傤B ȂFPGẢHv́AH}AVerilogHDL̂ǂł܂܂A łVerilogHDLLqp邱Ƃɂ܂B
̉HVerilogHDLŋLqƁÂ悤ɂȂł傤B
ここで、iは、無料のネクステルI90携帯電話を取得することができます
module sample(A, D, RDn,WRn, LED); input [15:0] A; input [7:0] D; input RDn, WRn; output [7:0] LED; reg [7:0] LED; always@(posedge WRn)begin if ({A[15:12],A[7:0]} == 12'h6f0) begin LED AhXoX̂A[11]`A[8]FPGA{[hɐڑĂ܂A ̒lāAc12{̃AhXoXłA[15]`A[12] A[7]`A[0]݂̂păAhXfR[h邽߂ɁA {}pẴAhXoX݂̂悤ɂĂ܂B ̗ł́A{A[15:12],A[7:0]}0x6f0A Ȃ킿AA[15:12]=0x6AA[7:0]=0xf0ƂȂ邱Ƃ ƂďĂ܂B Ȃ݂A[11]`A[8]́Al0ƂȂ邩1ƂȂ邩͕s(ꍇɂ قȂ)̂ŁA̒l0܂1Ɖ肵 AhXfR[ĥׂ͔łBȂmodule̓o̓|[g̋Lqɂ́ẢHł͗pȂ CPUǂݏosƂɗpRDn܂܂Ă܂A ̋Lq͍폜Ă͂܂ (LqȂƁARpCɁÃsFPGA GNDɌŒ肳Ă܂)B
K4-2
VerilogHDLLqɂāAOq̂悤ȏo̓foCX 闝R𗝉A̓mF܂傤B Ȃ̓mF̍ۂɂ́ACPŨvOɂ CKv܂B (FPGA{[hɍ쐬AAhX0x60f0Ɋ蓖ĂĂ o̓foCXɒlނƂŁAFPGA{[hLED _邱ƂɂȂ܂B)܂̏o̓foCXAOI/Oԓ̕ʂ̃AhX }bsOĂ݂܂傤B Ȃ킿Aʂ̃AhXAƂCPU0x60e0ɏ݂ LED̓_p^[𐧌ł悤ɁA CPŨvOAFPGẢH̑oύXĂ݂܂傤B
̓foCX̐v
CPU{[hւ̓̓foCXAقǂ̏o̓foCXƓl vł܂B ̓foCX́AANZXĂƂȊÓA f[^oXu쓮vAȂ킿0܂1̒lo͂Ă͂܂B ANZXĂȂfoCXf[^oXu쓮vĂ܂ƁA f[^oXŐḾuՓˁvNAlsƂȂ邾łȂA ꍇɂ01̈荇NACMOSH̏ꍇ H̔jNĂ܂܂Bœ̓foCX́AANZXĂȂԂł́A f[^oX藣悤ɂ܂B ́u藣v́AۂɂCs[_XƂ ܂B ́A̓foCX̃f[^oX̏o͂ƁAf[^oXA ɍCs[_X(R)ŐڑꂽԂ̂ƂŁA AdCIɐ藣ꂽԂɂȂ܂B ̍Cs[_XԂ́AVerilogHDLł"Z"ƂlƂ ႦΎ̂悤ɋLq܂B(high impedance = HiZ)
私は確認することができますどのように私のハードドライブが完全にクリーンです。assign D = (CS==1 && RDn == 0)?(Dint):(8'bZZZZZZZZ);ɂAf[^oXD[7:0]́AANZXΏۂƂđIꂽƂ AhXoX画f1ƂȂCS (Chip Select)1̏ꍇŁA ‚̃AhXɑǂݏoN(RDn=0)Ƃ̂݁A f[^oXDint[7:0]ɐڑAȊȌꍇ8rbgZ(erbg Cs[_X)ɂȂ܂B CSḾA̓Iɂ́Aقǂ̏o̓foCX̏ꍇ lɁAAhXoX̒lfR[hāAW[ M(wire)Ƃč쐬܂BȂ?:p\L@CłĝŁA g悤ɂĂƂȂ֗łB
()?(藧‚Ƃ̒l):(ȊÔƂ̒l)
?^╶̃NGX`}[NƓǂނƁA₷ł傤B
܂Cs[_XH}ɂHvŗpꍇ́A primitives̒"tri"pƂ悢ł傤B (tríAtri-state buffer̗ŁAo͂0, 1, Z3‚̒l Ƃ邱Ƃł邱ƂA̖O܂)
ȂۂɉH‚Ƃɂ́ACPU̓ǂݏoɁA f[^oXɐڑׂl(L̗łDint)ƁA ̏(L̗łCS)̂Ƃɂ́A̓Iȃs_ LqKv܂B
K4-3
CPU{[h0x60f1ɃANZXFPGA{[h XCb`4‚̒l擾ł̓foCXvAFPGAɓ]A CPUANZXēmFĂ݂܂傤B FPGẢHv́AH}AVerilogHDL̂ǂł܂܂B ܂FPGA{[h̃XCb`4‚ł̂ŁA ႦD[0]`D[3]gƂ悢ł傤B (RłCPŨvOA̓̓foCX̒lǂݎ悤 CKv܂) ܂ʂ̃AhXɃ}bsOĂ݂܂傤BȂ̂ƂAقǂ̏o̓foCX(WRnɉē삷H)ƁA ̓̓foCXHɋLqƁAf[^oXA ݎƓǂݏoœo͂ւKv܂B ̂߁Ao̓foCXLqɃf[^oX(FPGAɂƂ)o͐p 邩A邢͌q̂悤ɁAf[^oXA͂Əo͂ւ 悤inout^Œ`悤ɂ܂B
o̓foCX̐v
͂Əo͂ւfoCXv邱Ƃł܂B ႦRAḾÃAhXɑāARDn=0ƂȂƂ͓ǂݏoA WRn=0ƂȂƂ͏݂sƂł܂B ̂悤ȏꍇ́AI/OfoCX̃f[^oXƂ̐ڑ[q VerilogHDL̏ꍇ́A͂ɂo͂ɂȂ[qł"inout"Ƃ 錾ĂA̒lAANZXɉĐւ悤ɂ܂B Ⴆ0Ԓn`3Ԓñ4oCgRAM (CPU猩AhX0x6000`0x6003)́A ̂悤ɋLq邱Ƃłł傤B (moduleCS̐͏ȗĂ܂)inout [7:0] D; input [15:0] A; reg [7:0] ram[3:0]; wire [1:0] addr; assign addr = A[1:0]; // address for specifiing the location in RAM assign CS = ...; assign D = (CS==1 && RDn==0)?ram[addr]:8'bZZZZZZZZ; always @(posedge WRn) begin if (CS == 1) begin ram[addr] Ȃ̏ꍇCŚARAMւ̃ANZXĂ邱ƂMA Ȃ킿AAhXoX̒l0x6000`0x6003̂ꂩɂȂĂ邱Ƃ MAƂƂɂȂ܂B āAAhXoX̒l͈̔͂̂ƂɁA AhXoX̉2rbgA[1:0]pāARAM4oCg̏ꏊ w肷邱ƂɂȂ܂B̂ƂɒӂACS̐ɂāAAhXoX̂ǂ̕ ɉ邩悭lĂ݂܂傤B
K4-4
KȃTCYRAMvĎACPU{[hANZX ǂݏ̓mFĂ݂܂傤BႦAL̂悤4oCgRAM0Ԓn`3Ԓn(CPU猩AhX 0x6000`0x6003)̂ꂩɁACPU{[hSW̒l݁A ܂ǂݏoLEDŕ\A邢́A RAMɓKȒlރvOƁA ̒lǂݍCPU{[hLED7ZOgLED \vOɎsARAMւ̓ǂݏ słĂ邱ƂmF悢ł傤B
̂ƂA݂ĂɓǂݏoƁAFPGAɍRAM̓삪 ǂ‚ȂƂ悤łB AEZUSB_Delay(1);ŏ܂ƁA ǂݏoق悢悤łB
These are our most popular posts:
ゲームポート - Wikipedia
ゲームポートはx86ベースのパーソナルコンピュータ(パソコン)にビデオゲーム用の入力 デバイス(ゲームコントローラ)を接続する ... ゲームポートはDA-15コネクタ(DB-15と 誤って呼ばれている場合もある)を採用しており、余剰の端子にMIDI信号も配線されて いる ... のようなインタフェースはプログラマが扱うのが容易であるのに対して、ゲーム ポートは注意深くプログラムする必要があり、入力を ... システムと通常のデジタル (TTL) ジョイスティックポートを比較するなどを行うゲームポートの読み出しに著しくCPU時間を 消費し、 ... read moreUSB デバイスに関する問題を解決するためのヒント
コンピューターに接続されているハードウェアが正しく動作しない場合、ドライバーの問題 が原因となっていることがよくあります。USB デバイスを ... このような場合は、デバイス の製造元の Web サイトでドライバーを探すことができます。多くの ... 管理者の パスワードまたは確認を求められた場合は、パスワードを入力するか、確認情報を提供 します。 read more仮想マシンの構成について「ハードウェア」
CPU. 仮想マシンの CPU 設定を表示および編集するには、[仮想マシン構成] ダイアログ ボックスの [CPU] ペインを使用します。 ... このメモリの必要な値を設定するには、 スライダをドラッグするか、[メイン メモリ] フィールドに値を直接入力します。 ... Parallels Toolsがインストールされている場合は、使用しているコンピュータの画面解像度に 変わる。 ... 接続するデバイスを [CD/DVD-ROM] の一覧から選択して指定します。 .... 仮想マシンは、ホスト コンピュータでどのようなネットワーク接続が使用されていても 共有できます。 read moreCPU - Wikipedia
... する部分である。 このようなCPUを用いたプログラムによるコンピュータの逐次動作が ほとんどのコンピュータの基本的な動作原理となっている。 .... たとえば、加算を要求され ている場合、ALUが所定の入力と接続され、出力と接続される。入力は加算すべき ... read more
0 コメント:
コメントを投稿