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