999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在硬件課程設計中引入Quartus Ⅱ狀態機編輯器的探索與實踐

2019-10-23 05:15:06張永梅
計算機教育 2019年10期
關鍵詞:指令實驗設計

吳 磊,張永梅

(北方工業大學 信息學院,北京 100144)

1 將QuartusII狀態機編輯器引入硬件課程設計是計算機發展和教改的需要

隨著計算機技術的快速發展,社會對計算機系統軟件設計和計算機硬件系統設計人才的需要更加迫切。計算機學科具有技術發展快、知識更新快的特點,計算機人才培養只有適應社會需要和計算機技術發展的需要,才具有市場競爭力。

在軟件平臺功能日漸強大,逐步替代手工編程,完成大部分硬件設計各個層面的時代,如何調動計算機專業學生學習硬件的積極性,構建以硬件為基礎的系統化實驗與教學體系是目前亟須解決的問題;培養軟件和硬件兩手都過硬的計算機系統類人才,是目前各個高校計算機實驗與教學面臨的重要問題。

在國外,硬件描述語言課程中較多采用Quartus Ⅱ狀態機編輯器作為工具,而在國內教學與實驗中,狀態機編輯器還未得到足夠的重視。以往有限狀態機只是作為設計工具而不是作為編程的實現工具,沒有充分利用其強大的狀態機編輯器進行有限狀態機設計;另外,由于狀態機編輯器僅僅是Quartus Ⅱ平臺的一個功能,并沒有涉及理論,因此大部分介紹Quartus Ⅱ的中文書籍沒有包含狀態機編輯器這部分內容[1-4]。

2 有限狀態機的表述及描述方式

通常,有限狀態機FSM 可以用一個6 元組F<S,I,O,F,H,s0> 表示,其中,S是狀態的集合{s0,s1,…,sl};I是輸入的集合 {i0,i1,…,im};O是輸出的集合 {o0,o1,…,on};F是次態集合(S×I→S);H是輸出函數,將狀態映射到輸出(S→O);s0是初始狀態。

有限狀態機設計中主要包含3 個對象:當前狀態(CS)、下一個狀態(NS)、輸出邏輯(OL)。相應地,在用硬件描述語言VHDL 描述有限狀態機時,有以下幾種描述方式:①三進程描述方式,即現態、次態、輸出邏輯各用一個進程;②雙進程描述方式1(CS+NS、OL);③雙進程描述方式2(CS、NS+OL);④單進程描述方式(CS+NS+OL)。

設計時序邏輯電路,首先畫出有限狀態機的狀態遷移圖,然后根據狀態遷移圖編寫1 個進程、2 個進程或3 個進程的VHDL 程序,設計實現對應的邏輯電路系統。然而,根據狀態遷移圖用進程編寫VHDL 程序并不是一件輕松的事情,特別是當狀態機比較復雜時尤其如此[5-7]。

3 用有限狀態機描述時序電路是十分重要的設計思想

使用有限狀態機描述時序電路不僅是設計時序電路的一種工具,而且是一種設計思想方法,更是擴展設計時序電路的一種重要的思維。

有限狀態機的本質就是對具有邏輯順序或時序規律事件的一種描述方法,邏輯順序和時序規律是狀態機所要描述的核心,換言之,所有具有邏輯順序和時序規律的事情都適合用有限狀態機描述。

4 用QuartusII狀態機編輯器改革實驗與教學內容的方法與實現

隨著EDA 技術的發展,FPGA 逐步成為最廣泛的實驗平臺。將有限狀態機應用并融合在基于FPGA 的硬件課程設計中,是一項非常現實而有意義的教學與實驗的重要課題[8-10]。

Quartus Ⅱ狀態機編輯器(State Machine Edit)作為一個工具,可以靈活地設計、編輯狀態遷移圖,當狀態遷移圖完成后,通過Generate HDL File 命令,可以直接生成HDL 代碼,因此,用Quartus Ⅱ狀態機編輯器直接生成HDL 代碼,對初學硬件描述語言,用VHDL 語言編程沒有太高的要求,在沒有完全掌握硬件描述語言的情況下,也能進行有限狀態機的設計。

4.1 使用Quartus Ⅱ狀態機編輯器自動生成HDL 代碼的過程

具體的設計方法可以跟著Quartus Ⅱ狀態機編輯器向導一步一步完成:①新建一個工程;②打開file/new/state machine file;③打開狀態機圖形編輯窗后,在工程管理窗中選擇state machine wizard(狀態機生成向導);④在最初的對話框中,選擇生成一個新狀態機“Create a new state machine design”;⑤在彈出的框中分別選擇復位信號控制方式,有效方式為異步和高電平有效:Asynchronous 和active-high;⑥在狀態機編輯器對話框中設置狀態變量、輸入輸出信號、狀態轉換條件等;⑦完成后存盤,文件后綴是.smf,可以從狀態機圖形編輯器上看到轉換圖形,還可以利用左側的工具進行修改補充,將這個圖形狀態機存盤后,可以以此文件作為工程進行設計;⑧在tool/generate HDL 中,可以將狀態機轉換成VHDL 或其他HDL 文件。

概括起來,使用Quartus Ⅱ狀態機編輯器進行有限狀態機設計的流程如下:①分析并抽象設計對象,初步建立有限狀態機遷移圖;②分析被控對象的時序狀態,確定控制有限狀態機的各個狀態及輸入和輸出條件;③在Quartus Ⅱ狀態機編輯器中編輯有限狀態機遷移圖,自動產生VHDL 代碼。

學生的主要工作在第1 步和第2 步。第3 步通過Quartus Ⅱ狀態機編輯器完成狀態遷移圖并自動生成HDL 代碼。通過閱讀HDL 代碼,分析、改進狀態遷移圖,完善邏輯電路系統。

當狀態數目增多、狀態圖遷移不易畫出時,可以用狀態遷移表描述狀態之間的關系。

4.2 使用Quartus II 狀態機編輯器的優點

用Quartus Ⅱ狀態機編輯器設計時序邏輯電路正逐漸成為一種規范方法,生成的VHDL 程序規范而清晰,不必進行繁雜的狀態分配,狀態表繪制和化簡,狀態寄存器分配,根據狀態表求出狀態方程、次態方程及輸出方程等工作,不需要考慮所設計邏輯電路的內部結構和邏輯關系,更不必畫電路原理圖和搭建與測試邏輯電路,很好地解決了對有限狀態機復雜的編程和調試事務,降低了對編程的要求。

當需要修改邏輯電路時,可以直接修改直觀的狀態遷移圖,達到修改VHDL 程序,因此,修改VHDL 程序更容易了,同時,提高了設計邏輯電路的靈活性,降低了編寫VHDL 程序的復雜度,從而推動了硬件課程設計的改革,增強了對學生數字系統電路設計能力的培養,也為學生設計CPU 做了鋪墊。Quartus II 狀態機編輯器是實現對狀態機進行VHDL 軟件編程的較好的可選方法,是設計時序電路的重要工具。

5 狀態遷移圖是否完善和完整直接影響硬件課程設計的實驗與教學內容的質量

狀態遷移圖的設計方法和內容在有限狀態機的實驗與教學中十分重要,可以在課堂上以數字檢測為例,講授狀態圖的設計方法,以狀態遷移條件為基礎,引導狀態的遷移,啟發學生理解狀態遷移過程。通過以狀態遷移圖為導向,優化運用VHDL 進行硬件設計內容,兼顧學生接受知識由淺入深的學習要求,構建以狀態遷移圖進行邏輯時序電路設計的實驗與教學體系,提高學生的學習效率,學生就可以做其他更多復雜的實驗。

6 硬件課程設計實驗教學內容與方法的探索與實踐

針對北方工業大學計算機專業學生的具體情況,設計和安排了3 個難度梯度的基于FPGA 的7 個實驗,實驗內容由簡單到復雜,由基礎到復雜,逐步深入;通過不同的實驗題目,學生逐步掌握邏輯電路的原理與設計方法。這些題目是:①在7 段數碼管上顯示自己的最后3 位學號數字;②在點陣上顯示自己的名字;③使用圖形輸入方式,用級聯形式實現一個多位二進制加法器;④使用Quartus Ⅱ狀態機編輯器,分別設計帶重復和不帶重復判斷的兩個簡單的序列檢測器;⑤使用Quartus Ⅱ狀態機編輯器,設計一個只賣1 種商品的簡單的自動售貨機;⑥簡單CPU 的設計;⑦采用兩個進程描述方式編寫VHDL 程序,在兩個題目中選做一個題目,即分別設計帶重復和不帶重復判斷的兩個簡單的序列檢測器或者設計一個可賣兩種商品的簡單的自動售貨機。

6.1 引入有限狀態機設計CPU

在CPU 設計中,要通過節拍的變動,將每條指令隨著節拍的變化一一進行描述。指令的每一個順序步都是一種狀態,任何一條指令的順序步都是有限的。從指令執行過程的角度看,CPU任何時間都處在有限狀態集的某一個狀態中,CPU 按照指令,從一個狀態遷移到另一個狀態,完成指令所規定的操作。

CPU 設計的核心就是對指令的解析,因此,設計CPU 教學的最關鍵部分是引導學生通過對指令執行過程的分析,確定CPU 的狀態集,即指令流程圖的每一個方框。圖1 所示為CPU 指令執行狀態集的遷移圖范例,它包含5 個基本的狀態集,分別是取指令、取數據、運算、保存結果、中斷控制。

圖1 CPU 指令執行狀態集的遷移圖范例

6.2 具有5 個狀態的指令遷移表

首先,給出一個字長為8 位,具有4 種指令格式,共16 條指令的簡單CPU,對這16 條中的每一條指令的功能進行定義。在將這5 個狀態集進行功能細分后,按照每個狀態應該完成的功能,將所有指令的操作,按照狀態有序地匯集在一起,得到指令遷移的6 個狀態,見表1。

需要說明的是:①如果存儲器的速度不能滿足1 個時鐘周期完成讀寫操作,則處理器不能和該存儲器協調工作,需要延長等待時間才能正常工作;②在優先級選擇上,是速度優先還是成本優先,所做的安排也會有很大的不同。

表1 不是唯一的安排,其側重于過程的清晰易懂,沒有在減少節拍上做太多的處理,且只是羅列出了正確的指令執行過程,沒有考慮優化問題。從6 個狀態的指令遷移表,可以清楚地看到:從CPU 設計的角度看,控制器可以看做一個有限狀態機,每一個狀態對應于一個節拍,即每一個狀態持續時間為1 個周期;每一個狀態發出不同的控制信號,指揮數據的流動,同時根據反饋信號決定下一步將進入的狀態。

注意,每一步所需要的節拍數不完全一樣。

(1)將每一條指令執行過程細分到節拍,即規定每一個節拍要做什么工作,并規定下一次進入哪個節拍。

(2)按指令功能控制數據流過每一個部件,流過一個部件就需要相應的控制信號,把控制序列寫出來,并安排到每個節拍。

(3)由節拍產生的控制信號引導數據流動時,在該節拍的末尾才被時鐘脈沖打入寄存器。

表1 6 個狀態的指令遷移

(4)加電時系統自動產生一個復位信號reset,使所有寄存器清零,控制器處于初始狀態st_0。

(5)內存收到CPU 發的訪問地址后,需對該地址譯碼,找到相應的內存單元,這段時間需要1 個時鐘周期,因此,在1 個時鐘周期后才能在內存的數據輸出端口看到對應的數據。

(6)指令的執行被分成若干步驟,每一步驟占用一個機器周期。一方面,部件在不同機器周期可以重復使用;另一方面,在上一周期中指令執行的結果,需要用于下一周期的操作。

(7)狀態機的輸入是指令碼,輸出為所有的控制信號和多路選擇信號。輸出的控制信號取決于當前狀態與輸入的指令碼。

綜上所述,可以看到CPU 的核心是一個由系統時鐘驅動的有限狀態機的邏輯過程。有限狀態通過狀態轉移圖將復雜的控制時序圖形化,將復雜的邏輯關系轉換為簡單的狀態轉移關系[11-14]。

將有限狀態機應用于CPU 的設計與實現,能夠培養學生對復雜工程問題的分析與解決能力。通過上述實驗與教學策略,取得了良好的實驗與教學效果,為計算機硬件課程設計實驗與教學開拓出了一條創新之路。

7 結 語

有限狀態機是硬件課程設計實驗與教學的重點,將Quartus Ⅱ狀態機編輯器作為基本工具引入有限狀態機的實驗與教學體系,可以使程序設計更為快捷、簡單和高效。用Quartus Ⅱ狀態機編輯器設計時序邏輯電路,其實質是將過去用進程描述有限狀態機,然后編寫VHDL 程序的思路,轉變為將重點放在對狀態遷移圖的設計,而不必關心如何用VHDL 編寫程序代碼。實驗與教學不僅使學生比較容易掌握有限狀態機這一重要的數字系統設計工具,同時還有助于學生掌握“用有限狀態機設計CPU”的方法。在硬件課程設計實踐應用中,實驗與教學效果良好。

猜你喜歡
指令實驗設計
聽我指令:大催眠術
記一次有趣的實驗
做個怪怪長實驗
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 91娇喘视频| 一级成人a毛片免费播放| 亚洲性日韩精品一区二区| 欧美无专区| 欧美日韩国产在线观看一区二区三区| 性做久久久久久久免费看| 在线亚洲小视频| 国产福利一区在线| av色爱 天堂网| 欧美日本激情| 免费一级毛片不卡在线播放| 五月婷婷导航| 老司国产精品视频91| 2021国产精品自拍| 91视频青青草| 国产成人区在线观看视频| 综合天天色| AV色爱天堂网| 欧美日韩另类国产| 欧美69视频在线| 国产精品无码久久久久AV| 日本道中文字幕久久一区| 久久永久精品免费视频| 亚洲精品无码AⅤ片青青在线观看| 尤物精品视频一区二区三区| 99久久性生片| 国产精品一区二区不卡的视频| 国产丝袜无码一区二区视频| 亚洲精品第1页| 国产激情在线视频| 麻豆精品在线播放| 国产精品内射视频| 久久精品一品道久久精品| 丰满人妻久久中文字幕| 久久精品一品道久久精品| 亚洲h视频在线| 日本人妻一区二区三区不卡影院| 米奇精品一区二区三区| 国产成人免费高清AⅤ| 国产色网站| 日本a级免费| 激情综合激情| 欧美成人免费午夜全| 波多野结衣国产精品| 色天天综合| 精品偷拍一区二区| 久久综合丝袜长腿丝袜| 狼友视频一区二区三区| 人妻无码中文字幕一区二区三区| 国产精品无码影视久久久久久久| 国产成人综合亚洲欧洲色就色| 亚洲美女AV免费一区| 欧美色综合网站| 狠狠综合久久久久综| 99视频国产精品| 日韩欧美中文在线| 午夜不卡福利| 亚洲男人的天堂网| 欧美区国产区| 久久国产成人精品国产成人亚洲| 久久精品女人天堂aaa| 成人免费一级片| 好久久免费视频高清| 国产免费人成视频网| 亚洲欧美另类日本| 欧洲一区二区三区无码| 国产国模一区二区三区四区| 少妇露出福利视频| 天堂在线亚洲| 伦伦影院精品一区| 欧美成人免费| 国产一区免费在线观看| 青草国产在线视频| 国产人人乐人人爱| 亚洲Aⅴ无码专区在线观看q| 亚洲精品欧美日本中文字幕 | 国产精品永久久久久| 欧美午夜在线观看| 亚洲精品另类| 午夜视频在线观看区二区| 亚洲综合久久一本伊一区| 98精品全国免费观看视频|