【正文】
N D 2ins t 16N O Tins t 17O R 4in s t 18O R 6ins t 19O R 2ins t 20O R 8ins t 21O R 8ins t 22W IR Eins t 23O R 6ins t 24O R 6ins t 25O R 6ins t 26O R 8ins t 27J ALLWSWSLLSR ASR LSH I F TOR IAN D IX OR ILWSWLU I AD D IAL U I M MF U N C [ 5. . 0]OP [ 5. . 0]X ORSLLSR LSR AJRAD D IAN D IOR IX OR ILWSWBEQBN QLU IJJ ALSU BAN DORAD DBN QBEQZJJ ALPC SO U R C E[ 0]JJ ALJRPC SO U R C E[ 1]OR IAN D ISR ASR LSLLAN DORAL U C [ 0]AD DSU BAN DORX ORSLLSR LSR AAD D IAN D IOR IX OR ILWLU IJ ALW R EGSR A AL U C [ 3]AD D IAN D IOR IX OR ILWLU IR EG R TLU IX OR ISR ASR LSLLX ORAL U C [ 1]AD D ILWSWBEQBN QLU ISE X TLU IBN QBEQOR ISR ASR LORSU BAL U C [ 2] Pcsource [1..0] 11 11 Aluc[3..0] X X Shift X X Aluimm X X Sext X X Wmem 0 0 Wreg 0 1 M2reg X x Regrt X X Call X 1 仿真結(jié)果: 7 、 指令存儲(chǔ)器用于在計(jì)算機(jī)中保存指令。在本屆中使用 LPM_ROM 來(lái)實(shí)現(xiàn),它能保存 64條指令字,如圖 910所示。指令存儲(chǔ)器輸 入: A[31..0](指令地址),實(shí)際使用的地址為 A[7..2]。指令的輸出信號(hào): DO[31..0]。指令存儲(chǔ)器的元件符號(hào)如圖 910 所示。真值表如 93 所示, DO 表示在指令數(shù)據(jù)文件中地址 A對(duì)應(yīng)的指令數(shù)據(jù)。 波形分析。 ~ 這一段, A 為 00000004, CLK 在 時(shí)刻有一個(gè)下降沿。故此時(shí) DO 的值應(yīng)該變?yōu)榈刂?00000004 對(duì)應(yīng)的指令數(shù)據(jù)為 3C010000,然后直到 時(shí)刻之前都是上升沿,故一直保持不變?yōu)?3C010000,直到 時(shí)刻來(lái)了一個(gè)下降沿, DO 的值應(yīng)該 變?yōu)榈刂?00000008 對(duì)應(yīng)的指令數(shù)據(jù)為34240050。圖 920 中此刻時(shí)段正好也為這樣,因此得證。 最后,根據(jù)原理圖,按照第 小節(jié)中的方法生成元器件原理圖。 8 V C CC L K IN P U TV C CA [ 3 1 . . 0 ] IN P U T D O [ 3 1 . . 0 ]O U T P U Ta d d r e s s [ 5 . . 0 ]c lo c k q [ 3 1 . . 0 ]lp m _ r o m 0in s tA [ 7 . . 2 ] 仿真結(jié)果: 輸入 WE 0 0 1 1 X X A[31..0] A A A A A A DI[31..0] X X DI DI X X CLK X X 0 0 1 1 MEMCLK ↑ ↓ ↑ ↓ ↑ ↓ 輸出 DO[31..0] DO 不變 DI 不變 DO 不變 ↑為上升沿?!秊橄?降沿 數(shù)據(jù)存儲(chǔ)器的原理圖設(shè)計(jì) ( 1)加法指令數(shù)據(jù)文件 9 V C CC L K IN P U TV C CM E M C L K IN P U TV C CD I [ 3 1 . . 0 ] IN P U TV C CA [ 3 1 . . 0 ] IN P U TV C CWE IN P U TD O [ 3 1 . . 0 ]O U T P U Td a t a [ 3 1 . . 0 ]w r e na d d r e s s [ 4 . . 0 ]in c lo c ko u t c lo c kq [ 3 1 . . 0 ]lp m _ r a m _ d q 0in s tA N D 2in s t 1N O Tin s t 2D I [ 3 1 . . 0 ]C L KWEA [ 6 . . 2 ]M E M C L K ( 2) 調(diào)用 lpm_ram_dp 宏設(shè)計(jì)數(shù)據(jù)存儲(chǔ)器 ( 3) 仿真結(jié)果: : 波形分析。 ~ 這一時(shí)刻, A 為 00000060, CLK 為 0, WE 為 0,則為讀信號(hào), MEMCLK 此時(shí)此刻有一個(gè)上升沿,故獨(dú)處地址 A 對(duì)應(yīng)的數(shù)據(jù) DO 位 000000A3。 ~ 這一時(shí)刻, A為 00000000,DI 為 00000300, CLK 為 0, WE 為 1,則寫(xiě)為信號(hào)。 MEMCLK 此時(shí)此刻有一個(gè)上升沿,故將 DI數(shù)據(jù)寫(xiě)入到地址 A對(duì)應(yīng)的位 置 DO 為 00000300。圖 931 中正是如此,只是整體有一個(gè)周期的時(shí)延,因此得證。 單周期中央處理器 cpu 設(shè)計(jì) 通過(guò)調(diào)用前面編寫(xiě)的一系列元器件來(lái)實(shí)現(xiàn)單周期 CPU,它能處理 MIPS 中列出的 20 條常用指令。 CPU 輸入信號(hào): CLOCK 為時(shí)鐘信號(hào), RESETN 為設(shè)置 0 信號(hào), INSTR 為指令數(shù)據(jù), MEM 為運(yùn)算數(shù)據(jù)。 CPU 輸出信號(hào): PC是下一條要執(zhí)行指令在指令存儲(chǔ)器中的地址, DATA 是運(yùn)算得到的要寫(xiě)入數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)。 根據(jù)控制器各控制信號(hào)的描述以及 節(jié)中 CPU 設(shè)計(jì)思路分析,可綜合完整的 CPU 邏輯設(shè)計(jì),如圖 933所示。最終得到 CPU 的原理圖 10 V C CC L K IN P U TV C CM E M C L K IN P U TV C CD I [ 3 1 . . 0 ] IN P U TV C CA [ 3 1 . . 0 ] IN P U TV C CWE IN P U TD O [ 3 1 . . 0 ]O U T P U Td a t a [ 3 1 . . 0 ]w r e na d d r e s s [ 4 . . 0 ]in c lo c ko u t c lo c kq [ 3 1 . . 0 ]lp m _ r a m _ d q 0in s tA N D 2in s t 1N O Tin s t 2D I [ 3 1 . . 0 ]C L KWEA [ 6 . . 2 ]M E M C L K CONTROLLER PC A DO ROM PC DO + 1 Z OP FUNC JUMP MEMTOREG PCSRC MEMWR ALUC[2..0] ALUSRC REGWR N1[1..0 ]WE N2[1..0 ] Q1 NI DI Q2 CLK rs rt 1 0 ZEROFILL REGDST REGSRC 0 1 + 0 1 A ALU[2..0] Z ALU R B WE A DO D