Day: August 2, 2022

CynthCynth

PROGRAMMING FPGAがVerilogでFPGAをプログラムすると、プログラミングのように大きなものになります。しかし、それは少なくとも従来の意味ではありません。それをハードウェア記述言語に変換するだけでなく、Cコードを取ることを目的とするシステムがいくつかありました。これらのうちの1つ、Cynthは、GitHubで提供されるだけでなく利用できます。試してみる場合は、SCLAとSBTと呼ばれる開発システムを設定する必要があります。 もちろん制限があります。プリプロセッサが必要な場合は、別々に実行する必要があります。あなたは世界的な変数、乗算、浮き上がり、そして他の多数のCの断片を利用することはできません。コンパイラはC関数ごとにVerilogデータを生成します。 従来のCプログラムは、マルチプロセッサで特別な方法を利用しない限り、毎回1つのことを実行します。それでも、あなたがコントロールする可能性がある多くのCPUのどれだけの数のCPUにとって、正確には便利な制限があります。一方、FPGAを使用すると、並行して発生するものを実行できます。たとえば、これについて考えてください。 一方(1) { OUT1 = CTR1 ++。 OUT2 = CTR2 ++。 } OUT1の値は、値がOUT2の値の前にビットビットを変更します。あなたがこれらの多くのものを持っていたならば、OUT999と同じくらいの状態で、遅延は重要になるかもしれません。同等のVerilogコードは次のようになります。 いつも@(ポジットCLK) 始める OUT1 ...

ゲーム若い男の子カートリッジエミュレータはSTM32ゲーム若い男の子カートリッジエミュレータはSTM32

ゲームを使用しています。 [Dhole]は、Stmicroelectronics STM32F4ディスカバリーボードを使用してすべての作業を行うカートリッジエミュレータを思い付いています。これまで、多くのフラッシュカートリッジは、高速論理要件に対処するためにCPLDまたはFPGAのどちらかでプログラマブルロジックデバイスを使用しました。 [Alex]は、マイクロコントローラがArduinoを使用してカートリッジをエミュレートできることを示した。 Arduinoは、ゲームプレイに必要な高速アクセスを実際に扱うのに十分な速さではなかった。 [DHOLE] ARM Cortex-M4ベースの168 MHz STM32F4に移動することでスピードアップを蹴りました。 F4の70のGPIOピンは、最大100MHzの内周辺の内周辺を介して実行できます。これは、ゲームボーイスのバスの1MHzの時計速度に対処するためにたくさんあります。 STM32は3.3Vロジックを使用しているため、ロジックレベルは問題です。ゲームの若い男の子は5Vのデバイスです。ありがたいことに、STM32の入力は5V耐性があるので、物事はちょうど元に働いていました。 テトリスのような単純なゲーム若い男の子カートリッジは、ROMデバイスをゲーム若い男の子のメモリスペースに直接マッピングすることができました。より複雑なタイトルは、ROMのセクションをマッピングして他の業務を実行するためのメモリブロックコントローラ(MBC)チップを使用しました。さまざまなタイトルに使用されるMBCチップがいくつかありましたが、DHOLEは最大コードベースと互換性のあるMBC1をエミュレートできます。 最もクールなトリック[DHOLE]実装されている1つは、カスタマイズされたブートロゴを表示していました。ゲーム少年は「ニンテンドー」のロゴを著作権保護の方法として使用しました。カートリッジがロゴを持っていなかったら、ゲームの若い男の子は実行されませんでした。ロゴは実際に2回読み込まれます – 1回著作権情報を確認し、一度スクリーンに表示されます。最初の読み取り後にそれらのアドレスで利用可能なデータを変更するようにエミュレータに言うことによって、任意のグラフィックを表示することができます。 カートリッジエミュレータが(海賊版ゲーム以外)に役立つものがあるのか​​疑問に思うなら、あなたはチェックアウトしてください[Jeff Frohwein’s] GameBoy Devページ! ...