實驗四?模型機時序部件的實現(xiàn)(實驗報告格式案例)
班級???計XXXXX???????姓名?? ?wolf? ????學號????2021080XXXXX? ??
一、實驗目的
1.了解模型機中 SM 的作用。
2.熟悉指令寄存器、狀態(tài)寄存器、指令計數(shù)器、寄存器的工作原理
3.學會使用 VERILOG 語言設計時序電路。
二、實驗內容
1.用 VERILOG 語言設計 SM;
2.用 VERILOG 語言設計一個 8 位的指令寄存器 IR;
3.用 VERILOG 語言設計一個 2 位的狀態(tài)寄存器 PSW;
4.用 VERILOG 語言設計一個 8 位的指令計數(shù)器 PC;
5.用 VERILOG 語言設計 3 個 8 位寄存器組成的寄存器組,實現(xiàn)讀寫操作;
6.用 LPM_RAM_IO 定制一個 256*8 的 RAM,實現(xiàn)對 RAM 的讀寫操作。
三、實驗過程
1、SM
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
?
B) 編寫源代碼
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
D) RTL視圖
?
?
E) 功能仿真波形
?
F) 時序仿真波形
?
G)結果分析及結論
分析:對于功能仿真,可以看到當 sm_en 信號為 1 有效時,輸出 sm 在時鐘的下降沿發(fā)生翻轉,
符號功能設計。當 sm_en 信號為 0 時,輸出信號 sm 保持不變,正確。
對于時序仿真,其輸出結果和功能仿真類似,但存在 7ns 左右的延遲
結論:元件設計符合設計要求,元件內部存在 7ns 左右的延遲
2、指令寄存器IR
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
?
B) 編寫源代碼
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
?
D) RTL視圖
E) 功能仿真波形
?
F) 時序仿真波形
?
G)結果分析及結論
分析:對于功能仿真,在 0-30ns,ir_ld 為 1,在時鐘下降沿將輸入寫入輸出,當 ir_ld 為
0 時,輸出保持不變,正確
對于時序仿真,可以看到輸出存在 9ns 左右的延遲,同時部分時刻輸入的變化導致冒險出現(xiàn),
使得輸出錯誤,輸出的變化情況大致與功能仿真相同
結論:元件設計符合設計要求,元件內部存在 9ns 左右的延遲
3、狀態(tài)寄存器PSW
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
B) 編寫源代碼
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
?
D) RTL視圖
?
E) 功能仿真波形
?
F) 時序仿真波形
?
G)結果分析及結論
分析:對于功能仿真,0-20ns,cf_en 和 zf_en 為 1,在時鐘下降沿,將 cf 和 zf 的值寫入
輸出 c,z 中,20-40ns,cf_en 和 zf_en 為 0,輸出 c 和 z 保持不變,正確
對于時序仿真,其中輸出 c 有 7ns 左右延遲,z 有 8ns 左右延遲,其輸出變化與功能仿真大
致相同
結論:元件設計符合要求,輸出 c 有 7ns 延遲,輸出 z 有 8ns 延遲
4、指令計數(shù)器PC
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
?
B) 編寫源代碼
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
?
D) RTL視圖
?
E) 功能仿真波形
?
F) 時序仿真波形
?
G)結果分析及結論
分析:對于功能仿真,5-15ns,pc_inc 為 1,pc_ld 為 0,執(zhí)行地址加 1 操作,15ns-25ns,pc_inc 為 0,pc_ld 為 1,執(zhí)行寫入操作,將輸入寫入到輸出中,25-40ns,pc_inc 為 0,pc_ld 為
- 數(shù)據(jù)保持不變,正確
對于時序仿真,存在 9ns 左右的延遲,輸出結果大致與功能仿真相同
結論:元件設計符合要求,元件存在 9ns 左右的延遲
5、通用寄存器組
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
?
B) 編寫源代碼
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
??
D) RTL視圖
?
E) 功能仿真波形
?
F) 時序仿真波形
?
G)時序分析
操作方法是:編譯后,在compilation report中選擇【timing analysis】-【summary】
?
H)結果分析及結論
分析:對于功能仿真,在 0-35ns,we 為 0,進行寫入操作,在每個下降沿,當 rwba=00,01,10
時,將輸入 i 分別寫入寄存器 A,B,C 中,而在 35-65ns,we 為 1,進行讀取操作,在每個下
降沿,根據(jù) raa 和 rwba 的值 s,d 輸出對應寄存器的值,當 raa=00,s 輸出 A 的值,raa=01,
s 輸出 B 的值,raa=10,s 輸出 C 的值,正確
對于時序仿真,輸出 s 存在 9ns 左右的延遲,輸出 d 存在 10ns 左右延遲,其余輸出結果大
致與功能仿真相同
對于時序分析,可以得到時鐘輸出延遲 tco 為 13.487ns,建立時間 tsu 為 7.110ns,保持時
間 th 為 0.479ns,電路延遲時間 tpd 為 16.353ns
結論:元件設計符合要求,輸出 s 存在 9ns 左右的延遲,輸出 d 存在 10ns 左右延遲
6、RAM的使用
A)創(chuàng)建工程(選擇的芯片為family=Cyclone II;name=EP2C5T144C8)
?
B) 電路圖
?
C)?編譯與調試(包含編譯調試過程中的錯誤、警告信息以及資源消耗)
?
D) RTL視圖
?
E) 功能仿真波形
?
F) 時序仿真波形
?
G)結果分析及結論:
分析:對功能仿真,0-15ns,xl 和 dl 都為 0,輸出為高阻態(tài)。15-45ns,xl 為 1,dl 為 0,
進行寫入操作,對于三個上升沿,分別將輸入信號 100,101,102 分別寫入地址 1,2,3 中。
45-115ns,xl 為 0,dl 為 1,進行讀操作,對于每個上升沿,分別將 1,2,3,4,5,11,13 地址
中的指令讀出并輸出,其中 4,5,11,13 地址中的指令已提前存入對應的 mif 文件中,仿真正
確。
對于時序仿真,輸出存在 11ns 左右的延遲,同時由于輸入的改變導致某些位置出現(xiàn)冒險。
結論:元件設計符合要求,輸出存在 11ns 左右延遲。
四、思考題
1.時鐘周期的上升沿實現(xiàn)對RAM的讀寫操作,為何PC、SM、IR、PSW以及寄存器組的操作是下降沿完成?
答:因為我們既要保證取址操作在一個周期內完成,同時要保證 RAM 為優(yōu)先級
較高,所以需要放在不同的跳變沿執(zhí)行。若放在同一時間,可能會便數(shù)據(jù)處理來
不及,導致出錯。
2.采用VERILOG語言描述時序部件應該采用阻塞賦值語句還是非阻塞賦值語句?
答:使用非阻塞賦值。
3、通用寄存器組只有WE的控制信號,實現(xiàn)通用寄存器組讀操作的電路是組合電路還是時序電路?請大致畫出對寄存器組進行讀操作的電路部分。
答:是組合電路。電路圖如下
?
五、實驗總結、必得體會及建議
1、從需要掌握的理論、遇到的困難、解決的辦法以及經驗教訓等方面進行總結。
(1)需要掌握的理論:基本了解了簡易模型機的內部結構和工作原理。同時熟悉了指令寄存器、狀態(tài)寄存器、指令計數(shù)器、寄存器的工作原理。學會使用 Verilog 語言編寫電路。
(2)遇到的困難:對于 QuartusII 的使用還不夠熟練,特別是進行波形仿真的功能仿真和時許仿真分別怎么操作的方面有一定不足。
(3)解決方法:通過上網查詢相關資料和詢問同學后得以解決問題,并通過分析報告發(fā)現(xiàn)電路中的問題。有不理解的還請教了老師,不僅收獲了方法還掌握的技巧。
(4)經驗教訓:對于電子電路的學習一定要肯動手,光是看是學不會的,一定要落到實處,多自己使用軟件進行仿真,才能加深對于這門課程的理解。
2、對本實驗內容、過程和方法的改進建議(可選項)。文章來源:http://www.zghlxwxcb.cn/news/detail-752255.html
對于RTL視圖的研究十分重要,可以引導同學做到自己能看懂RTL視圖,否則需要更改并簡化寫法。文章來源地址http://www.zghlxwxcb.cn/news/detail-752255.html
到了這里,關于HNU-電路與電子學-實驗4的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!