基于FPGA的簡易微型計算機結構分析與實現
2.2 多路選擇器方式
多路選擇器方式是對總線方式的一種改進,可以實現地址總線與數據總線分離,一條指令的執(zhí)行只需4個機器節(jié)拍,極大地提高了運行速度。對圖1進行略微改變,如圖3所示。其中程序計數器模塊duolu_PC及指令寄存器模塊duolu_IR不再有三態(tài)門,對其控制也相應簡化。增加了2個二選一多路選擇器。下面介紹其工作原理。
狀態(tài)s0(第1節(jié)拍)時,首先判斷有沒有加減法指令,若有則發(fā)出控制信號,PC值同時送入MAR。如控制字順序為ErLrS3S2 S1S0EuLm LbEaLaEi LiCpEpLp,有加法時,其控制字為“0000 1011 0010 0010”,當S3S2S1S0為0001”時做加法運算;沒有加減法時則控制字為0000 0001 0000 0010”。狀態(tài)s1時,PC值加1,將存儲器單元中的內容讀人到IR,其控制字為“1000 0000 0000 1100”,注意當給程序計數器置數時,Lp才為l,多路選擇器選通由IR米置數。狀態(tài)s2和s3與總線方式的第4和第5節(jié)拍類似。整個周期可簡化為判斷與置地址、讀數、判斷與置地址、讀數4個步驟。
這里的多路選擇器方式僅僅是略微改變,不是指全部,只是提出一種方法。
2.3 功能描述方式
功能描述方式是指充分利用VHDL語言的行為描述能力,從功能描述的角度來實現簡易微型計算機。除了調用ROM模塊及OUTREG、DLEDDIS、DECL7S外,其余子模塊被包含在一個整體C_SIM_CPU模塊內,每一個狀態(tài)實現一定的功能。同樣,C_SIM_CPU模塊只需4個狀態(tài)即可實現相應功能。部分程序如以下所示,不再采用控制字的方式。
C_SIM_CPU模塊由于強調實現功能,其語句不同用戶有著不同寫法,不同的綜合軟件也會生成不同的結構,因而這里不再展開討論。
2.4 3種方式比較
用QuartusⅡ4.0對總線方式、多路選擇器方式及功能描述方式分別進行編程下載,都可以實現一些簡單的計算程序,在數碼管上顯示出地址及相應結果。如果采用1 Hz的clkin頻率,動態(tài)掃描頻率單獨用1 kHz時,可以清楚地看到每一過程。
QuartusⅡ4.0對總線方式、多路選擇器方式及功能描述方式編譯,其LE(邏輯單元)分別為:232、206、143。功能描述方式資源利用最優(yōu),但結構復雜。多路選擇器方式優(yōu)于總線方式,不僅是在資源利用上,還是在執(zhí)行速度上。當然,總線方式對于模塊的擴展方面要強于多路選擇器方式。
如果想更深入了解其內部結構,可以使用Synplifypro軟件觀察這3種方式的RTL電路及門級電路。用Synplify pro軟件進行綜合,顯示所需的LE比QuartusⅡ4.0更少。
3 結束語
微型計算機的原理及結構一般不易理解掌握,利用FPGA來學習并構建一個簡易微型計算機無疑是一個好方法,對EDA的軟硬件學習也是一個不錯的選擇,可為將來進行相關ASIC沒計打下良好的基礎。
評論