該FPGA ROM仿真器極大地加快了具有基于ROM的存儲的計算機上軟件開發(fā)的速度。它將模擬任何兼容28c256的ROM芯片。通常,加載新代碼的過程包括關(guān)閉計算機電源,物理上刪除ROM,將ROM放入編程器中,刷新代碼,然后將ROM返回計算機并重新上電。當(dāng)測試頻繁,對代碼的微小更改或調(diào)試問題時,此過程非常耗時且麻煩。這種基于FPGA的仿真器可以保持與計算機的連接,并在幾秒鐘內(nèi)重新編程,而無需關(guān)閉計算機電源。只需對仿真器重新編程,然后單擊CPU重置按鈕即可運行新代碼。
RapidROM具有15位地址總線,8位數(shù)據(jù)總線和芯片使能信號。將地址輸入線連接到計算機的地址總線。同樣,將數(shù)據(jù)輸出線連接到計算機的數(shù)據(jù)總線(當(dāng)芯片使能較高時,數(shù)據(jù)線設(shè)置為高阻抗)。將芯片使能引腳連接到ROM芯片使能線(低電平有效)。
當(dāng)?shù)刂贩诺降刂房偩€上且芯片使能為低電平時,RapidROM將在40納秒內(nèi)將相應(yīng)的數(shù)據(jù)值放到數(shù)據(jù)總線上。
其中包含一個方便腳本(build.sh),該腳本將使用DASM編譯6502匯編文件,然后(通過bytes_list.py輸出)以逗號分隔的代表程序的字節(jié)值列表。字節(jié)列表插入在bram_generator.py的頂部,該輸出輸出BRAM初始化代碼以將程序存儲在FPGA存儲器中。復(fù)制此輸出并將其粘貼到注釋行之后的top.v中。用top.v刷新TinyFPGA,新程序即可運行。// Insert BRAM definitions after this point.
您可以選擇使用test_emulator.py來通過Raspberry Pi或類似工具驗證RapidROM的安裝。它將測試每個地址,并根據(jù)實際結(jié)果驗證預(yù)期結(jié)果。
材料清單: 1個TinyFPGA BX 、根據(jù)計算機的電壓水平,您可能需要邏輯電平轉(zhuǎn)換器(TinyFPGA在3.3V電壓下運行、 雜線。