單周期CPU設(shè)計(jì)(二)

繼續(xù)單周期CPU設(shè)計(jì)(一)


整體設(shè)計(jì)方案:

1 課程主要目的

本課程是在前期《數(shù)字系統(tǒng)組成與設(shè)計(jì)》課程學(xué)習(xí)的基礎(chǔ)上胁编,通過實(shí)踐課的方式,依照集成電路設(shè)計(jì)流程专酗,完成一個(gè)簡(jiǎn)單獨(dú)立硬件功能電路模塊的設(shè)計(jì)睹逃,從而到達(dá)對(duì)《數(shù)字系統(tǒng)組成與設(shè)計(jì)》課程的深入理解和提高電路設(shè)計(jì)的實(shí)踐能力。

2 課程的主要內(nèi)容和任務(wù)

MIPS是典型的32位定長(zhǎng)指令字RISC處理器祷肯,要求深入理解MIPS處理器的內(nèi)部結(jié)構(gòu)及工作原理沉填。采用verilogHDL設(shè)計(jì)一個(gè)兼容MIPS指令格式,具有17條指令功能的單周期CPU硬件電路佑笋,并選用modelsim仿真工具(或其他環(huán)境)完成設(shè)計(jì)電路的仿真驗(yàn)證翼闹。在此基礎(chǔ)上,進(jìn)一步完成多周期CPU的設(shè)計(jì)及仿真蒋纬。

3 單周期處理器設(shè)計(jì)

?????? 說明:?jiǎn)沃芷贑PU指的是一條指令的執(zhí)行在一個(gè)時(shí)鐘周期內(nèi)完成猎荠,然后開始下一條指令的執(zhí)行,即一條指令用一個(gè)時(shí)鐘周期完成蜀备。

?????? 單周期CPU的功能:能夠?qū)崿F(xiàn)一些指令功能操作关摇。

?????? 設(shè)計(jì)原理:

?????? CPU在處理指令時(shí),一般需要經(jīng)過以下幾個(gè)步驟:

(1)取指令(IF):根據(jù)程序計(jì)數(shù)器PC中的指令地址琼掠,從存儲(chǔ)器中取出一條指令拒垃,同時(shí),PC根據(jù)指令字長(zhǎng)度自動(dòng)遞增產(chǎn)生下一條指令所需要的指令地址瓷蛙,但遇到“地址轉(zhuǎn)移”指令時(shí)悼瓮,則控制器把“轉(zhuǎn)移地址”送入PC,當(dāng)然得到的“地址”需要做些變換才送入PC艰猬。

(2)指令譯碼(ID):對(duì)取指令操作中得到的指令進(jìn)行分析并譯碼横堡,確定這條指令需要完成的操作,從而產(chǎn)生相應(yīng)的操作控制信號(hào)冠桃,用于驅(qū)動(dòng)執(zhí)行狀態(tài)中的各種操作命贴。

(3)指令執(zhí)行(EXE):根據(jù)指令譯碼得到的操作控制信號(hào),具體地執(zhí)行指令動(dòng)作食听,然后轉(zhuǎn)移到結(jié)果寫回狀態(tài)胸蛛。

(4)存儲(chǔ)器訪問(MEM):所有需要訪問存儲(chǔ)器的操作都將在這個(gè)步驟中執(zhí)行,該步驟給出存儲(chǔ)器的數(shù)據(jù)地址樱报,把數(shù)據(jù)寫入到存儲(chǔ)器中數(shù)據(jù)地址所指定的存儲(chǔ)單元或者從存儲(chǔ)器中得到數(shù)據(jù)地址單元中的數(shù)據(jù)葬项。

(5)結(jié)果寫回(WB):指令執(zhí)行的結(jié)果或者訪問存儲(chǔ)器中得到的數(shù)據(jù)寫回相應(yīng)的目的寄存器中。

?單周期CPU迹蛤,是在一個(gè)時(shí)鐘周期內(nèi)完成這五個(gè)階段的處理民珍。

3.1 總體設(shè)計(jì)方案

主要包括內(nèi)容:

1)指令定義


2)總體結(jié)構(gòu)設(shè)計(jì)(對(duì)各個(gè)子模塊簡(jiǎn)單說明其功能)

總體模塊框圖如下:


如上圖襟士,此兼容MIPS指令格式,具有17條指令功能的單周期CPU硬件電路可分為七個(gè)模塊:

1)PC模塊:用于計(jì)算下一條指令地址嚷量;

2)指令存儲(chǔ)器模塊:用于存儲(chǔ)指令陋桂;

3)數(shù)據(jù)存儲(chǔ)器模塊:用于存儲(chǔ)數(shù)據(jù);

4)寄存器堆模塊:多個(gè)寄存器模塊蝶溶,可用于存取數(shù)據(jù)嗜历;

5)立即數(shù)擴(kuò)展模塊:判斷是否進(jìn)行擴(kuò)展,并輸出擴(kuò)展后的值;

6)ALU計(jì)算模塊:各種計(jì)算身坐;

7)主控制模塊:通過指令計(jì)算各種控制信號(hào)的值秸脱。

3)接口定義和接口時(shí)序等

?? 頂層模塊是整個(gè)CPU的控制模塊落包,通過連接各個(gè)子模塊來達(dá)到運(yùn)行CPU的目的部蛇,整個(gè)模塊設(shè)計(jì)如下:

頂層設(shè)計(jì)框圖:

3.2子模塊詳細(xì)設(shè)計(jì)

3.2.1主控制模塊

功能:通過判斷當(dāng)前執(zhí)行的操作碼(con_opCode)和運(yùn)算結(jié)果標(biāo)志(con_zero)來控制各個(gè)控制信號(hào)的輸出,從而達(dá)到控制各指令的目的咐蝇。


3.2.2 ALU運(yùn)算單元 功能:模塊ALU接收寄存器的數(shù)據(jù)和控制信號(hào)作為輸入涯鲁,將結(jié)果輸出,具體設(shè)計(jì)如下:

3.2.3 PC模塊

?? PC單元以時(shí)鐘信號(hào)clk有序,重置標(biāo)志reset抹腿,立即數(shù)pc_immediate以及pc_PCWre和pc_PCSrc兩個(gè)控制信號(hào)為輸入,輸出當(dāng)前PC地址旭寿,具體設(shè)計(jì)如下:

3.2.4 立即數(shù)擴(kuò)展模塊

?? 擴(kuò)展單元的設(shè)計(jì)比較簡(jiǎn)單警绩,其功能就是將一個(gè)16位的立即數(shù)擴(kuò)展到32位,具體模塊設(shè)計(jì)如下:

3.2.5數(shù)據(jù)存儲(chǔ)器

?? 數(shù)據(jù)存儲(chǔ)單元的功能是讀取數(shù)據(jù)盅称,根據(jù)數(shù)據(jù)通路圖可以有如下模塊設(shè)計(jì):

3.2.6指令存儲(chǔ)器

根據(jù)當(dāng)前的PC地址得到對(duì)應(yīng)的ins_op, ins_rs,

ins_rt, ins_rd, ins_immediate以及ins_target肩祥,具體設(shè)計(jì)如下:

內(nèi)部實(shí)現(xiàn):將需要測(cè)試的匯編指令程序轉(zhuǎn)化為指令代碼,為了書寫的簡(jiǎn)便缩膝,將32位二進(jìn)制指令代碼轉(zhuǎn)化為16進(jìn)制混狠,具體測(cè)試設(shè)計(jì)表見上表各類型測(cè)試指令。

3.2.7寄存器堆

寄存器文件單元的功能是接收instructionMemory中的rs,rt,rd作為輸入疾层,輸出對(duì)應(yīng)寄存器的數(shù)據(jù)将饺,從而達(dá)到取寄存器里的數(shù)據(jù)目的泡徙。為了防止0號(hào)寄存器寫入數(shù)據(jù)需要內(nèi)部writeReg的時(shí)候多加一個(gè)判斷條件肥卡,即writeReg不等于0時(shí)寫入數(shù)據(jù)沧竟。具體設(shè)計(jì)如下:

3.3設(shè)計(jì)總體連接及仿真驗(yàn)證

??? 設(shè)計(jì)總體連接圖如圖示:


代碼:

ALU.v


dataMemory.v

instructionMemory.v

PC.v

reisterFile.v

signZeroExtend.v

ControlUnit.v


單周期的頂層設(shè)計(jì)模塊:

singleCycleCPU.v

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忆家,一起剝皮案震驚了整個(gè)濱河市捶朵,隨后出現(xiàn)的幾起案子脓鹃,更是在濱河造成了極大的恐慌昂灵,老刑警劉巖色鸳,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琉历,死亡現(xiàn)場(chǎng)離奇詭異坠七,居然都是意外死亡水醋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門彪置,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拄踪,“玉大人,你說我怎么就攤上這事拳魁』掏” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵潘懊,是天一觀的道長(zhǎng)姚糊。 經(jīng)常有香客問我,道長(zhǎng)授舟,這世上最難降的妖魔是什么救恨? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮释树,結(jié)果婚禮上肠槽,老公的妹妹穿的比我還像新娘。我一直安慰自己奢啥,他們只是感情好秸仙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桩盲,像睡著了一般寂纪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赌结,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天捞蛋,我揣著相機(jī)與錄音,去河邊找鬼姑曙。 笑死襟交,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伤靠。 我是一名探鬼主播捣域,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼宴合!你這毒婦竟也來了焕梅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤卦洽,失蹤者是張志新(化名)和其女友劉穎贞言,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阀蒂,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡该窗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年弟蚀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酗失。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡义钉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出规肴,到底是詐尸還是另有隱情捶闸,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布拖刃,位于F島的核電站删壮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兑牡。R本人自食惡果不足惜央碟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望发绢。 院中可真熱鬧硬耍,春花似錦、人聲如沸边酒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墩朦。三九已至,卻和暖如春翻擒,著一層夾襖步出監(jiān)牢的瞬間氓涣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工陋气, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劳吠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓巩趁,卻偏偏與公主長(zhǎng)得像痒玩,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子议慰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 單周期CPU的設(shè)計(jì)蠢古。 今天是我第一次在簡(jiǎn)書上寫隨筆~,我想把我現(xiàn)在擁有的資源分享給你們别凹,希望對(duì)你們有用~ 在進(jìn)行F...
    蒙濛檬萌閱讀 3,939評(píng)論 0 2
  • 計(jì)算機(jī)系統(tǒng)漫游 代碼從文本到可執(zhí)行文件的過程(c語言示例):預(yù)處理階段草讶,處理 #inlcude , #defin...
    willdimagine閱讀 3,561評(píng)論 0 5
  • 一炉菲、引言 嵌入式微處理器是嵌入式系統(tǒng)的核心器件堕战,深入理解嵌入式微處理器的工作原理坤溃,組成結(jié)構(gòu)、體系結(jié)構(gòu)以及軟件編程等...
    Leon_Geo閱讀 866評(píng)論 0 2
  • 牧云是個(gè)表面上看上去大大咧咧的女孩兒,愛開玩笑屿讽,喜歡熱鬧昭灵,和誰都可以玩到一起,很討人喜歡的一個(gè)女孩兒伐谈。只是烂完,了解牧...
    顏凝雪閱讀 421評(píng)論 1 4
  • 跟往常一樣,完成一階段的工作后就想出去走走诵棵。在一個(gè)地方待太久總不免枯燥乏味抠蚣,太封閉太狹隘。雖說讀萬卷書履澳,行萬里路嘶窄,...
    楊晗雪閱讀 321評(píng)論 0 0