本文摘要:摘 要:隨著科技的飛速發(fā)展,傳統(tǒng)的電子技術(shù)逐漸被現(xiàn)代電子技術(shù)取代,以FPGA/CPLD為硬件,以verilog語言為軟件的EDA技術(shù)應用越來越廣泛,本文旨在以一個具體的序列檢測器的設(shè)計為例,將以硬件描述語言來設(shè)計芯片的流程呈現(xiàn)給大家。 關(guān)鍵詞:verilog;序列檢測
摘 要:隨著科技的飛速發(fā)展,傳統(tǒng)的電子技術(shù)逐漸被現(xiàn)代電子技術(shù)取代,以FPGA/CPLD為硬件,以verilog語言為軟件的EDA技術(shù)應用越來越廣泛,本文旨在以一個具體的序列檢測器的設(shè)計為例,將以硬件描述語言來設(shè)計芯片的流程呈現(xiàn)給大家。
關(guān)鍵詞:verilog;序列檢測器;狀態(tài);EDA
1 引言(Introduction)
在數(shù)字信號的傳輸和數(shù)字系統(tǒng)產(chǎn)品的設(shè)計和測試過程中,往往需要用到一組特定的串行數(shù)字信號,我們把產(chǎn)生序列信號的模塊電路稱作序列信號發(fā)生器,如要求產(chǎn)生一串序列“10001110”為例來給大家展示EDA設(shè)計有限狀態(tài)機的過程[1]。本電路由計數(shù)器與數(shù)據(jù)選擇器兩部分構(gòu)成,結(jié)構(gòu)框圖如圖1所示,該鎖存輸出的功能是為了消除電路產(chǎn)生的毛刺。
圖1 結(jié)構(gòu)框圖
Fig.1 Structure diagram
2 序列檢測器的基本工作過程(The basic working
process serial detector)
有限狀態(tài)機一般用來檢測一組或多組由二進制碼組成的脈沖序列信號,廣泛應用于在數(shù)字系統(tǒng)中。當該特定序列檢測器連續(xù)接收到一組二進制碼,如果這組二進制碼與檢測器中預先設(shè)置的碼能匹配成功,就輸出1,否則輸出0。因為該檢測的關(guān)鍵在必須連續(xù)接受正確碼,中間只要出錯以為,就必須重新進行檢測,所以要求該檢測器記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所有的串行二進制碼都能連續(xù)匹配成功。檢測二進制碼中,只要有任何一位沒匹配成功都回到初始狀態(tài)重新開始匹配[2]。方框圖如圖2所示。
圖2 狀態(tài)流程圖
Fig.2 State flow diagram
3 狀態(tài)機的基本設(shè)計思想(The basic design idea of
state machine)
在數(shù)字系統(tǒng)中,當狀態(tài)連續(xù)變化,我們可以采用狀態(tài)機的設(shè)計思想來提高設(shè)計效率,還可以增加程序的可讀性,從而降低錯誤的概率。而有限狀態(tài)機的設(shè)計思路也是數(shù)字系統(tǒng)中一種常用的設(shè)計方法之一。通常情況,有限的標準狀態(tài)機分為以下兩種,摩爾機和米立機。兩者不同在于,摩爾機中,它輸出只是當前狀態(tài)值的函數(shù),而且只在時鐘上跳沿時發(fā)生作用。而米立機的輸出是當前輸入值、當前輸出值、當前狀態(tài)值三者共同的函數(shù)。本例從一串二進制數(shù)碼中檢測出一個已預置的8位二進制碼“10001110”,每當增加一位二進制碼相當于增加一個狀態(tài),連同初始態(tài),總共需要用9個狀態(tài)來實現(xiàn)[3]。狀態(tài)轉(zhuǎn)換過程如圖3所示。
圖3 狀態(tài)轉(zhuǎn)換圖
Fig.3 State transition diagram
注意:此圖僅作為參考,檢測不同的二進制碼其過程不同!
4 設(shè)計過程(Design process)
4.1 硬件設(shè)備連接
(1)將EDA適配板JTAG接口用十芯排線和萬用下載區(qū)的SOPC JTAG口連接起來,萬用下載區(qū)的電源開關(guān)選擇到SOPC下載的一邊。
(2)將開發(fā)板上按要求設(shè)置好相關(guān)跳線。
(3)對EDA開發(fā)板供電。
4.2 軟件實現(xiàn)
(1)打開Quartus II軟件,由于在計算機軟硬件領(lǐng)域,一般的設(shè)計都是一項工程(Project),因此需要為工程建立一個放置此工程相關(guān)文件的文件夾,該文件夾作為EDA工程的工作目錄。創(chuàng)建一個工程,命名并保存到上述文件夾中。
(2)新建一個verilog代碼文件,主要模塊代碼如下:
always @ (posedge clk4 or posedge rst)
if (rst) begin key1_dff1<=1'b0;key1_dff2<= 1'b0;
key2_dff1<=1'b0; key2_dff2<=1'b0;end else begin
key1_dff1<=key1; key1_dff2<=key1_dff1;
key2_dff1<=key2; key2_dff2<=key2_dff1;end
assign value_0=key1_dff1 & !key1_dff2;//serial value is 0;
assign value_1=key2_dff1 & !key2_dff2;//serial value is 1;
(3)將設(shè)計文件加入工程。
(4)選擇目標芯片。
(5)選擇配置器件的工作方式。
(6)選擇配置器件和編程方式。
(7)選擇輸出設(shè)置。
(8)選擇目標芯片的閑置引腳的狀態(tài)。
(9)編譯。
(10)仿真。
(11)應用RTL電路圖觀察器。
(12)引腳鎖定。
引腳分配如下:管腳標號led0到led7分別接到LED流水燈的8位輸入端上,key1和key2接按鍵的輸入口,buzzer接led燈。100腳接rst使系統(tǒng)復位。管腳標號對應的I/O如下所示:
User Assignments Node Name
set_location_assignment PIN_79 -to led[0] set_location_assignment PIN_82 -to led[1]set_location_assignment PIN_83 -to led[2]
set_location_assignment PIN_84 -to led[3] set_location_assignment PIN_85 -to led[4] set_location_assignment PIN_91 -to led[5]
set_location_assignment PIN_94 -to led[6] set_location_assignment PIN_96 -to led[7] set_location_assignment PIN_100 -to rst
set_location_assignment PIN_99 -to key1 set_location_assignment PIN_98 -to key2 set_location_assignment PIN_41 -to clk4
set_location_assignment PIN_97 -to buzzer
5 結(jié)論(Conclusion)
經(jīng)過以上軟硬件設(shè)計,基本達到設(shè)計目標,能夠?qū)崿F(xiàn)檢測“110”序列,當檢測到該序列后點亮EDA開發(fā)板上對應的LED燈。需要注意的是,時鐘頻率不要選擇太高,可以選擇幾百赫茲的頻率。
參考文獻(References)
[1] 韓芝俠.基于EDA技術(shù)的復雜數(shù)字電路設(shè)計[J].寶雞文理學院學報(自然科學版),2013(01):35-38.
[2] 周小仨.EDA技術(shù)在數(shù)字電子技術(shù)實驗中的應用[J].電子制作,2014(15):27-28.
[3] 李洪奇.可編程序列脈沖檢測器的設(shè)計[J].聊城大學學報(自然科學版),2003(02):72-74.
小編推薦優(yōu)秀電子期刊 電力技術(shù)如何投稿
《電力技術(shù)》是由國家電力監(jiān)管委員會主管,中國電力企業(yè)聯(lián)合會科技開發(fā)服務中心主辦,國內(nèi)外公開發(fā)行的綜合性專業(yè)刊物,也是中國電力企業(yè)聯(lián)合會技術(shù)會刊。本刊曾用名為《電力標準化與計量》、《電力標準化與技術(shù)經(jīng)濟》,先后由水利電力部、能源部、電力部、國家電力公司、中國電力企業(yè)聯(lián)合會主管并主辦,長期行使機關(guān)技術(shù)刊物、行業(yè)刊物的職能。
轉(zhuǎn)載請注明來自發(fā)表學術(shù)論文網(wǎng):http:///dzlw/3285.html