新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的8085A CPU結(jié)構(gòu)分析與實(shí)現(xiàn)

基于FPGA的8085A CPU結(jié)構(gòu)分析與實(shí)現(xiàn)

作者: 時(shí)間:2011-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

1 引 言

微型計(jì)算機(jī)原理幾乎是所有理工科類(lèi)大學(xué)生的必修課目之一, 其重要性不言而喻。然而大多數(shù)教學(xué)側(cè)重于應(yīng)用方面, 對(duì)計(jì)算機(jī)的結(jié)構(gòu)及工作原理涉之不深, 因?yàn)闊o(wú)法做一個(gè) 來(lái)演示。這樣學(xué)生不能真正了解其性能特點(diǎn), 掌握內(nèi)部結(jié)構(gòu), 在學(xué)習(xí)匯編語(yǔ)言的時(shí)候增加了難度, 影響學(xué)習(xí)興趣。隨著可編程邏輯器件的廣泛應(yīng)用, 給數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性, 用戶(hù)可以利用現(xiàn)場(chǎng)可編程門(mén)陣列 來(lái)開(kāi)發(fā)出一個(gè)適合自己的專(zhuān)用, 對(duì)微型計(jì)算機(jī)的原理及結(jié)構(gòu)進(jìn)行充分理解與研究, 便于將來(lái)從事相關(guān)ASIC設(shè)計(jì), 開(kāi)發(fā)出創(chuàng)新型的產(chǎn)品, 為我國(guó)計(jì)算機(jī)發(fā)展做貢獻(xiàn)。

現(xiàn)場(chǎng)可編程門(mén)陣列 門(mén)數(shù)眾多, 人們可以將合適的IP軟核或其他形式的核作為嵌入式模塊裝在自己的設(shè)計(jì)中。但通常IP軟核需要門(mén)數(shù)較多的 器件支持, 作為學(xué)習(xí)來(lái)說(shuō)的FPGA 芯片往往資源有限, 需要節(jié)約FPGA 的成本與面積; 并且沒(méi)必要實(shí)現(xiàn)所有功能, 只要做出關(guān)鍵部分及重要結(jié)構(gòu),明白其運(yùn)行機(jī)理, 又能與真實(shí)的 緊密相聯(lián)即可。實(shí)驗(yàn)箱上采用的FPGA 芯片為A ltera 公司的EPF10K20TC144- 4。這里以Inte l的 為例來(lái)說(shuō)明8位計(jì)算機(jī)的工作原理。

2 CPU 設(shè)計(jì)及實(shí)現(xiàn)

2. 1 FPGA 芯片及外圍電路簡(jiǎn)介

A ltera的FLEX10K 器件是工業(yè)界首例嵌入式PLD, 基于可重配置CMOS SRAM 元件。EPF10K20帶有144個(gè)LAB (邏輯陣列塊) 和1152 個(gè)邏輯單元, 最大I/O數(shù)目為189。另外, 芯片中嵌入式陳列塊( EAB)有6個(gè), 其RAM 總位數(shù)為12288。

實(shí)驗(yàn)涉及到FPGA 芯片的外圍部分包括控制開(kāi)關(guān)、2* 8鍵盤(pán)輸入、6個(gè)數(shù)碼管輸出、8個(gè)輸入端口、8個(gè)輸出端口及2個(gè)中斷開(kāi)關(guān)等。主要用來(lái)增添程序設(shè)計(jì)的靈活性及形象性, 使其可現(xiàn)場(chǎng)調(diào)試, 驗(yàn)證結(jié)果, 避免單純用軟件仿真的不足。外圍電路控制模塊及結(jié)構(gòu)可參見(jiàn)文獻(xiàn)[ 1] 。

現(xiàn)場(chǎng)調(diào)試時(shí)可以通過(guò)控制開(kāi)關(guān), 手動(dòng)從鍵盤(pán)輸入相應(yīng)的地址及數(shù)據(jù)(通過(guò)數(shù)碼管顯示), 輸錯(cuò)可以修改; 用寫(xiě)使能開(kāi)關(guān)給RAM 寫(xiě)入相應(yīng)程序。當(dāng)輸入完所有程序后, 按下運(yùn)行開(kāi)關(guān)即可執(zhí)行程序, 在數(shù)碼管上顯示地址、數(shù)據(jù)及最終結(jié)果。控制開(kāi)關(guān)用于配合鍵盤(pán)通過(guò)手動(dòng)方式輸入程序, 可以形象化的現(xiàn)場(chǎng)編程。在軟件下載后不使用計(jì)算機(jī), 通過(guò)按鈕、鍵盤(pán)就能將程序輸入到RAM 中, 然后運(yùn)行, 顯示出結(jié)果。

2. 2 CPU模塊

2. 2. 1 內(nèi)部結(jié)構(gòu)

CPU 模塊的內(nèi)部結(jié)構(gòu)如圖1所示。微型計(jì)算機(jī)由下面幾個(gè)部分組成: 8位通用寄存器H、L, 16位程序計(jì)數(shù)器( PC ) , 16位堆棧指示器( SP), 一個(gè)加1 /減1 地址鎖存器( ADD /ADR ), 8 位NL 寄存器( NL) , 8位中斷時(shí)間寄存器( T IMER ) ; 算術(shù)邏輯單元(ALU ), 累加器(A ), 標(biāo)志寄存器( FR ), 數(shù)據(jù)選擇器( SEL) ; 指令寄存器( IR) , 控制器( CON ) , 4選1多路選擇器(MUX) , 存儲(chǔ)地址寄存器(MAR ) , 8 位數(shù)據(jù)寄存器(MDR) ; 輸入數(shù)據(jù)寄存器( INDT ), 輸出數(shù)據(jù)寄存器( OUTDT )等部分組成。其中標(biāo)志寄存器有4位, 分別是: 進(jìn)位位( Cy)、零位( Z)、符號(hào)位( S)、奇偶位( P) , 微機(jī)通過(guò)檢測(cè)這些標(biāo)志位的1位或多位來(lái)判斷程序是否需要轉(zhuǎn)移。

微型計(jì)算機(jī)CPU 結(jié)構(gòu)圖
微型計(jì)算機(jī)CPU 結(jié)構(gòu)圖
圖1 微型計(jì)算機(jī)CPU 結(jié)構(gòu)圖

圖中字母L為數(shù)據(jù)載入控制信號(hào), E 為三態(tài)輸出選通信號(hào), clk為時(shí)鐘信號(hào), c lr為清零信號(hào), W 為數(shù)據(jù)載入PC信號(hào), Cpc為控制PC 加1信號(hào), S3- S0為控制ALU 進(jìn)行加減、邏輯運(yùn)算或移位運(yùn)算的選擇信號(hào), Iadr、Dadr為加1 /減1地址鎖存器加1減1控制信號(hào), Isp、Dsp為堆棧指示器的加1減1 控制信號(hào), E ram、W ram 為讀寫(xiě)RAM 控制信號(hào)。另外, 累加器(A ) , 標(biāo)志寄存器( FR )增加了專(zhuān)用的清零信號(hào)。

所有的控制、時(shí)鐘及清零信號(hào)由控制器( CON)模塊給出, 而CON 模塊由外部時(shí)鐘clkin、清零信號(hào)rst及使能信號(hào)enable 控制。存儲(chǔ)地址寄存器(MAR )用來(lái)給RAM輸送地址, 從RAM 讀指令和數(shù)據(jù), 也可以給RAM寫(xiě)數(shù)據(jù)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 8085A FPGA CPU 結(jié)構(gòu)分析

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉