《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的8085A CPU結構分析
基于FPGA的8085A CPU結構分析
elecfans
摘要: 現場可編程門陣列FPGA 門數眾多,人們可以將合適的IP軟核或其他形式的核作為嵌入式模塊裝在自己的設計中。但通常IP軟核需要門數較多的FPGA 器件支持,作為學習來說的FPGA 芯片往往資源有限,需要節約FPGA 的成本與面積; 并且沒必要實現所有功能, 只要做出關鍵部分及重要結構,明白其運行機理,又能與真實的CPU 緊密相聯即可。實驗箱上采用的FPGA 芯片為Altera 公司的EPF10K20TC144- 4。這里以Inte l的8085A 為例來說明8位計算機的工作原理。
關鍵詞: FPGA 8085A EPF10K20 Synplify
Abstract:
Key words :

    1 引 言

  現場可編程門陣列FPGA 門數眾多,人們可以將合適的IP軟核或其他形式的核作為嵌入式模塊裝在自己的設計中。但通常IP軟核需要門數較多的FPGA 器件支持,作為學習來說的FPGA 芯片往往資源有限,需要節約FPGA 的成本與面積; 并且沒必要實現所有功能, 只要做出關鍵部分及重要結構,明白其運行機理,又能與真實的CPU 緊密相聯即可。實驗箱上采用的FPGA 芯片為Altera 公司的EPF10K20TC144- 4。這里以Inte l的8085A 為例來說明8位計算機的工作原理。

  2 8085A CPU 設計及實現

  2. 1 FPGA 芯片及外圍電路簡介

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

  實驗涉及到FPGA 芯片的外圍部分包括控制開關、2* 8鍵盤輸入、6個數碼管輸出、8個輸入端口、8個輸出端口及2個中斷開關等。主要用來增添程序設計的靈活性及形象性, 使其可現場調試, 驗證結果, 避免單純用軟件仿真的不足。外圍電路控制模塊及結構可參見文獻[ 1] 。

  現場調試時可以通過控制開關, 手動從鍵盤輸入相應的地址及數據(通過數碼管顯示), 輸錯可以修改; 用寫使能開關給RAM 寫入相應程序。當輸入完所有程序后, 按下運行開關即可執行程序, 在數碼管上顯示地址、數據及最終結果??刂崎_關用于配合鍵盤通過手動方式輸入程序, 可以形象化的現場編程。在軟件下載后不使用計算機, 通過按鈕、鍵盤就能將程序輸入到RAM 中, 然后運行, 顯示出結果。

  2. 2 CPU模塊

  2. 2. 1 內部結構

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

  微型計算機CPU 結構圖

  圖1 微型計算機CPU 結構圖

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

  所有的控制、時鐘及清零信號由控制器( CON)模塊給出, 而CON 模塊由外部時鐘clkin、清零信號rst及使能信號enable 控制。存儲地址寄存器(MAR )用來給RAM輸送地址, 從RAM 讀指令和數據, 也可以給RAM寫數據。Altera公司的EPF10K20TC144 - 4 芯片中有6個嵌入式陳列塊, 其RAM 總位數為12288。這里RAM 可配置為1024 * 8( 1024個地址, 8位數據) ,直接調用參數可設置模塊庫中LPM _RAM _ IO 的LPM_FILE 文件, 用文本編輯器編輯m if文件來初始化數據。如果不用FPGA 的內部RAM, 可外接64K的8位RAM, 即尋址空間為64K。

  2. 2. 2 指令系統

  內部工作原理和指令系統緊密相聯。本微機共有54條指令, 可分為8類, 即數據傳送指令、算術與邏輯運算指令、移位指令、增量與減量指令、堆棧操作及中斷指令、轉移指令、子程序調用及返回指令、其它指令等。指令系統與8080 /8085的指令系統表基本一致, 標志位的變化(無輔助進位位) 與其相同, 可參見文獻。

  由于資源所限, 沒有使用8085A 所有的寄存器及某些功能, 如B、C、D、E 寄存器等, 但是這并不妨礙本微機能夠實現其絕大多數功能。從時鐘周期數(狀態數)來說, 比8085A 更少, 也就是說速度更快。

  數據傳送指令有14條(一個n表示一個8位二進制數據): 3個狀態數的movah (將H 的內容存入A )、movha、mov la(將A 的內容存入L)、mova;l 4狀態的mvian(將數據n存入A)、mv ihn、mv iln、mvitn(將數據n 存入t ime寄存器, 此指令為新增) ; 5 狀態的movma(將A 的內容裝入HL所指的地址)、movam; 4狀態數的sphl(將HL寄存器的內容裝入SP); 6狀態的inn( n所指地址的內容給A )、outn; 4狀態的cd _out(A內容給PC+ 1, 停機, 此指令為新增)等。

  算術與邏輯運算指令有13 條: 3 狀態的cmc( Cy符號取反)、stc( Cy置1) 、cma(寄存器A 內容取反); 4狀態的addh(將A 與H 相加后給A )、adin(將A 與n相加后給A)、subh、su in、cmph(將A 與H相比較(只影響符號) )、ADCh(將A 與H 及符號Cy相加后給A )、sbbh、anah(將A 與H 寄存器的內容相與后給A )、orah、xrah(將A 與H 異或后給A )等。

    移位指令有4條, 同8085A。增量與減量指令有4條, 只針對H、L寄存器。堆棧操作及中斷指令有8條: 7 狀態的pushh( HL 壓入堆棧)、pushp( AF壓入堆棧); 6狀態的poph、popp; 8狀態的rsta(重新啟動); 3狀態的etim e( T 寄存器使能, 此指令為新增)、eint(中斷使能)、d int等。轉移指令有5條: 7狀態的jmpn(無條件轉移至程序nn, 低位在前); 不跳轉時5狀態, 跳轉時7狀態的jnn( Z= 1時轉移至程序nn)、jcn、jmn、jpen等。子程序調用及返回指令有2條: 11狀態的calln (保留當前PC, 轉移至程序nn, 低位在前)、7狀態的ret(返回)。其它指令有4條: 3狀態的nop、c lRF(標志寄存器清零, 此指令為新增)、clrA (A 清零, 此指令為新增)、hlt等。

  狀態數的計算, 若本次指令的前面一指令為3狀態數時, 本指令將會減少1 狀態。如: movha,adin; 若第1指令movha前沒有其它3 狀態指令時,它是3個狀態, 而adin會減少1狀態, 由原來的4狀態變為3狀態。再如: mov la, movha; 則后一狀態由3狀態變成2狀態。其余類似(但不包括rsta)。

  2. 2. 3 工作原理

  由圖1可知, 不同的子模塊一共有20個, 每個模塊用VHDL程序來實現, 最后用元件例化語句構成總模塊。下面以設計算術邏輯部件模塊c_alu及控制模塊c_con為例簡要介紹一下思路。

  ( 1)算術邏輯部件c_alu。

  算術邏輯部件c_a lu非常占用FPGA的邏輯單元log ic cells, 需要盡量優化。S3- S0為控制ALU 進行加減、邏輯或移位運算的選擇信號, 一共可得到16種運算, 這里用了13種: 6種算術、3種邏輯運算和4種移位指令。如加法、減法、加1、減1、帶符號位加法、帶符號位減法; A 或B、A 與B、A 異或B; A 左移、A右移、A 帶Cy 左移、A 帶Cy右移等。另外, ALU 的運算直接影響到符號位的變化, 運算結果存入標志寄存器( FR)。有關alu的運算多為4個狀態。

  ( 2)控制模塊c_con。

  占用FPGA 的邏輯單元log ic ce lls最多的是控制模塊c_con。在參考文獻[ 3] 中的思路不再適合于稍大型的CPU 設計, 但它是理解如何控制CPU 信號的一個起點。對于一條指令應該細化到每一個步驟及每一位, 而不再是以一個控制字的方式去實現。以指令movah為例, 首先把PC 值送入MAR 寄存器, 此為狀態s0, 這時起作用的是Lmar; 然后在狀態s1時, PC值加1, 將存儲器單元中的內容讀入到IR, 這時Cpc、E ram、Lir起作用, Lmar不再起作用, 需要置0; 接著在狀態s2時, 對IR 寄存器中的指令進行譯碼, 所有的操作指令都是在此狀態譯碼(不包括rsta)。對于3狀態指令, 不保存指令, 直接執行, 然后跳轉到狀態s1。因此對于下一條指令來說, 其狀態數減1。

  指令中狀態數最多的是子程序調用ca lln指令。

  C alln指令要保存PC 值到SP- 1及SP- 2中, 然后跳轉到子程序。考慮到返回指令ret執行后, PC 要重新在原位置執行, 那么存入SP中的PC 值應該是在得到其指令后加3。對PC 進行單獨加3是一種思路, 但需要另外耗費資源, 并且增加狀態。這里采用了先把ca lln后的nn存入16位的加1 /減1 地址鎖存器, 然后保存PC 到SP, 再將nn 賦值給PC, 跳轉到子程序的方法。返回指令ret不僅可以用作子程序調用后的返回, 還可用于中斷的返回。

  2. 3.. FPGA 實現及編程思路

  由于使用內部RAM, 其地址空間為0000 -03FFH。通常在00H 中放入28 (即jmpn, 跳轉指令) , 將程序跳轉到從40H 開始。把03- 0EH 作為放常用變量的空間, 用inn及outn指令來調用, 以解決寄存器不足的缺陷。這也是一種編程思路, 可參見文獻[ 4] 。0FH、1FH、2FH 分別為外部中斷0( int0) , 外部中斷1( int1), 定時器中斷( time) 的起始位置。Int0優先級最高, int1次之, time最低。中斷信號高電平有效。中斷功能的實現是為了學習其工作原理, 只做了一個定時器中斷。計時為減1方式, 當計時為0時, 發出中斷信號。T ime中斷的使用方法: 首先關中斷( dint), 給T賦值(mv itn) , 再開中斷( e int), T寄存器使能( et ime)。此后, T 寄存器正常工作。若要再次使用, 首先給T 賦值, 然后T寄存器使能。

  初始時的PC 為0000H, SP為03FFH。SP的更改可通過指令sph l來執行。針對實驗箱, 將8000-0FFFFH 作為輸出口地址, 4000 - 7FFFH 作為輸入口地址。而實際實驗箱上只定義了1個8位輸入, 1個8位輸出。IO 口的操作可通過movam 及movma指令去實現。

  由于鍵盤輸入時, 要進行去抖動處理, 使用了兩種不同的時鐘頻率。鍵盤處理采用1KH z的頻率,而CPU 的工作時鐘可選擇實驗箱上的不同頻率, 從1H z到10MH z皆可, 甚至可以外接其它更高頻率。

  如果采用1H z的clk in 頻率, 可以清楚地看到CPU工作的每一過程。

  將本微機下載到實驗箱上, 已成功實現了乘法(用減1或右移的方法), 調用子程序, IO 口的使用,中斷的使用等多項實驗, 驗證了CPU 設計的正確性。

  3 結束語

  QuartusII對微機進行編譯, 其邏輯單元LE 用到1151, 占100% 。用FPGA 來實現CPU 的功能, 研究其工作原理, 然后用Synplify pro軟件對其進行門級研究, 對CPU 的面紗將不再感到神秘, 有利于做成專用集成電路ASIC, 控制其規模, 節約芯片成本與面積。同時, 也會增加對FPGA 的學習興趣和使用技巧, 開發出更多新的產品。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲午夜免费福利视频| 午夜精品久久久久影视| 欧美成人午夜影院| 国产午夜精品一区二区三区视频| 国产精品伦子伦免费视频| 国产日韩久久| 欧美日韩在线视频首页| 中日韩高清电影网| 欧美另类videos死尸| 国产精品国产精品| 欧美一区二区三区在线| 国产欧美一区二区三区久久| 国产精品久久久久毛片软件| 亚洲在线视频网站| 国产一区二区三区免费观看| 欧美国产精品va在线观看| 卡通动漫国产精品| 亚洲欧洲偷拍精品| 一本久道综合久久精品| 在线激情影院一区| 一本色道久久综合亚洲二区三区| 久久国产精品黑丝| 激情综合在线| 久久久www免费人成黑人精品| 亚洲欧美精品一区| 欧美激情亚洲一区| 亚洲免费一区二区| 欧美日韩亚洲在线| 亚洲国产精品成人一区二区| 亚洲一区二区三区四区在线观看| 欧美视频中文字幕在线| 娇妻被交换粗又大又硬视频欧美| 老司机成人网| 久久久午夜精品| 黄色成人av网站| 好看不卡的中文字幕| 欧美高清在线观看| 精品成人在线观看| 亚洲成人中文| 欧美成人亚洲成人日韩成人| 亚洲欧美日本伦理| 欧美日韩1080p| 99精品视频免费| 米奇777超碰欧美日韩亚洲| 欧美91福利在线观看| 久久婷婷综合激情| 欧美伊人久久| 狠色狠色综合久久| 久久国产欧美| 激情视频一区二区三区| 亚洲精品国产日韩| 亚洲自拍16p| 亚洲国产一区二区三区青草影视| 欧美激情影院| 久久久国产精品一区二区三区| 欧美日本不卡高清| 久久精品在线播放| 欧美综合第一页| 久久精品国产一区二区三区免费看| 久久国产日本精品| 久久超碰97人人做人人爱| 国产欧美精品一区aⅴ影院| 亚洲国产一区二区三区高清| 99在线精品观看| 性欧美暴力猛交另类hd| 国产亚洲综合精品| 欧美一级视频免费在线观看| 欧美极品欧美精品欧美视频| 亚洲裸体在线观看| 亚洲午夜未删减在线观看| 免费在线看一区| 久久视频这里只有精品| 亚洲精品五月天| 亚洲七七久久综合桃花剧情介绍| 欧美日韩精品久久| 亚洲国产成人av| 欧美了一区在线观看| 欧美日韩国产精品自在自线| 欧美日韩日日夜夜| 欧美精品18videos性欧美| 国产精品vvv| 欧美日韩欧美一区二区| 亚洲精品一二三区| 免费观看国产成人| 国产麻豆精品theporn| 欧美黄色片免费观看| 国产精品久久久久久久午夜| 欧美寡妇偷汉性猛交| 欧美精品在线一区| 亚洲一级电影| 激情成人在线视频| 亚洲五月婷婷| 欧美一区二区三区视频| 一区二区三区精品国产| 国内欧美视频一区二区| 136国产福利精品导航| 在线精品视频一区二区| 欧美日韩视频专区在线播放| 欧美va日韩va| 9人人澡人人爽人人精品| 国产精品久久久久久久久果冻传媒| 欧美14一18处毛片| 欧美高清在线播放| 欧美午夜不卡| 久久国产直播| 久久九九国产精品| 国产乱码精品一区二区三区av| 国产美女搞久久| 国产曰批免费观看久久久| 国产欧美一区二区精品性| 欧美国产视频日韩| 亚洲国产欧美精品| 亚洲精品一区在线观看| 亚洲欧美日韩精品久久奇米色影视| 国产区欧美区日韩区| 一本色道久久综合精品竹菊| 亚洲精品孕妇| 欧美人与禽猛交乱配| 韩日精品视频一区| 免费在线播放第一区高清av| 精品成人在线观看| 欧美日韩国产在线播放网站| 欧美日韩国产综合一区二区| 欧美激情第三页| 性久久久久久久| 欧美日产在线观看| 欧美日韩一区二区精品| 欧美亚洲视频在线看网址| 亚洲国产成人午夜在线一区| 久久久久久久999精品视频| 国产精品毛片a∨一区二区三区|国| 亚洲无毛电影| 日韩视频在线播放| 黑人一区二区| 韩国精品主播一区二区在线观看| 亚洲欧美三级伦理| 欧美日韩另类在线| 欧美成年人视频| 亚洲巨乳在线| 99精品黄色片免费大全| 国产日韩精品电影| 嫩草成人www欧美| 99国产精品久久久久老师| 午夜久久电影网| 日韩西西人体444www| 亚洲高清色综合| 欧美成人精品在线播放| 久久www免费人成看片高清| 美女日韩在线中文字幕| 久久久久久自在自线| 亚洲国产岛国毛片在线| 欧美日韩无遮挡| 欧美精品啪啪| 欧美成人午夜激情视频| 久久综合九色综合欧美狠狠| 国产精品久久| 精品成人乱色一区二区| 国内精品美女在线观看| 嫩草伊人久久精品少妇av杨幂| 欧美成人午夜激情在线| 欧美日韩国产精品一区| 久久精品人人做人人综合| 欧美成人午夜77777| 欧美精品一区二区三区视频| 狼人天天伊人久久| 亚洲一区制服诱惑| 欧美日韩中文在线| 欧美亚洲动漫精品| 国内欧美视频一区二区| 裸体丰满少妇做受久久99精品| 欧美精品一区二区三区很污很色的| 狠狠色狠狠色综合日日五| 亚洲午夜小视频| 免费观看不卡av| 久久亚洲国产精品日日av夜夜| 欧美日韩激情小视频| 欧美日本中文字幕| 欧美国产日韩精品免费观看| 欧美性猛交99久久久久99按摩| 中文一区在线| 一本色道久久综合亚洲精品小说| 国产在线精品二区| 性亚洲最疯狂xxxx高清| 性亚洲最疯狂xxxx高清| 宅男在线国产精品| 亚洲精选国产| 99精品热6080yy久久| 国产一区二区三区成人欧美日韩在线观看| 亚洲国产精品成人久久综合一区| 欧美精品久久久久久久久老牛影院| 亚洲人成亚洲人成在线观看| 日韩视频三区| 国产精品久久久久久久久久免费看| 欧美亚洲在线观看| 狠狠做深爱婷婷久久综合一区| 欧美日韩国产123| 久久精品91久久香蕉加勒比| 亚洲国内欧美| 亚洲免费观看高清完整版在线观看熊| 久久久久久噜噜噜久久久精品| 久久久久一区二区| 欧美日韩精品国产| 夜夜夜精品看看| 欧美日韩精品一区二区在线播放| 国产嫩草一区二区三区在线观看| 欧美成人日韩| 亚洲一区久久| 国产视频在线观看一区二区| 日韩手机在线导航| 国产欧美日韩91| 亚洲人体大胆视频| 男女精品网站| 欧美激情第二页| 狠狠色综合网站久久久久久久| 国产精品黄色在线观看| 欧美不卡视频一区| 久久动漫亚洲| 国产自产2019最新不卡| 欧美另类专区| 亚洲免费高清| 国产视频综合在线| 欧美成人午夜剧场免费观看| 美玉足脚交一区二区三区图片| 亚洲一区二区免费在线| 欧美日韩三级视频| 久久午夜视频| 欧美三日本三级三级在线播放| 亚洲电影第1页| 国产精品午夜久久| 亚洲人成在线免费观看| 亚洲三级视频| 国产午夜一区二区三区| 免费日韩av| 伊人激情综合| 媚黑女一区二区| 国产视频在线观看一区二区| 国产精品女人久久久久久| 亚洲激情欧美激情| 欧美mv日韩mv国产网站| 国产精品一区二区a| 欧美电影在线免费观看网站| 韩国免费一区| 欧美激情麻豆| 国产精品久久久久一区| 久久久噜噜噜久久狠狠50岁| 欧美激情一区二区三区在线视频观看| 亚洲国产一区二区a毛片| 国产精品久久午夜| 欧美大片在线观看| 一区二区欧美国产| 一个色综合导航| 久久激情五月激情| 韩国女主播一区二区三区| 欧美中文在线免费| 欧美日韩在线视频首页| 国产午夜亚洲精品羞羞网站| 精品二区久久| 国产亚洲一二三区| 国产一区二区在线观看免费| 久久久综合精品| 亚洲第一色在线| 午夜亚洲伦理| 国产精品激情av在线播放| 亚洲国产成人精品久久久国产成人一区| 国产精品无人区| 亚洲精品一区中文| 国产精品久久久久9999吃药| 亚洲精品女av网站| 欧美精品v日韩精品v韩国精品v| 欧美人与性动交a欧美精品| 亚洲欧美大片| 久久国产精品一区二区三区| 欧美体内谢she精2性欧美| 欧美视频中文字幕在线| 国产一区二区精品久久91| 在线观看视频亚洲| 亚洲精品日韩欧美| 一区二区欧美视频| 亚洲三级视频| 欧美岛国在线观看| 亚洲免费电影在线| 国产亚洲欧美色| 一区在线播放| 国产日韩欧美a| 欧美成人免费全部| 亚洲欧美中文日韩v在线观看| 国产一区二区中文字幕免费看| 亚洲一区视频在线观看视频| 国产精品久久久久久久久免费桃花| 欧美+亚洲+精品+三区| 国产久一道中文一区| 在线不卡欧美| 欧美成人午夜77777| 欧美视频你懂的| 欧美日韩午夜在线| 国产精品久久午夜| 免费成人av在线看| 久久久精品免费视频| 久久久夜色精品亚洲| 欧美精品一区二区蜜臀亚洲| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品电影在线观看| 国产精品福利在线观看网址| 国产日韩欧美精品在线| 国产美女精品视频| 国产精品久久久一区麻豆最新章节| 亚洲欧洲一二三| 国产精品久久久久久久久免费桃花| 国产精品综合网站| 久久成人综合网| 91久久精品国产91性色tv| 欧美日韩中文字幕在线视频| 狠狠色噜噜狠狠狠狠色吗综合| 久久精品系列| 国产亚洲精品久久飘花| 在线观看欧美一区| 欧美日韩国产一区精品一区| 麻豆精品国产91久久久久久| 99re国产精品| 久久琪琪电影院| 亚洲高清在线| 黄色资源网久久资源365| 亚洲福利免费| 欧美高清视频www夜色资源网| 国产精品一级二级三级| 亚洲精品网站在线播放gif| 欧美激情精品久久久久| 午夜亚洲一区|