新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于太陽能LED照明控制系統(tǒng)的處理器設(shè)計(jì)

基于太陽能LED照明控制系統(tǒng)的處理器設(shè)計(jì)

作者: 時(shí)間:2010-11-15 來源:網(wǎng)絡(luò) 收藏

  當(dāng)ADD 指令進(jìn)入LO 級進(jìn)行取數(shù)操作時(shí), 其之前的兩條MOVD 指令分別在EX 級與WB 級運(yùn)行著, 此時(shí)從寄存器組中取數(shù)是不正確的。所以要把ADD 指令推后, 等到MOVD 指令退出流水線后, 方可進(jìn)行取數(shù)。如果是第二條MOVD 指令推出流水線時(shí)ADD 進(jìn)入LO 級的話, 中間需要間隔3 個(gè)流水線周期。但實(shí)際上只需間隔兩個(gè)流水線周期就夠了。這是由本處理器ALU 操作體系決定的。ALU 的第一操作數(shù)是從寄存器中直接取出, 無需通過LO 級。等價(jià)于第一操作數(shù)比第二操作數(shù)要快一個(gè)流水線周期。所以, 這里設(shè)計(jì)讓第一條MOVD指令存儲(chǔ)第二操作數(shù), 當(dāng)此指令完成后,ADD 進(jìn)入LO 級將第二操作數(shù)取出。經(jīng)過一個(gè)流水線周期ADD 指令進(jìn)入EX 級時(shí), 第二條MOVD 也把第一操作數(shù)存儲(chǔ)到了寄存器。

  之后再經(jīng)過兩個(gè)周期, 運(yùn)算結(jié)果存入寄存器組。

  整個(gè)過程如圖4 所示。

  從第一條指令輸入到結(jié)果寫入寄存器組共用了10 個(gè)流水線周期( 20 個(gè)時(shí)鐘周期) ??紤]到指令串的流水化運(yùn)行, 在大段程序中費(fèi)時(shí)是指令輸入的5 個(gè)流水線按周期。實(shí)際上, 在這5 個(gè)流水線周期中的2 個(gè)間隔周期并不必須為空, 只要與本條指令沒有數(shù)據(jù)相關(guān)就可以, 例如進(jìn)行兩個(gè)存儲(chǔ)器操作。這樣最好情況下一個(gè)加法操作只需3 個(gè)流水線周期。

  5. 1. 2 分支跳轉(zhuǎn)指令流

  分支跳轉(zhuǎn)指令是高級語言中經(jīng)常用到的關(guān)鍵語句?,F(xiàn)在用跳轉(zhuǎn)指令( JUMPI) 來構(gòu)建條件跳轉(zhuǎn)操作。分支跳轉(zhuǎn)語句首先是要判斷條件是否成立, 如果條件成立則順序執(zhí)行, 如果不成立則跳到下一程序塊執(zhí)行。編譯成處理器的操作碼后變?yōu)? 送條件; 進(jìn)行比較,置標(biāo)志位; 根據(jù)標(biāo)志位跳轉(zhuǎn)。在這種情況下, 實(shí)現(xiàn)一個(gè)無內(nèi)容條件結(jié)構(gòu)需要7 條語句( 7 個(gè)流水線周期) 。其中兩個(gè)周期可以插入無關(guān)操作, 還有兩個(gè)周期可以提前執(zhí)行JUMPI 后續(xù)指令。所以最好情況下需要三個(gè)流水線周期完成。

  5. 1. 3 循環(huán)語句

  循環(huán)語句在高級語言中也是常用語句之一。它的實(shí)現(xiàn)與分支跳轉(zhuǎn)類似, 同樣是跳轉(zhuǎn)指令的應(yīng)用。

  循環(huán)語句中要定義一個(gè)條件變量, 通過循環(huán)體的運(yùn)行改變條件變量的值, 完成后進(jìn)行判斷, 符合條件跳出循環(huán)體, 否則重新開始循環(huán)體。

  此種循環(huán)情況下, 循環(huán)結(jié)構(gòu)共需7 條指令, 如條件允許優(yōu)化NOP 指令, 最好情況下只需3 個(gè)流水線周期。在時(shí)序驗(yàn)證完成后, 筆者結(jié)合XILINX 公司的Virtex2 FPGA, 利用Synplify 7. 5 對設(shè)計(jì)進(jìn)行了綜合,綜合報(bào)表顯示時(shí)鐘頻率最高可到153 MHz。

  5. 2 FPGA 實(shí)現(xiàn)

  將設(shè)計(jì)下載至FPGA 后, 筆者采用名為Chipscope Pr o Analyzer 的波形觀察工具。Chipscope Pro 是采用JTAG 方式觀察FPGA 內(nèi)部的信號, 再反映到終端上,與板級驗(yàn)證方法原理一致, 而節(jié)省了板級布線時(shí)間。

  將Chipscope Pro 設(shè)置為arm( 伺機(jī)捕獲) 狀態(tài), 當(dāng)觸發(fā)條件滿足時(shí)捕獲數(shù)據(jù), 并且在緩沖區(qū)填滿后停止捕獲, 并將數(shù)據(jù)上傳, 由波形窗口顯示出來。

  觸發(fā)條件( 復(fù)位后) 滿足時(shí)捕獲到的波形圖如圖5所示。所觀察的數(shù)據(jù)共有16 位, 其中port[ 0]2por t[ 7] 為存儲(chǔ)器地址輸出, port[ 8]2port[ 15] 為存儲(chǔ)器數(shù)據(jù)輸出。程序數(shù)我們前面所介紹過的加法操作, 并且在得到結(jié)果后利用STORE 指令輸出到總線上。程序?yàn)?

  MOVD R2 1B

  MOVD R1 10B

  NOP

  NOP

  ADD R3 R2

  NOP

  NOP

  ST ORE 11110000B R3

  程序的操作是1 加2, 結(jié)果為3, 將其送到11110000B 地址, 其后仿真波形如圖6 所示。

  與FPGA 中結(jié)果完全相同。設(shè)計(jì)正確。

  6 結(jié) 語

  本文針對太陽能 控制系統(tǒng)設(shè)計(jì)了一款低功耗面積小的精簡指令集處理器, 指令集共包含12 條指令。處理器綜合頻率達(dá)150 MHz, 實(shí)際在板最高工作頻率為100 MHz。系統(tǒng)外設(shè)包括計(jì)時(shí)器和脈寬調(diào)制模塊。能夠?qū)崿F(xiàn)系統(tǒng)所需功能, 完成控制器功能。待下一步進(jìn)行系統(tǒng)統(tǒng)調(diào)后進(jìn)行芯片后端設(shè)計(jì)。


上一頁 1 2 3 下一頁

關(guān)鍵詞: LED 照明

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉