時(shí)間:2023-05-30 08:53:01
開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇vhdl語(yǔ)言,希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進(jìn)步。
關(guān)鍵詞:vhdl;CPLDCPU
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1009-9166(2008)33(c)-0049-01
CPU因其在各大系統(tǒng)中處于核心位置而在硬件電路設(shè)計(jì)中備受關(guān)注,但因其結(jié)構(gòu)復(fù)雜,所涉專業(yè)背景多而不被一般人掌握。CPU設(shè)計(jì)極具代表性,雖發(fā)展日新月異,但就其基本原理而言大同小異。VHDL語(yǔ)言是符合IEEE標(biāo)準(zhǔn)的當(dāng)今世界最為流行的硬件描述語(yǔ)言。下文通過對(duì)CPU結(jié)構(gòu)模型的簡(jiǎn)化,依托綜合實(shí)驗(yàn)平臺(tái),所描述的簡(jiǎn)易4位CPU,能實(shí)現(xiàn)加、減、乘、移位等操作。
一、系統(tǒng)功能設(shè)計(jì)。精簡(jiǎn)CPU結(jié)構(gòu)模型,運(yùn)用Altera公司的MAX7000s系列芯片,依托綜合實(shí)驗(yàn)板,運(yùn)用狀態(tài)機(jī)實(shí)現(xiàn)了微機(jī)指令系統(tǒng)。其指令的分析和執(zhí)行過程與微機(jī)中的CPU相似,能完成簡(jiǎn)單的算數(shù)運(yùn)算和邏輯運(yùn)算。
二、設(shè)計(jì)與實(shí)現(xiàn)。(一)、簡(jiǎn)易4位CPU的基本結(jié)構(gòu)單元。1)程序計(jì)數(shù)器;2)輸入與MAR(Memory Access Register);3)16×8RAM;4)指令寄存器;5)累加器(Accumulator);6)二進(jìn)制顯示(Binary Display);7)B寄存器(B Register);8)輸出寄存器(Output Register);9)運(yùn)算器(Calculater)
(二)、尋址方式介紹。本設(shè)計(jì)中的4位CPU指令共有8個(gè)且可分為兩種類型,如下表:
對(duì)狀態(tài)機(jī)的主要部分的描述和注釋:IF(clk'event AND clk='0')THEN--時(shí)鐘下降沿觸發(fā)
IF(run='1')THEN--如果CPU運(yùn)行信號(hào)為
CASE pstate IS
WHEN s0=>nstate
f1:=true;--標(biāo)志f1置true
IF(breg="00000000")THEN--如果B寄存器值為0
mar
END IF;
WHEN s1=>nstate
IF(breg="00000000")THEN--如果B寄存器值為0
IF(flag=true)THEN --標(biāo)志為true
pc
flag:=false;--標(biāo)志flag置false
END IF;--如果不滿足條件,是因?yàn)檎龍?zhí)行多次移位的指令
END IF;--只有移位完才能執(zhí)行下一條指令,所以程序計(jì)數(shù)器數(shù)值不變
(四)、簡(jiǎn)易4位CPU功能仿真(加法)。以下是計(jì)算10+15+17-20=1C(十六進(jìn)制加減計(jì)算)的VHDL源程序,這部分將寫入ROM中:ARCHITECTURE rtl OF ROM16x8_1 IS
BEGIN
dataout
"00011010" WHEN (address="0001" AND ce='0') ELSE
"00011011" WHEN (address="0010" AND ce='0') ELSE
"00101100" WHEN (address="0011" AND ce='0') ELSE
"11100000" WHEN (address="0100" AND ce='0') ELSE
"11110000" WHEN (address="0101" AND ce='0') ELSE
"00010000" WHEN (address="1001" AND ce='0') ELSE
"00010101" WHEN (address="1010" AND ce='0') ELSE
"00010111" WHEn (address="1011" AND ce='0') ELSE
"00100000" WHEN (address="1100" AND ce='0') ELSE
"00000000";
END ARCHITECTURE rtl;
10+15+17-20=1C(十六進(jìn)制加減計(jì)算)仿真波形圖如下:
總結(jié):采用自頂向下的設(shè)計(jì)方法,將復(fù)雜的CPU有效劃分位狀態(tài)機(jī)模型再進(jìn)行設(shè)計(jì)和編程,并用QuartusII軟件進(jìn)行了仿真,最終在MAX7000s綜合電路板上驗(yàn)證通過,很好地模擬了CPU的工作過程。但此設(shè)計(jì)亦有不足之處:1.沒有直接實(shí)現(xiàn)除法;2.算數(shù)沒有優(yōu)先級(jí)。另外,綜合開發(fā)板上的MAX7000s系列性能過低也是制約設(shè)計(jì)復(fù)雜的數(shù)字電路障礙之一。
作者單位:北京郵電大學(xué)電信工程學(xué)院
作者簡(jiǎn)介:吉祥(1986年-),男,漢族,上海長(zhǎng)寧區(qū)人,北京郵電大學(xué) 電信工程學(xué)院2005級(jí)電子信息工程本科生。
參考文獻(xiàn):
[1]張亦華,延明.數(shù)字電路EDA入門――VHDL程序?qū)嵗痆M].北京.北京郵電大學(xué)出版社.2002
[2]姜立東.VHDL語(yǔ)言程序設(shè)計(jì)及應(yīng)用[M].北京:北京郵電大學(xué)出版社.2004
關(guān)鍵詞:教學(xué)改革 實(shí)踐教學(xué) VHDL語(yǔ)言
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)09(a)-0117-02
VHDL語(yǔ)言[1-2](VHDL,VHSIC (Very High Speed Integrated Circuit)Hardware Description Language)是一種標(biāo)準(zhǔn)的數(shù)字系統(tǒng)硬件電路設(shè)計(jì)語(yǔ)言,于1983年由美國(guó)國(guó)防部(DOD) 為實(shí)現(xiàn)其高速集成電路計(jì)劃發(fā)起創(chuàng)建的一種高速集成電路硬件描述語(yǔ)言,其目的是為了給數(shù)字電路的描述與模擬提供一個(gè)基本的標(biāo)準(zhǔn)。VHDL語(yǔ)言在1985年完成第一版,1987年成為IEEE標(biāo)準(zhǔn)(IEEE STD1076-1987),1993年增修為(IEEE STD1076-1993)標(biāo)準(zhǔn)。VHDL語(yǔ)言為高級(jí)硬件行為描述型語(yǔ)言,為所有可編程邏輯器件廠商(如Xilinx和Altera公司等)所支持,已成為電路設(shè)計(jì)人員和電子設(shè)計(jì)工程師必須掌握的工具語(yǔ)言。硬件邏輯設(shè)計(jì)技術(shù)[3]是電子信息類專業(yè)的重要專業(yè)課,該課程包括課堂理論教學(xué)和實(shí)驗(yàn)兩個(gè)模塊,其特點(diǎn)是軟硬件結(jié)合,該課程的綜合知識(shí)面寬及工程實(shí)踐性強(qiáng)。電子信息類專業(yè)的學(xué)生掌握硬件邏輯設(shè)計(jì)能力無(wú)論是對(duì)學(xué)生完成畢業(yè)設(shè)計(jì)或工程創(chuàng)新,還是促進(jìn)學(xué)生就業(yè)都有重要意義。因此,硬件邏輯設(shè)計(jì)的實(shí)踐性教學(xué)在電子信息類專業(yè)實(shí)踐教學(xué)中的地位日益顯著,如何開設(shè)好VHDL語(yǔ)言及硬件邏輯設(shè)計(jì)是當(dāng)前硬件設(shè)計(jì)語(yǔ)言課程中的一個(gè)非常重要的問題[4-6]。
1 教學(xué)目標(biāo)
《VHDL語(yǔ)言及數(shù)字邏輯設(shè)計(jì)》課程屬電子信息類專業(yè)技術(shù)類選修課,是將控制,仿真與芯片設(shè)計(jì)相結(jié)合的一門硬件設(shè)計(jì)語(yǔ)言。通過本課程的學(xué)習(xí),使學(xué)生通過對(duì)VHDL語(yǔ)言及EDA技術(shù)的學(xué)習(xí)和實(shí)踐訓(xùn)練,獲得現(xiàn)代硬件數(shù)字邏輯設(shè)計(jì)的軟件化設(shè)計(jì)方法,了解并初步掌握數(shù)字系統(tǒng)硬件電路設(shè)計(jì)領(lǐng)域的最新技術(shù);通過有針對(duì)性、分層次、分階段地實(shí)施實(shí)踐教學(xué),激發(fā)并調(diào)動(dòng)學(xué)生創(chuàng)造性思維能力,強(qiáng)化學(xué)生的實(shí)踐動(dòng)手能力和創(chuàng)新能力,為學(xué)生在硬件邏輯設(shè)計(jì)領(lǐng)域的進(jìn)一步深入探索和進(jìn)行創(chuàng)新奠定工程基礎(chǔ),以及應(yīng)用VHDL及EDA工具開發(fā)設(shè)計(jì)數(shù)字系統(tǒng)的基本方法及技術(shù),為學(xué)生完成畢業(yè)設(shè)計(jì)及將來(lái)的工作等打下扎實(shí)的基礎(chǔ)。
另外,本課程的教學(xué)難點(diǎn)是,一方面要把握學(xué)生的數(shù)字電路基礎(chǔ)水平;另一方面要高度概括VHDL語(yǔ)言的專業(yè)課內(nèi)容,深入淺出,還要照顧到彼此之間的聯(lián)系,尤其是面向應(yīng)用。因此,首先講清楚確知學(xué)習(xí)VHDL語(yǔ)言的意義和FPGA的工作原理,并進(jìn)一步講清VHDL語(yǔ)言的基本結(jié)構(gòu)和以及VHDL語(yǔ)言中主要描述語(yǔ)句的特點(diǎn)和用途,并設(shè)計(jì)一些基本邏輯電路實(shí)例,目的在于讓學(xué)生熟悉VHDL語(yǔ)言的整個(gè)過程,能運(yùn)用VHDL語(yǔ)言編程及進(jìn)行仿真,并掌握其中的關(guān)鍵技術(shù)。這樣便于學(xué)生進(jìn)一步學(xué)習(xí)和理解VHDL語(yǔ)言的應(yīng)用,增強(qiáng)學(xué)生在工作中的競(jìng)爭(zhēng)能力,達(dá)到可以用VHDL語(yǔ)言設(shè)計(jì)數(shù)字邏輯電路和數(shù)字應(yīng)用系統(tǒng),并在CPLD/FPGA可編程邏輯器件上實(shí)現(xiàn)自己的設(shè)計(jì)。
2 教學(xué)內(nèi)容
VHDL語(yǔ)言如今已經(jīng)廣泛被應(yīng)用到FPGA/CPLD和ASIC中的設(shè)計(jì)。VHDL語(yǔ)言具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化了硬件邏輯設(shè)計(jì)任務(wù),提高了硬件設(shè)計(jì)效率和可靠性。而且VHDL語(yǔ)言具有與具體硬件電路無(wú)關(guān)和與硬件設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,并具有良好的電路行為描述的能力,在語(yǔ)言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面表現(xiàn)了強(qiáng)大生命力和應(yīng)用潛力。因此,我們選擇VHDL語(yǔ)言作為這門課的課堂教學(xué)內(nèi)容。
《VHDL語(yǔ)言及硬件邏輯電路設(shè)計(jì)》課程內(nèi)容的主要教學(xué)思路是,以VHDL硬件描述語(yǔ)言為硬件設(shè)計(jì)表達(dá)手段,以Xilinx公司的ISE軟件為硬件設(shè)計(jì)開發(fā)工具,并以FPGA/CPLD可編程邏輯器件開發(fā)系統(tǒng)為教學(xué)實(shí)踐平臺(tái),來(lái)實(shí)現(xiàn)學(xué)生對(duì)數(shù)字電路系統(tǒng)的開發(fā)設(shè)計(jì),培養(yǎng)學(xué)生自頂而下的層次化設(shè)計(jì)思想,提高學(xué)生應(yīng)用實(shí)踐創(chuàng)新能力。
在教學(xué)內(nèi)容上,刪去了一些FPGA/CPLD可編程器件結(jié)構(gòu)內(nèi)容的過多講解,重點(diǎn)講解VHDL語(yǔ)言內(nèi)容,并利用有限的課時(shí)補(bǔ)充了硬件邏輯電路設(shè)計(jì)方面的一些最新進(jìn)展,以利于學(xué)生開闊視野和提高學(xué)習(xí)興趣;針對(duì)VHDL語(yǔ)言語(yǔ)法豐富的特點(diǎn),增加了大量課堂實(shí)例,并結(jié)合應(yīng)用對(duì)VHDL語(yǔ)言中關(guān)鍵要點(diǎn)進(jìn)行詳細(xì)說(shuō)明,便于學(xué)生理解和掌握VHDL課程內(nèi)容;在開發(fā)軟件方面以Xilinx公司的ISE軟件作為平臺(tái),并針對(duì)硬件仿真,重點(diǎn)是讓學(xué)生學(xué)會(huì)并熟練掌握用ISE軟件進(jìn)行數(shù)字系統(tǒng)仿真的基本過程和操作;在實(shí)踐訓(xùn)練方面,精心設(shè)計(jì)了課堂練習(xí)/課后習(xí)題和配套實(shí)驗(yàn),提高學(xué)生實(shí)踐動(dòng)手能力,從而達(dá)到良好的教學(xué)效果。
3 多層次式教學(xué)模式
《VHDL語(yǔ)言及硬件邏輯電路設(shè)計(jì)》課程是一門工程實(shí)踐性很強(qiáng)的課程,我們提出以實(shí)踐訓(xùn)練為主,邊學(xué)邊練的硬件邏輯設(shè)計(jì)教學(xué)模式,重點(diǎn)加大對(duì)學(xué)生實(shí)踐能力、解決實(shí)際問題能力及團(tuán)體合作精神等綜合素質(zhì)的培養(yǎng),使“數(shù)字邏輯電路設(shè)計(jì)實(shí)踐教學(xué)”在本科培養(yǎng)中發(fā)揮更重要的作用。在教學(xué)過程中,提出多層次的實(shí)踐教學(xué)模式,通過大量的多層次實(shí)例教學(xué)讓學(xué)生主動(dòng)建構(gòu)知識(shí)、增長(zhǎng)技能、發(fā)展能力。
我們將《VHDL語(yǔ)言及硬件邏輯電路設(shè)計(jì)》課程的實(shí)踐教學(xué)分為三個(gè)層次。
第一層次是課堂實(shí)驗(yàn)教學(xué),這一階段主要培養(yǎng)的是學(xué)生的主動(dòng)學(xué)習(xí)能力,通過課堂實(shí)驗(yàn)練習(xí)使學(xué)生掌握和熟練使用開發(fā)工具,具備基本的硬件編程能力。課堂實(shí)驗(yàn)教學(xué)是針對(duì)教師在講授理論內(nèi)容后,對(duì)應(yīng)設(shè)計(jì)相應(yīng)知識(shí)內(nèi)容的實(shí)驗(yàn)項(xiàng)目,并編寫課堂實(shí)驗(yàn)指導(dǎo)書。在理論課部分內(nèi)容方面,首先講解VHDL語(yǔ)言的基本單元,如VHDL語(yǔ)言設(shè)計(jì)的基本單元、構(gòu)成、子結(jié)構(gòu)描述(元件說(shuō)明,元件安裝)等,在VHDL語(yǔ)言的數(shù)據(jù)類型方面,主要講解VHDL語(yǔ)言的客體及分類、整數(shù)類型和數(shù)組類型,表達(dá)式與運(yùn)算符;其次,介紹VHDL語(yǔ)言主要描述語(yǔ)句,如順序描述語(yǔ)句和并發(fā)描述語(yǔ)句;最后介紹基本邏輯電路的設(shè)計(jì),如組合邏輯電路的設(shè)計(jì),時(shí)序電路的設(shè)計(jì),存儲(chǔ)器和有限狀態(tài)機(jī)設(shè)計(jì)等。那么針對(duì)課程的理論內(nèi)容,設(shè)計(jì)的實(shí)驗(yàn)主要有:(1)ISE工具的使用;(2)編碼器和譯碼器等組合邏輯電路的設(shè)計(jì);(3)有限狀態(tài)機(jī)和計(jì)數(shù)器等時(shí)序電路的設(shè)計(jì);(4)RAM和FIFO等存儲(chǔ)器的設(shè)計(jì)。通過這些基礎(chǔ)知識(shí)點(diǎn)的實(shí)驗(yàn)練習(xí),能讓學(xué)生較好的熟悉VHDL語(yǔ)言的基礎(chǔ)知識(shí)和語(yǔ)句的基本應(yīng)用,從而較好的掌握VHDL語(yǔ)言中的關(guān)鍵內(nèi)容,加深了對(duì)VHDL語(yǔ)言知識(shí)點(diǎn)的感性認(rèn)識(shí)和全面掌握,達(dá)到可以用VHDL語(yǔ)言設(shè)計(jì)數(shù)字邏輯電路和數(shù)字應(yīng)用系統(tǒng)。在課堂上通過對(duì)算法實(shí)例的程序執(zhí)行仿真模擬。
第二個(gè)層次是綜合性設(shè)計(jì)實(shí)驗(yàn),這一層次的實(shí)驗(yàn)要求學(xué)生已經(jīng)掌握基本的VHDL語(yǔ)言知識(shí)并能綜合地運(yùn)用所學(xué)內(nèi)容,主要培養(yǎng)學(xué)生動(dòng)手實(shí)踐能力、解決實(shí)際問題能力及團(tuán)隊(duì)合作能力。綜合性設(shè)計(jì)實(shí)驗(yàn)以硬件開發(fā)板實(shí)驗(yàn)為主,主要包括跑馬燈、VGA顯示、波形發(fā)生器、通用異步收發(fā)器、SRAM接口設(shè)計(jì)等題目。在實(shí)驗(yàn)中,教師要求學(xué)生每4人為一組進(jìn)行實(shí)踐練習(xí)。在實(shí)驗(yàn)過程中,要求學(xué)生能上機(jī)編寫代碼并調(diào)試VHDL程序,每組學(xué)生對(duì)實(shí)驗(yàn)過程和實(shí)驗(yàn)結(jié)果進(jìn)行分析和總結(jié),并提交硬件實(shí)驗(yàn)報(bào)告。在實(shí)驗(yàn)課中,教師根據(jù)各個(gè)小組提交的實(shí)驗(yàn)報(bào)告,首先安排各小組進(jìn)行實(shí)踐動(dòng)手經(jīng)驗(yàn)交流,然后選擇一些優(yōu)秀小組中的代表上臺(tái)做實(shí)驗(yàn)心得匯報(bào),并現(xiàn)場(chǎng)進(jìn)行問題分析和技術(shù)總結(jié),加深了對(duì)VHDL語(yǔ)言中知識(shí)點(diǎn)的感性認(rèn)識(shí)和全面掌握。通過這些活動(dòng),不但讓學(xué)生熟悉了硬件設(shè)計(jì)的開發(fā)環(huán)境,提高了硬件設(shè)計(jì)編程技巧,而且還能激勵(lì)學(xué)生主動(dòng)學(xué)習(xí)VHDL語(yǔ)言的興趣,提高學(xué)生的分析和解決實(shí)際問題的能力,并培養(yǎng)學(xué)生團(tuán)體合作能力。
第三個(gè)層次是課程設(shè)計(jì)實(shí)驗(yàn),這一階段要求學(xué)生獨(dú)立完成硬件工程課題的設(shè)計(jì)與實(shí)現(xiàn),在強(qiáng)調(diào)學(xué)生獨(dú)立設(shè)計(jì)實(shí)現(xiàn)的同時(shí),更加注重學(xué)生綜合能力的培養(yǎng)。課程設(shè)計(jì)題目采取開放式選題,可由教師提供背景明確和啟發(fā)性強(qiáng)的題目,也可以由學(xué)生自主選擇題目并提交相應(yīng)的課程題目設(shè)計(jì)目標(biāo)、任務(wù)和方法,經(jīng)教師審核批準(zhǔn)后作為課程設(shè)計(jì)題目。另外學(xué)生也可以根據(jù)個(gè)人興趣選擇不同類型的課程設(shè)計(jì)題目后,由學(xué)生自行擬定實(shí)驗(yàn)方案,查閱文獻(xiàn)資料和編寫VHDL程序,自主解決實(shí)驗(yàn)問題,并對(duì)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析總結(jié),撰寫課程設(shè)計(jì)研究報(bào)告。通過這些課程設(shè)計(jì)實(shí)驗(yàn)設(shè)計(jì),在培養(yǎng)學(xué)生自主學(xué)習(xí)及主動(dòng)學(xué)習(xí)的同時(shí),也鍛煉學(xué)生的動(dòng)手能力和表達(dá)能力。
4 結(jié)語(yǔ)
VHDL語(yǔ)言及數(shù)字邏輯設(shè)計(jì)課程是一門工程實(shí)踐性很強(qiáng)的課程,通過有多層次地實(shí)施實(shí)踐教學(xué),充分發(fā)揮實(shí)踐教學(xué)的優(yōu)勢(shì),激發(fā)了學(xué)生的學(xué)習(xí)熱情,強(qiáng)化學(xué)生的實(shí)踐動(dòng)手能力和創(chuàng)新能力,并培養(yǎng)學(xué)生獨(dú)立思考、自主創(chuàng)新的學(xué)習(xí)習(xí)慣,取得了較好的教學(xué)效果。該實(shí)踐教學(xué)體系遵循人才培養(yǎng)的客觀規(guī)律,將多層次實(shí)驗(yàn)從簡(jiǎn)單到復(fù)雜、從基礎(chǔ)實(shí)驗(yàn)練習(xí)到綜合創(chuàng)新實(shí)驗(yàn),貫穿于整個(gè)VHDL語(yǔ)言及數(shù)字邏輯設(shè)計(jì)課程學(xué)習(xí)過程,使學(xué)生在循序漸進(jìn)的實(shí)踐教學(xué)過程中成長(zhǎng)。
參考文獻(xiàn)
[1] 侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2009.
[2] 譚會(huì)生,張昌凡,EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2011.
[3] 曾志廉,何清平,通用FPGA試驗(yàn)系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)信息,2007(11):234-235.
[4] 葉波,趙倩.“集成電路系統(tǒng)設(shè)計(jì)”課程教學(xué)改革探討[J].中國(guó)電力教育,2010(16):109-110.
關(guān)鍵詞:交通燈;VHDL;有限狀態(tài)機(jī);仿真
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)27-7796-02
Design of Traffic Light Control System based on VHDL Finite State Machine
XU Da-zhao
(Jiangsu Vocational and Technical College of Finance & Economics, Huaian 223003, China)
Abstract: According to intersection traffic light control requirements, the paper puts forward a design of traffic light control system with VHDL and finite state machine. Under the MAX + PLUS II simulation, the results show that this design meets the design requirements, then carries on the test in the experiment box, confirmsthat this design method is practical and feasible.
Key words: traffic light; VHDL; finite state machine; simulation
隨著電子技術(shù)的發(fā)展,特別是大規(guī)模集成電路的研制和發(fā)展,電子電路的設(shè)計(jì)變得越來(lái)越復(fù)雜,使用“語(yǔ)言”進(jìn)行電子設(shè)計(jì)已成為一種趨勢(shì)[1]。VHDL語(yǔ)言是電子設(shè)計(jì)的主流硬件描述語(yǔ)言,它更適合進(jìn)行行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過多地考慮具體的硬件結(jié)構(gòu),從而很容易實(shí)現(xiàn)自頂向下的設(shè)計(jì)流程。在進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)的時(shí)候,如果實(shí)現(xiàn)一個(gè)控制功能,通常會(huì)選擇狀態(tài)機(jī),因?yàn)闊o(wú)論是與基于VHDL的其他設(shè)計(jì)方案相比,還是與可完成相似功能的CPU相比,在很多方面有限狀態(tài)機(jī)都有難以超越的優(yōu)越性。
1 系統(tǒng)功能要求分析
本系統(tǒng)要求一個(gè)由一條主干道和一條支道公路的匯合點(diǎn)形成的十字交叉路口的智能交通燈控制器,實(shí)現(xiàn)交通無(wú)人自動(dòng)管理。要求是優(yōu)先保證主干道的通暢,因此,平時(shí)處于“主干道綠燈,支道紅燈”的狀態(tài),只有在支到有車輛要穿行主干道時(shí),才將交通切換“主干道紅燈,支道綠燈”的狀態(tài)。此外,主干道和支道每次通行的時(shí)間不得低于30s,而在兩個(gè)狀態(tài)交換過程出現(xiàn)的“主黃,支紅”和“主紅,支黃”狀態(tài),持續(xù)時(shí)間都為4s。根據(jù)交通信號(hào)燈控制的要求,我們把它分解為定時(shí)器和控制器兩個(gè)主要部分,其原理框圖如圖1所示。
圖中MG、MY、MR分別表示主干道上的綠燈、黃燈、紅燈,BG、BY、BR分別表示支道上的綠燈、黃燈、紅燈,它們的值為“1”時(shí)表示燈亮,為“0”時(shí)表示燈滅;sb表示支道傳感器是否檢測(cè)車輛存在,sb為“1”時(shí)表示有車,為“0”時(shí)表示無(wú)車;定時(shí)器在控制器提供的計(jì)時(shí)信號(hào)en和清零信號(hào)clr的作用下完成定時(shí)功能,并向控制器提供30s、4s的計(jì)時(shí)信號(hào);控制器是本系統(tǒng)的核心,它的作用是根據(jù)支道傳感器和定時(shí)器的信號(hào),判斷、調(diào)整和控制整個(gè)系統(tǒng)的狀態(tài),并控制定時(shí)電路工作,提供適當(dāng)?shù)臒艄饪刂菩盘?hào)。
2 交通燈控制器的程序設(shè)計(jì)
2.1 有限狀態(tài)機(jī)的建立
有限狀態(tài)機(jī)(Finite State Machine,簡(jiǎn)稱FSM)是一類很重要的時(shí)序電路,是許多數(shù)字系統(tǒng)的核心部件[3],也是實(shí)時(shí)系統(tǒng)設(shè)計(jì)中的一種數(shù)學(xué)模型,是一種重要的、易于建立的、應(yīng)用比較廣泛的、以描述控制特性為主的建模方法,它可以應(yīng)用于從系統(tǒng)分析到設(shè)計(jì)的所有階段。有限狀態(tài)機(jī)的優(yōu)點(diǎn)在于簡(jiǎn)單易用,狀態(tài)間的關(guān)系清晰直觀。建立有限狀態(tài)機(jī)主要有兩種方法:“狀態(tài)轉(zhuǎn)移圖”和“狀態(tài)轉(zhuǎn)移表”,在此使用狀態(tài)轉(zhuǎn)移圖來(lái)描述控制器的工作過程。
根據(jù)主干道和支道的交通燈的變化情況,可以定義這樣四種狀態(tài):S0為初始狀態(tài),主干道綠燈亮,支道紅燈亮;S1為主干道黃燈亮,支道紅燈亮;S2為主干道紅燈亮,支道綠燈亮;S3為主干道紅燈亮,支道黃燈亮[4]。這四種狀態(tài)的轉(zhuǎn)換關(guān)系如圖2所示。在狀態(tài)轉(zhuǎn)換的過程中,有這樣一個(gè)規(guī)律:當(dāng)進(jìn)行狀態(tài)轉(zhuǎn)換時(shí),定時(shí)器必須清零,此時(shí)clr為0,en為0;保持狀態(tài)時(shí),定時(shí)器一直進(jìn)行定時(shí),此時(shí)clr為1,en為1。
2.2 有限狀態(tài)機(jī)的描述方式
VHDL沒有對(duì)狀態(tài)機(jī)的描述規(guī)定一般的格式,但是為了使綜合工具從VHDL描述識(shí)別并綜合出狀態(tài)機(jī),需要遵循一定的編碼風(fēng)格,基本的FSM的編碼風(fēng)格是用CASE語(yǔ)句或其他等價(jià)方法來(lái)描述。一個(gè)有限狀態(tài)機(jī)總是可以被分成次態(tài)譯碼、狀態(tài)寄存器、輸出譯碼三個(gè)模塊。因此,有限狀態(tài)機(jī)描述方式有如下三種:三進(jìn)程描述、雙進(jìn)程描述和單進(jìn)程描述,但是用VHDL描述狀態(tài)機(jī)一般采用進(jìn)程(process)描述:一個(gè)是時(shí)鐘進(jìn)程,控制狀態(tài)機(jī)在時(shí)鐘有效沿根據(jù)條件得到下一狀態(tài)并進(jìn)行狀態(tài)遷移;另一個(gè)進(jìn)程是組合進(jìn)程,不受時(shí)鐘控制,由輸出相關(guān)的信號(hào))觸發(fā),該進(jìn)程根據(jù)觸發(fā)信號(hào)決定狀態(tài)機(jī)的輸出信號(hào)值[5]。
2.3 交通燈控制器的VHDL程序[6]
根據(jù)交通信號(hào)燈控制器的狀態(tài)轉(zhuǎn)移圖和有限狀態(tài)機(jī)的描述方式,在此采用雙進(jìn)程描述方式,寫出交通燈控制器的VHDL程序如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY jtd IS
PORT
(clk,sb,reset: IN STD_LOGIC;
MR,MY,MG,BR,BY,BG: OUTSTD_LOGIC);
END jtd;
ARCHITECTURE art OF jtdIS
type state_type is (S0,S1,S2,S3);
SIGNAL state : state_type;
BEGIN
change_state:PROCESS (CLK) --CLK為敏感信號(hào)量
VARIABLEs: integer range0to 255;--s為秒定時(shí)器
VARIABLEclr,en :bit;--clr,en為秒定時(shí)器使能信號(hào)
BEGIN
IF reset = '1' THENstate
ELSIF (clk'event and clk='1') THEN
IFclr='0' THENs:=0;-- clr為0,定時(shí)器清零
ELSIF en='0'THENs:=s;-- en為0,定時(shí)器保持不變
ELSEs:=s+1;--clr為1,en為1時(shí),正常計(jì)時(shí)
ENDIF;
CASE state IS
WHEN S0=> IF S
--主干道綠燈持續(xù)時(shí)間未到30s,維持S0狀態(tài)
ELSIF (S>=30 AND sb='0')THEN state
--已過30s但支道無(wú)車,維持S0狀態(tài)
ELSIF (S>=30 AND sb='1') THEN state
--已過30s且支道有車,轉(zhuǎn)換到S1狀態(tài)
END IF;
WHEN S1=> IF S=4 THENstate
ELSEstate
END IF;
WHEN S2 => IF S
--支道綠燈持續(xù)時(shí)間未到30s,維持S2狀態(tài)
ELSIF (S>=30 AND sb='1') THEN state
--已過30s但支道有車,維持S2狀態(tài)
ELSif (S>=30 AND sb='0') thenstate
--已到30s且支道無(wú)車,轉(zhuǎn)換到S3狀態(tài)
END IF;
WHEN S3 => IF S=4 THENstate
ELSEstate
END IF;
END CASE;
END IF;
END PROCESS change_state;
output_process:PROCESS (state)
BEGIN
CASE state IS
WHEN S0 =>MR
--主干道綠燈亮,支道紅燈亮
WHEN S1 =>MR
--主干道黃燈亮,支道紅燈亮
WHEN S2 =>MR
WHEN S3 =>MR
-- 主干道紅燈亮,支道黃燈亮
END CASE;
END PROCESS output_process;
END art;
3 系統(tǒng)仿真
在MAX+PLUS II環(huán)境下進(jìn)行了仿真[7-8],其時(shí)序仿真圖如圖3所示。
4 結(jié)束語(yǔ)
仿真結(jié)果表明,本設(shè)計(jì)按要求實(shí)現(xiàn)了交通燈的控制。把程序下載到實(shí)驗(yàn)箱的FPGA芯片(EP1K30QC208-3)上,進(jìn)行硬件測(cè)試,發(fā)現(xiàn)電路工作正常,控制結(jié)果完全符合要求。
參考文獻(xiàn):
[1] 史小波,程夢(mèng)璋,許會(huì)芳.集成電路設(shè)計(jì)VHDL教程[M]. 北京清華大學(xué)出版社,2005:12-15.
[2] 文暢.基于FPGA/CPLD和VHDL語(yǔ)言的交通燈控制系統(tǒng)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2007,(3).
[3] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M]西安:西安電子科技大學(xué)出版社,2004:198-199.
[4] 田瑞利,陳海濱.基于VHDL有限狀態(tài)機(jī)的交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)[J].廣州航海高等專科學(xué)校學(xué)報(bào),2008,15(3)31-33.
[5] 潘松, 黃繼業(yè). EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社, 2002:170-174.
[6] 徐春嬌. 基于VHDL 狀態(tài)機(jī)設(shè)計(jì)的智能交通控制燈[J].國(guó)外電子元器件,2007(2):31-35。
關(guān)鍵詞:EDA;VHDL;電子技術(shù);虛擬實(shí)驗(yàn);仿真
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)14-0087-03
1引言
電子技術(shù)是計(jì)算機(jī)及電類專業(yè)的一門具有極強(qiáng)實(shí)踐性的基礎(chǔ)課,其教學(xué)過程是從理論知識(shí)的認(rèn)知到實(shí)踐知識(shí)的認(rèn)知、最后到實(shí)踐能力的認(rèn)知過程,實(shí)驗(yàn)環(huán)節(jié)是整個(gè)教學(xué)過程的關(guān)鍵,對(duì)教學(xué)質(zhì)量起著十分重要的作用。傳統(tǒng)的實(shí)踐教學(xué)方式,由于實(shí)驗(yàn)儀器的局限性、設(shè)備的相對(duì)陳舊實(shí)驗(yàn)效率較低,而且不具備電子設(shè)計(jì)技術(shù)及仿真功能,已經(jīng)不適應(yīng)現(xiàn)代教育的發(fā)展,更不適應(yīng)遠(yuǎn)程開放教育的現(xiàn)代化。為此將EDA技術(shù)應(yīng)用于電子技術(shù)教學(xué),克服傳統(tǒng)教學(xué)的不足,將傳統(tǒng)經(jīng)典理論與新知識(shí)、新技術(shù)很好地融會(huì)貫通,提出基于EDA平臺(tái)的虛擬電子實(shí)驗(yàn)的新模式,是適應(yīng)現(xiàn)代教育發(fā)展的必然趨勢(shì)。
2EDA技術(shù)的研究
EDA是Electronics Design Automation(即電子設(shè)計(jì)自動(dòng)化)的縮寫。是指以計(jì)算機(jī)為工作平臺(tái),融合了電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)最新成果的現(xiàn)代電子設(shè)計(jì)技術(shù)。它是由CAD發(fā)展起來(lái)的,是計(jì)算機(jī)信息技術(shù)、計(jì)算機(jī)圖形學(xué)、微電子技術(shù)、電路理論以及信號(hào)分析與信號(hào)處理等理論和技術(shù)的結(jié)晶。
EDA技術(shù)的基本特征:
(1) 自動(dòng)進(jìn)行產(chǎn)品全面設(shè)計(jì)。EDA技術(shù)根據(jù)設(shè)計(jì)輸入文件(HDL或電路原理圖)自動(dòng)地進(jìn)行邏輯編譯、化簡(jiǎn)、綜合、仿真、優(yōu)化、布局、布線、適配以及下載編程以生成目標(biāo)系統(tǒng),即將電子產(chǎn)品從電路功能仿真、性能分析、優(yōu)化設(shè)計(jì)到結(jié)果測(cè)試的全過程在計(jì)算機(jī)上自動(dòng)處理完成。
(2) 硬件電路的軟件設(shè)計(jì)方式。整個(gè)設(shè)計(jì)過程在下載配置前幾乎不涉及任何硬件,其硬件設(shè)計(jì)也是通過軟件測(cè)試實(shí)現(xiàn)的,如同修改程序一樣快捷方便。
(3) 集成化程度更高,可構(gòu)建片上系統(tǒng),且體積小,功耗低,可靠性高。隨著大規(guī)模集成芯片的發(fā)展,已能進(jìn)行更加復(fù)雜電路的芯片優(yōu)化設(shè)計(jì)和專用集成電路ASIC設(shè)計(jì)。
(4) 系統(tǒng)可現(xiàn)場(chǎng)編程,在線升級(jí)。
(5) 設(shè)計(jì)的移植性好,適合分工設(shè)計(jì)而且開發(fā)周期短,設(shè)計(jì)成本低,靈活性高。
EDA的工具種類繁多、特點(diǎn)各異,我們選擇了最具代表性的適合教學(xué)的仿真軟件,它是Altera 公司提供的Max+PlusⅡ平臺(tái),具有完全集成化、易學(xué)易用的可編程邏輯設(shè)計(jì)環(huán)境,主要用于設(shè)計(jì)新器件和中大規(guī)模CPLD/FPGA。它支持硬件描述語(yǔ)言、電路原理圖、時(shí)序圖等多種輸入方式,利用其所提供的標(biāo)準(zhǔn)門電路、芯片等邏輯器件,完成數(shù)字電路從設(shè)計(jì)輸入、編輯、編譯、仿真、封裝到下載的全過程。MAX+PlusII平臺(tái)可以保證所設(shè)計(jì)系統(tǒng)的可靠性、高效性和靈活性,其強(qiáng)大的圖形界面和完整的幫助文檔,使學(xué)生能夠輕松快速地掌握和使用該EDA平臺(tái),進(jìn)行邏輯電路及相關(guān)系統(tǒng)的設(shè)計(jì),從而達(dá)到虛擬化電子技術(shù)實(shí)踐的目的。
3VHDL語(yǔ)言
EDA技術(shù)需要對(duì)系統(tǒng)的行為、功能進(jìn)行正確的描述,硬件描述語(yǔ)言HDL(Hardware Description Language)是各種描述方法中最能體現(xiàn)EDA優(yōu)越性的描述方法。其描述的對(duì)象就是待設(shè)計(jì)電路的邏輯功能、實(shí)現(xiàn)該功能的算法、選用的電路結(jié)構(gòu)以及其他各種約束條件等。
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)超高速集成電路硬件描述語(yǔ)言是美國(guó)國(guó)防部在1982年作為超高速集成電路開發(fā)計(jì)劃的一部分,并于 1987年經(jīng)IEEE批準(zhǔn)為1076工業(yè)標(biāo)準(zhǔn)。VHDL作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言,VHDL是最具推廣前景的HDL。
VHDL具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和門級(jí)三個(gè)不同層次的設(shè)計(jì),在Top_Down設(shè)計(jì)的全過程中可方便地使用同一種語(yǔ)言。VHDL設(shè)計(jì)并不十分關(guān)心一個(gè)具體邏輯是靠何種方式實(shí)現(xiàn)的,設(shè)計(jì)人員不需通過門級(jí)原理圖描述電路,而是針對(duì)目標(biāo)進(jìn)行功能描述,把開發(fā)者的精力集中到邏輯所實(shí)現(xiàn)的功能上,將設(shè)計(jì)人員的工作重心提高到了系統(tǒng)功能的實(shí)現(xiàn)與調(diào)試上,只需花較少的精力用于物理實(shí)現(xiàn)。由于擺脫了電路細(xì)節(jié)的束縛,使得設(shè)計(jì)工作省時(shí)省力,加快了設(shè)計(jì)周期。
VHDL具有如下優(yōu)點(diǎn):
(1) VHDL是一門標(biāo)準(zhǔn)化語(yǔ)言,它是一種通用優(yōu)化設(shè)計(jì)程序語(yǔ)言,已被電子設(shè)計(jì)界公認(rèn)為標(biāo)準(zhǔn)的設(shè)計(jì)語(yǔ)言,適用于目前流行的各種EDA設(shè)計(jì)工具。
(2) VHDL是一門設(shè)計(jì)輸入語(yǔ)言,它可將復(fù)雜的硬件電路運(yùn)行過程以源程序的形式輸入到數(shù)字電路設(shè)計(jì)系統(tǒng)中,進(jìn)行系統(tǒng)仿真、自動(dòng)綜合。
(3) VHDL是一門網(wǎng)表語(yǔ)言,它的語(yǔ)言結(jié)構(gòu)使它可在計(jì)算機(jī)的設(shè)計(jì)環(huán)境中,是不同設(shè)計(jì)工具間相互通訊的一種低級(jí)格式,即生成的門級(jí)網(wǎng)表文件,可相互替換、兼容。
(4) VHDL是一門測(cè)試語(yǔ)言,VHDL在進(jìn)行數(shù)字電路設(shè)計(jì)描述的同時(shí),建立測(cè)試基準(zhǔn),對(duì)所設(shè)計(jì)的數(shù)字電路進(jìn)行功能模擬和仿真,以驗(yàn)證所設(shè)計(jì)電路是否滿足功能與時(shí)序需求。
(5) VHDL是一門可讀性語(yǔ)言,既可被計(jì)算機(jī)接受,也易被人所理解,它具有良好的可讀性,易于修改和發(fā)現(xiàn)錯(cuò)誤。用VHDL編寫的源程序既是設(shè)計(jì)文件,又是技術(shù)文檔。
經(jīng)過對(duì)EDA技術(shù)和VHDL語(yǔ)言的分析探討,確立了基于EDA平臺(tái)的虛擬電子實(shí)驗(yàn)課程的可行性,這種新的教學(xué)模式,能使學(xué)生在計(jì)算機(jī)上完成實(shí)驗(yàn)的全部仿真過程,能解決集成電路環(huán)境、虛擬設(shè)備、虛擬器件等傳統(tǒng)實(shí)驗(yàn)方法中無(wú)法克服的實(shí)驗(yàn)條件問題,可以完成各種不同水平的實(shí)驗(yàn)及課程設(shè)計(jì),大大地提高實(shí)驗(yàn)教學(xué)效率。應(yīng)用EDA技術(shù)的教學(xué)活動(dòng)與現(xiàn)代教育理念接軌,學(xué)生可掌握現(xiàn)代電子設(shè)計(jì)的思維和方法。
4基于EDA平臺(tái)的虛擬電子實(shí)驗(yàn)仿真示例
中規(guī)模集成電路在數(shù)字電路課程中是一個(gè)很重要的知識(shí)點(diǎn),是過渡到大規(guī)模集成電路的重要橋梁,所以教學(xué)中要安排中規(guī)模譯碼器、數(shù)據(jù)選擇器、計(jì)數(shù)器等多個(gè)實(shí)驗(yàn)。根據(jù)中規(guī)模電路結(jié)構(gòu)復(fù)雜的特點(diǎn),學(xué)生在原理圖和文本輸入形式中,選擇基于Max+PlusⅡ平臺(tái)的VHDL語(yǔ)言輸入法進(jìn)行實(shí)驗(yàn)設(shè)計(jì)和仿真。以下是驗(yàn)證60進(jìn)制計(jì)數(shù)器邏輯功能的虛擬電子實(shí)驗(yàn)仿真示例。
(1) 源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity cdu60is --實(shí)體
port (clk1,clr,ss :in std_logic;
--端口描述
co : out std_logic;
m :out std_logic_vector (7 downto 0));
end cdu60 ;
architecture aa of cdu60 is--結(jié)構(gòu)體
signal out1,out2 :integer range 0 to 9;
【關(guān)鍵詞】VHDL;通用;分頻器;同步
Designt of even-divider with synchronous terminal which pulse width modulation in VHDL
Wang Liqiu1
(ChangChun Institute of Optics,F(xiàn)ine Mechanics and Physics,Chinese Academy of Science,ChangChun 130033)
Abstract:In order to realize by Top-down method as time system design of synchronous pulse signal digital logic circuits,circuit design using VHDL language design a universal divider.By setting the universal divider of the generic generic description of the parameters M1 and N1,CLR input synchronous signal,you can output different pulse width and signal leading edge and CLR signal forward fully synchronous synchronous pulse signal.The simulation results show that the result is correct,the engineering practice the synchronous error in the measurement of
Keywords:photo-electronic measure;time system;FPGA;VHDL
1.引言
時(shí)統(tǒng)統(tǒng)一終端[1]除了為測(cè)控設(shè)備[2]提供基于UTC標(biāo)準(zhǔn)或GPS標(biāo)準(zhǔn)的絕對(duì)時(shí)間信息外,還要對(duì)外提供各種在時(shí)間起點(diǎn)上與輸入標(biāo)準(zhǔn)秒信號(hào)完全同步的同步脈沖信號(hào)。隨著可編程邏輯器件工藝和開發(fā)工具的快速發(fā)展,可編程邏輯器件(FPGA)已經(jīng)逐漸成為數(shù)字電路的主流電子元件,利用EDA工具實(shí)現(xiàn)硬件數(shù)字邏輯電路,使得硬件電路可以在不更改PCB的基礎(chǔ)上進(jìn)行修改和升級(jí),因此成為目前硬件電路的首選。標(biāo)準(zhǔn)化硬件描述語(yǔ)言VHDL由于符合EDA電路自動(dòng)化設(shè)計(jì)的要求,使得傳統(tǒng)人工設(shè)計(jì)方法逐漸被取代,目前已成為EDA工具和集成電路廠商的普遍首先。
為了FPGA芯片[3]中實(shí)現(xiàn)各路脈寬和頻率不同的獨(dú)立同步信號(hào)輸出的目的,利用VHDL語(yǔ)言的優(yōu)點(diǎn),設(shè)計(jì)一個(gè)通用的帶有同步端口且參數(shù)可調(diào)的分頻器,通過調(diào)用和設(shè)置不同的分頻器模塊,按Top-down設(shè)計(jì)方法實(shí)現(xiàn)主電路的設(shè)計(jì)。
2.帶同步端可變脈寬通用偶數(shù)分頻器
分頻器[5]是對(duì)較高頻率的時(shí)鐘信號(hào)進(jìn)行分頻操作,從而得到較低頻率的信號(hào)。帶同步端可變脈寬通用偶數(shù)分頻器,要求具有脈寬和頻率可調(diào),并且輸出信號(hào)與輸入同步信號(hào)clr同步的功能。
設(shè)計(jì)一個(gè)有三個(gè)輸入信號(hào)和一個(gè)輸出信號(hào)的通用分頻器,clkin為輸入的時(shí)鐘信號(hào),分頻器對(duì)此信號(hào)進(jìn)行分頻,clr為輸入同步信號(hào),最為內(nèi)部計(jì)數(shù)器的清零端,實(shí)現(xiàn)輸出與輸入信號(hào)同步,reset為復(fù)位信號(hào)。
3.VHDL語(yǔ)言設(shè)計(jì)
上述通用分頻器的VHDL[4]語(yǔ)言實(shí)現(xiàn)如下:
library ieee;
use ieee.std_logic_1164.all;
entity fenpin_e_clr_h is
generic (
n1:integer:=2; --n1為分頻倍數(shù);
m1:integer:=1;--m1為脈寬計(jì)數(shù);
);
port(
clkin:in std_logic; --時(shí)鐘信號(hào)(5Mhz)
reset:in std_logic; --復(fù)位信號(hào)
clkout:out std_logic; --輸出信號(hào)
clr :in std_logic --清零信號(hào)
);
end fenpin_e_clr_h;
architecture rtl of fenpin_e_clr_h is
signal temp:integer range n1-1 downto 0;
signal s,clear:std_logic;設(shè)兩級(jí)鎖存器
begin
process(clr,clear) ;
begin
if clear='1'then
s
elsif rising_edge(clr)then
s
end if;
end process;
process(clkin)—temp對(duì)時(shí)鐘clkin計(jì)數(shù)并在clr信號(hào)到來(lái)時(shí)同步清零實(shí)現(xiàn)同步。
begin
if(s='1')then
temp
clear
else
clear
if(clkin'event and clkin='1') then
if temp=n1-1 then
temp
else
temp
end if;
end if;
end if;
end process;
process(temp,reset)
begin
if reset='1'then
--輸出信號(hào)脈寬
If temp
clkout
else
clkout
end if;
else clkout
end if;
end process;
先描述一個(gè)分頻計(jì)數(shù)器電路,通過計(jì)數(shù)器對(duì)時(shí)鐘進(jìn)行計(jì)數(shù),然后通過計(jì)數(shù)值來(lái)控制輸出時(shí)鐘高低電平的時(shí)間;用電路的并行輸出信號(hào)來(lái)控制輸出時(shí)鐘的高低電平;輸入同步信號(hào)clr做計(jì)數(shù)器的清零信號(hào),利用時(shí)鐘和clr信號(hào)對(duì)輸出信號(hào)經(jīng)過兩次鎖存器[6](s,clear)控制采樣,完成數(shù)據(jù)輸出的同步化,并可有效防止亞穩(wěn)態(tài)。
上述電路中,參數(shù)n1用于調(diào)節(jié)分頻倍數(shù),m1用于控制輸出脈寬,設(shè)置n1,m1為generic類屬說(shuō)明,通過從外部對(duì)類屬參量的重新設(shè)定,改變?cè)?nèi)部結(jié)構(gòu)和功能。n1/m1=占空比,選頻標(biāo)為5Mhz,則t=1/f=200ns,則輸出信號(hào)的脈寬為Pulse=200ns*m1。
4.實(shí)際應(yīng)用電路
采用5Mhz時(shí)鐘晶振,輸入同步信號(hào)clr為1hz時(shí),利用通用模塊設(shè)計(jì)一個(gè)輸出脈寬為5us的100hz窄脈沖和50hz方波的電路如圖1所示。
采用f=5Mhz=5*106hz時(shí)鐘晶振,Inst1對(duì)其進(jìn)行n1=100000分頻,對(duì)時(shí)鐘clk信號(hào)進(jìn)行m1=50000次計(jì)數(shù),得到50hz的與clr同步的方波輸出信號(hào),即占空比為m1/n1=1/2。Inst2對(duì)時(shí)鐘clk進(jìn)行n1=500000次分頻,對(duì)時(shí)鐘m1=25次計(jì)數(shù),得到脈寬為25/(5*106)S=5uS,頻率為100hz的同步輸出信號(hào)。
5.仿真結(jié)果
采用Quartus II[7]仿真,結(jié)果如圖2所示。
從波形圖可以看出,輸出50hz信號(hào)為方波信號(hào),輸出100hz信號(hào)為窄脈沖信號(hào),兩個(gè)信號(hào)的信號(hào)前沿在清零信號(hào)clk到來(lái)時(shí)刻與clr信號(hào)同步。
6.結(jié)論
設(shè)計(jì)通用的輸入端口參數(shù)可調(diào)的VHDL語(yǔ)言模塊,在進(jìn)行數(shù)字電路頂層設(shè)計(jì)時(shí),只需要簡(jiǎn)單的參數(shù)設(shè)置就可以完成同步分頻模塊陣列的設(shè)計(jì)和直流碼編碼輸出,使得頂層設(shè)計(jì)簡(jiǎn)單。該電路在工程實(shí)踐中的測(cè)量結(jié)果為同步精度
參考文獻(xiàn)
[1]本社編.時(shí)間統(tǒng)一技術(shù)[M].國(guó)防國(guó)內(nèi)工業(yè)出版社,2004,9.
[2]何照才等.導(dǎo)彈航天測(cè)量控制系統(tǒng)光電測(cè)量[M].國(guó)防工業(yè)出版社,2002,10.
[3]劉延飛等.基于Altera FPGA/CPLD的電子系統(tǒng)設(shè)計(jì)及工程實(shí)踐[M].人民郵電出版社,2009,9.
[4]王金明等.數(shù)字系統(tǒng)設(shè)計(jì)與VHDL[M].電子工業(yè)出版社,2010,.5.
[5]李仁發(fā)等.數(shù)字邏輯設(shè)計(jì)(第四版)[M].人民郵電出版社,2006.
關(guān)鍵詞:ASIC 硬件描述語(yǔ)言HDL Verilog HDL VHDL SystemC Superlog 芯片系統(tǒng)SoC
引 言
硬件描述語(yǔ)言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語(yǔ)言。利用這種語(yǔ)言,數(shù)字電路系統(tǒng)的設(shè)計(jì)可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來(lái)表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用電子設(shè)計(jì)自動(dòng)化(EDA)工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過自動(dòng)綜合工具轉(zhuǎn)換到門級(jí)電路網(wǎng)表。接下去,再用專用集成電路ASIC或現(xiàn)場(chǎng)可編程門陣列FPGA自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。
目前,這種高層次(high-level-design)的方法已被廣泛采用。據(jù)統(tǒng)計(jì),目前在美國(guó)硅谷約有90%以上的ASIC和FPGA采用硬件描述語(yǔ)言進(jìn)行設(shè)計(jì)。
硬件描述語(yǔ)言HDL的發(fā)展至今已有20多年的歷史,并成功地應(yīng)用于設(shè)計(jì)的各個(gè)階段:建模、仿真、驗(yàn)證和綜合等。到20世紀(jì)80年代,已出現(xiàn)了上百種硬件描述語(yǔ)言,對(duì)設(shè)計(jì)自動(dòng)化曾起到了極大的促進(jìn)和推動(dòng)作用。但是,這些語(yǔ)言一般各自面向特定的設(shè)計(jì)領(lǐng)域和層次,而且眾多的語(yǔ)言使用戶無(wú)所適從。因此,急需一種面向設(shè)計(jì)的多領(lǐng)域、多層次并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語(yǔ)言。20世紀(jì)80年代后期,VHDL和Verilog HDL語(yǔ)言適應(yīng)了這種趨勢(shì)的要求,先后成為IEEE標(biāo)準(zhǔn)。
現(xiàn)在,隨著系統(tǒng)級(jí)FPGA以及系統(tǒng)芯片的出現(xiàn),軟硬件協(xié)調(diào)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)變得越來(lái)越重要。傳統(tǒng)意義上的硬件設(shè)計(jì)越來(lái)越傾向于與系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)結(jié)合。硬件描述語(yǔ)言為適應(yīng)新的情況,迅速發(fā)展,出現(xiàn)了很多新的硬件描述語(yǔ)言,像Superlog、SystemC、Cynlib C++等等。究竟選擇哪種語(yǔ)言進(jìn)行設(shè)計(jì),整個(gè)業(yè)界正在進(jìn)行激烈的討論。因此,完全有必要在這方面作一些比較研究,為EDA設(shè)計(jì)做一些有意義的工作,也為發(fā)展我們未來(lái)的芯片設(shè)計(jì)技術(shù)打好基礎(chǔ)。
1 目前HDL發(fā)展?fàn)顩r
目前,硬件描述語(yǔ)言可謂是百花齊放,有VHDL、Superlog、Verilog、SystemC、Cynlib C++、C Level等等。雖然各種語(yǔ)言各有所長(zhǎng),但業(yè)界對(duì)到底使用哪一種語(yǔ)言進(jìn)行設(shè)計(jì),卻莫衷一是,難有定論。
而比較一致的意見是,HDL和C/C++語(yǔ)言在設(shè)計(jì)流程中實(shí)現(xiàn)級(jí)和系統(tǒng)級(jí)都具有各自的用武之地。問題出現(xiàn)在系統(tǒng)級(jí)和實(shí)現(xiàn)級(jí)相連接的地方:什么時(shí)候?qū)⑹褂弥械囊环N語(yǔ)言停下來(lái),而開始使用另外一種語(yǔ)言?或者干脆就直接使用一種語(yǔ)言?現(xiàn)在看來(lái)得出結(jié)論仍為時(shí)過早。
在2001年舉行的國(guó)際HDL會(huì)議上,與會(huì)者就使用何種設(shè)計(jì)語(yǔ)言展開了生動(dòng)、激烈的辯論。最后,與會(huì)者投票表決:如果要啟動(dòng)一個(gè)芯片設(shè)計(jì)項(xiàng)目,他們?cè)敢膺x擇哪種方案?結(jié)果,僅有2票或3票贊成使用SystemC、Cynlib和C Level設(shè)計(jì);而Superlog和Verilog各自獲得了約20票。至于以后會(huì)是什么情況,連會(huì)議主持人John Cooley也明確表示:“5年后,誰(shuí)也不知道這個(gè)星球會(huì)發(fā)生什么事情。”
各方人士各持己見:為Verilog辯護(hù)者認(rèn)為,開發(fā)一種新的設(shè)計(jì)語(yǔ)言是一種浪費(fèi);為SystemC辯護(hù)者認(rèn)為,系統(tǒng)級(jí)芯片SoC快速增長(zhǎng)的復(fù)雜性需要新的設(shè)計(jì)方法;C語(yǔ)言的贊揚(yáng)者認(rèn)為,Verilog是硬件設(shè)計(jì)的匯編語(yǔ)言,而編程的標(biāo)準(zhǔn)很快就會(huì)是高級(jí)語(yǔ)言,Cynlib C++是最佳的選擇,它速度快、代碼精簡(jiǎn);Superlog的捍衛(wèi)者認(rèn)為,Superlog是Verilog的擴(kuò)展,可以在整個(gè)設(shè)計(jì)流程中僅提供一種語(yǔ)言和一個(gè)仿真器,與現(xiàn)有的方法兼容,是一種進(jìn)化,而不是一場(chǎng)革命。
當(dāng)然,以上所有的討論都沒有提及模擬設(shè)計(jì)。如果想設(shè)計(jì)帶有模擬電路的芯片,硬件描述語(yǔ)言必須有模擬擴(kuò)展部分,像Verilog HDL-A,既要求能夠描述門級(jí)開關(guān)級(jí),又要求具有描述物理特性的能力。
2 幾種代表性的HDL語(yǔ)言
2.1 VHDL
早在1980年,因?yàn)槊绹?guó)軍事工業(yè)需要描述電子系統(tǒng)的方法,美國(guó)國(guó)防部開始進(jìn)行VHDL的開發(fā)。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)將VHDL制定為標(biāo)準(zhǔn)。參考手冊(cè)為IEEE VHDL語(yǔ)言參考手冊(cè)標(biāo)準(zhǔn)草案1076/B版,于1987年批準(zhǔn),稱為IEEE 1076-1987。應(yīng)當(dāng)注意,起初VHDL只是作為系統(tǒng)規(guī)范的一個(gè)標(biāo)準(zhǔn),而不是為設(shè)計(jì)而制定的。第二個(gè)版本是在1993年制定的,稱為VHDL-93,增加了一些新的命令和屬性。
雖然有“VHDL是一個(gè)4億美元的錯(cuò)誤”這樣的說(shuō)法,但VHDL畢竟是1995年以前唯一制訂為標(biāo)準(zhǔn)的硬件描述語(yǔ)言,這是它不爭(zhēng)的事實(shí)和優(yōu)勢(shì);但同時(shí)它確實(shí)比較麻煩,而且其綜合庫(kù)至今也沒有標(biāo)準(zhǔn)化,不具有晶體管開關(guān)級(jí)的描述能力和模擬設(shè)計(jì)的描述能力。目前的看法是,對(duì)于特大型的系統(tǒng)級(jí)數(shù)字電路設(shè)計(jì),VHDL是較為合適的。
實(shí)質(zhì)上,在底層的VHDL設(shè)計(jì)環(huán)境是由Verilog HDL描述的器件庫(kù)支持的,因此,它們之間的互操作性十分重要。目前,Verilog和VDHL的兩個(gè)國(guó)際組織OVI、VI正在籌劃這一工作,準(zhǔn)備成立專門的工作組來(lái)協(xié)調(diào)VHDL和Verilog HDL語(yǔ)言的互操作性。OVI也支持不需要翻譯,由VHDL到Verilog的自由表達(dá)。
2.2 Verilog HDL
Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首創(chuàng)的。Phil Moorby后來(lái)成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一合伙人。在1984~1985年,Phil Moorby設(shè)計(jì)出了第一個(gè)名為Verilog-XL的仿真器;1986年,他對(duì)Verilog HDL的發(fā)展又作出了另一個(gè)巨大的貢獻(xiàn):提出了用于快速門級(jí)仿真的XL算法。
隨著Verilog-XL算法的成功,Verilog HDL語(yǔ)言得到迅速發(fā)展。1989年,Cadence公司收購(gòu)了GDA公司,Verilog HDL語(yǔ)言成為Cadence公司的私有財(cái)產(chǎn)。1990年,Cadence公司決定公開Verilog HDL語(yǔ)言,于是成立了OVI(Open Verilog International)組織,負(fù)責(zé)促進(jìn)Verilog HDL語(yǔ)言的發(fā)展。基于Verilog HDL的優(yōu)越性,IEEE于1995年制定了Verilog HDL的IEEE標(biāo)準(zhǔn),即Verilog HDL 1364-1995;2001年了Verilog HDL 1364-2001標(biāo)準(zhǔn)。在這個(gè)標(biāo)準(zhǔn)中,加入了Verilog HDL-A標(biāo)準(zhǔn),使Verilog有了模擬設(shè)計(jì)描述的能力。
2.3 Superlog
開發(fā)一種新的硬件設(shè)計(jì)語(yǔ)言,總是有些冒險(xiǎn),而且未必能夠利用原來(lái)對(duì)硬件開發(fā)的經(jīng)驗(yàn)。能不能在原有硬件描述語(yǔ)言的基礎(chǔ)上,結(jié)合高級(jí)語(yǔ)言C、C++甚至Java等語(yǔ)言的特點(diǎn),進(jìn)行擴(kuò)展,達(dá)到一種新的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言標(biāo)準(zhǔn)呢?
Superlog就是在這樣的背景下研制開發(fā)的系統(tǒng)級(jí)硬件描述語(yǔ)言。Verilog語(yǔ)言的首創(chuàng)者Phil Moorby和Peter Flake等硬件描述語(yǔ)言專家,在一家叫Co-Design Automation的EDA公司進(jìn)行合作,開始對(duì)Verilog進(jìn)行擴(kuò)展研究。1999年,Co-Design公司了SUPERLOGTM系統(tǒng)設(shè)計(jì)語(yǔ)言,同時(shí)了兩個(gè)開發(fā)工具:SYSTEMSIMTM和SYSTEMEXTM。一個(gè)用于系統(tǒng)級(jí)開發(fā),一個(gè)用于高級(jí)驗(yàn)證。2001年,Co-Design公司向電子產(chǎn)業(yè)標(biāo)準(zhǔn)化組織Accellera了SUPERLOG擴(kuò)展綜合子集ESS,這樣它就可以在今天Verilog語(yǔ)言的RTL級(jí)綜合子集的基礎(chǔ)上,提供更多級(jí)別的硬件綜合抽象級(jí),為各種系統(tǒng)級(jí)的EDA軟件工具所利用。
至今為止,已超過15家芯片設(shè)計(jì)公司用Superlog來(lái)進(jìn)行芯片設(shè)計(jì)和硬件開發(fā)。Superlog是一種具有良好前景的系統(tǒng)級(jí)硬件描述語(yǔ)言。但是不久前,由于整個(gè)IT產(chǎn)業(yè)的滑坡,EDA公司進(jìn)行大的整合,Co-Design公司被Synopsys公司兼并,形勢(shì)又變得撲朔迷離。
2.4 SystemC
隨著半導(dǎo)體技術(shù)的迅猛發(fā)展,SoC已經(jīng)成為當(dāng)今集成電路設(shè)計(jì)的發(fā)展方向。在系統(tǒng)芯片的各個(gè)設(shè)計(jì)中,像系統(tǒng)定義、軟硬件劃分、設(shè)計(jì)實(shí)現(xiàn)等,集成電路設(shè)計(jì)界一直在考慮如何滿足SoC的設(shè)計(jì)要求,一直在尋找一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言。
SystemC正是在這種情況下,由Synopsys公司和CoWare公司積極響應(yīng)目前各方對(duì)系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言的需求而合作開發(fā)的。1999年9月27日,40多家世界著名的EDA公司、IP公司、半導(dǎo)體公司和嵌入式軟件公司宣布成立“開放式SystemC聯(lián)盟”。著名公司Cadence也于2001年加入了SystemC聯(lián)盟。SystemC從1999年9月聯(lián)盟建立初期的0.9版本開始更新,從1.0版到1.1版,一直到2001年10月推出了最新的2.0版。
3 各種HDL語(yǔ)言的體系結(jié)構(gòu)和設(shè)計(jì)方法
3.1 SystemC
所有的SystemC都是基于C++的;圖1中的上層構(gòu)架都是很明確地建立在下層的基礎(chǔ)上;SystemC內(nèi)核提供一個(gè)用于系統(tǒng)體系結(jié)構(gòu)、并行、通信和同步時(shí)鐘描述的模塊;完全支持內(nèi)核描繪以外的數(shù)據(jù)類型、用戶定義數(shù)據(jù)類型;通常的通信方式,如信號(hào)、FIFO,都可以在內(nèi)核的基礎(chǔ)上建立,經(jīng)常使用的計(jì)算模塊也可以在內(nèi)核基礎(chǔ)上建立;如果需要,圖1中較低層的內(nèi)容不依賴上層就可以直接使用。
實(shí)際使用中,SystemC由一組描述類庫(kù)和一個(gè)包含仿真核的庫(kù)組成。在用戶的描述程序中,必須包括相應(yīng)的類庫(kù),可以通過通常的ANSI C++編譯器編譯該程序。SystemC提供了軟件、硬件和系統(tǒng)模塊。用戶可以在不同的層次上自由選擇,建立自己的系統(tǒng)模型,進(jìn)行仿真、優(yōu)化、驗(yàn)證、綜合等等。
3.2 Superlog
Superlog集合了Verilog的簡(jiǎn)潔、C語(yǔ)言的強(qiáng)大、功能驗(yàn)證和系統(tǒng)級(jí)結(jié)構(gòu)設(shè)計(jì)等特征,是一種高速的硬件描述語(yǔ)言。其體系結(jié)構(gòu)如圖2。
① Verilog 95和Verilog 2K。Superlog是Verilog HDL的超集,支持最新的Verilog 2K的硬件模型。
② C和C++語(yǔ)言。Superlog提供C語(yǔ)言的結(jié)構(gòu)、類型、指針,同時(shí)具有C++面對(duì)對(duì)象的特性。
③ Superlog擴(kuò)展綜合子集ESS。ESS提供一種新的硬件描述的綜合抽象級(jí)。
④ 強(qiáng)大的驗(yàn)證功能。自動(dòng)測(cè)試基準(zhǔn),如隨機(jī)數(shù)據(jù)產(chǎn)生、功能覆蓋、各種專有檢查等。
Superlog的系統(tǒng)級(jí)硬件開發(fā)工具主要有Co- Design Automation公司的SYSTEMSIMTM和SYSTEMEXTM,同時(shí)可以結(jié)合其它的EDA工具進(jìn)行開發(fā)。
3.3 Verilog和VHDL
這兩種語(yǔ)言是傳統(tǒng)硬件描述語(yǔ)言,有很多的書籍和資料可以查閱參考,這里不多介紹。
4 目前可取可行的策略和方式
按傳統(tǒng)方法,我們將硬件抽象級(jí)的模型類型分為以下五種:
系統(tǒng)級(jí)(system)——用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型;
算法級(jí)(algorithm)——用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型;
RTL級(jí)(Register Transfer Level)——描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理、控制這些數(shù)據(jù)流動(dòng)的模型。(以上三種都屬于行為描述,只有RTL級(jí)才與邏輯電路有明確的對(duì)應(yīng)關(guān)系。)
門級(jí)(gate-level)——描述邏輯門以及邏輯門之間的連接模型。(與邏輯電路有確切的連接關(guān)系。以上四種,數(shù)字系統(tǒng)設(shè)計(jì)工程師必須掌握。)
開關(guān)級(jí)(switch-level)——描述器件中三極管和存儲(chǔ)節(jié)點(diǎn)以及它們之間連接的模型。(與具體的物理電路有對(duì)應(yīng)關(guān)系,工藝庫(kù)元件和宏部件設(shè)計(jì)人員必須掌握。)
根據(jù)目前芯片設(shè)計(jì)的發(fā)展趨勢(shì),驗(yàn)證級(jí)和綜合抽象級(jí)也有可能成為一種標(biāo)準(zhǔn)級(jí)別。因?yàn)樗鼈冞m合于IP核復(fù)用和系統(tǒng)級(jí)仿真綜合優(yōu)化的需要,而軟件(嵌入式、固件式)也越來(lái)越成為一個(gè)和系統(tǒng)密切相關(guān)的抽象級(jí)別。
目前,對(duì)于一個(gè)系統(tǒng)芯片設(shè)計(jì)項(xiàng)目,可以采用的方案包括以下幾種:
① 最傳統(tǒng)的辦法是,在系統(tǒng)級(jí)采用VHDL,在軟件級(jí)采用C語(yǔ)言,在實(shí)現(xiàn)級(jí)采用Verilog。目前,VHDL與Verilog的互操作性已經(jīng)逐步走向標(biāo)準(zhǔn)化,但軟件與硬件的協(xié)調(diào)設(shè)計(jì)還是一個(gè)很具挑戰(zhàn)性的工作,因?yàn)檐浖絹?lái)越成為SOC設(shè)計(jì)的關(guān)鍵。該方案的特點(diǎn)是:風(fēng)險(xiǎn)小,集成難度大,與原有方法完全兼容,有現(xiàn)成的開發(fā)工具;但工具集成由開發(fā)者自行負(fù)責(zé)完成。
② 系統(tǒng)級(jí)及軟件級(jí)采用Superlog,硬件級(jí)和實(shí)現(xiàn)級(jí)均采用Verilog HDL描述,這樣和原有的硬件設(shè)計(jì)可以兼容。只要重新采購(gòu)兩個(gè)Superlog開發(fā)工具SYSTEMSIMTM和SYSTEMEXTM即可。該方案特點(diǎn)是風(fēng)險(xiǎn)較小,易于集成,與原硬件設(shè)計(jì)兼容性好,有集成開發(fā)環(huán)境。
③ 系統(tǒng)級(jí)和軟件級(jí)采用SystemC,硬件級(jí)采用SystemC與常規(guī)的Verilog HDL互相轉(zhuǎn)換,與原來(lái)的軟件編譯環(huán)境完全兼容。開發(fā)者只需要一組描述類庫(kù)和一個(gè)包含仿真核的庫(kù),就可以在通常的ANSI C++編譯器環(huán)境下開發(fā);但硬件描述與原有方法完全不兼容。該方案特點(diǎn)是風(fēng)險(xiǎn)較大,與原軟件開發(fā)兼容性好,硬件開發(fā)有風(fēng)險(xiǎn)。
5 未來(lái)發(fā)展和技術(shù)方向
微電子設(shè)計(jì)工業(yè)的設(shè)計(jì)線寬已經(jīng)從0.25μm向 0.18μm變遷,而且正在向0.13μm和90nm的目標(biāo)努力邁進(jìn)。到0.13μm這個(gè)目標(biāo)后,90%的信號(hào)延遲將由線路互連所產(chǎn)生。為了設(shè)計(jì)工作頻率近2GHz的高性能電路,就必須解決感應(yīng)、電遷移和襯底噪聲問題(同時(shí)還有設(shè)計(jì)復(fù)雜度問題)。
未來(lái)幾年的設(shè)計(jì)中所面臨的挑戰(zhàn)有哪些?標(biāo)準(zhǔn)組織怎樣去面對(duì)?當(dāng)設(shè)計(jì)線寬降到0.13μm,甚至更小時(shí),將會(huì)出現(xiàn)四個(gè)主要的趨勢(shì):
設(shè)計(jì)再利用;
設(shè)計(jì)驗(yàn)證(包括硬件和軟件);
互連問題將決定對(duì)時(shí)間、電源及噪聲要求;
系統(tǒng)級(jí)芯片設(shè)計(jì)要求。
滿足未來(lái)設(shè)計(jì)者需要的設(shè)計(jì)環(huán)境將是多家供應(yīng)商提供解決方案的模式,因?yàn)樯婕暗膯栴}面太廣且太復(fù)雜,沒有哪個(gè)公司或?qū)嶓w可以獨(dú)立解決。實(shí)際上,人們完全有理由認(rèn)為,對(duì)下一代設(shè)計(jì)問題解決方案的貢獻(xiàn),基礎(chǔ)研究活動(dòng)與獨(dú)立產(chǎn)業(yè)的作用將同等重要。
以后,EDA界將在以下三個(gè)方面開展工作。
① 互用性標(biāo)準(zhǔn)。所有解決方案的基礎(chǔ),是設(shè)計(jì)工具開發(fā)過程的組件——互用性標(biāo)準(zhǔn)。我們知道,EDA工業(yè)采用的是工業(yè)上所需要的標(biāo)準(zhǔn),而不管標(biāo)準(zhǔn)是誰(shuí)制定的。但是,當(dāng)今市場(chǎng)的迅速發(fā)展正在將優(yōu)勢(shì)轉(zhuǎn)向那些提供標(biāo)準(zhǔn)時(shí)能做到快速適應(yīng)和技術(shù)領(lǐng)先的組織。處于領(lǐng)先的公司正在有目的地向這方面投資,那些沒有參加開發(fā)這些標(biāo)準(zhǔn)的公司則必須獨(dú)自承擔(dān)風(fēng)險(xiǎn)。
② 擴(kuò)展其高級(jí)庫(kù)格式(ALF)標(biāo)準(zhǔn),使其包含物理領(lǐng)域的信息,是EDA開發(fā)商可以致力于解決互連問題的算法,從而使電路設(shè)計(jì)者在解決設(shè)計(jì)收尾工作時(shí),不再受到這個(gè)問題的困擾。
③ 制定新的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言標(biāo)準(zhǔn)。標(biāo)準(zhǔn)化系統(tǒng)芯片的設(shè)計(jì)工具和語(yǔ)言,使SoC真正達(dá)到第三次微電子設(shè)計(jì)革命浪潮。
6 國(guó)內(nèi)發(fā)展的戰(zhàn)略選擇
由于目前IT行業(yè)不景氣,以及ASIC設(shè)計(jì)復(fù)雜程度不斷增加,各EDA公司出現(xiàn)了合并調(diào)整的趨勢(shì)。Synopsys合了Avant!和Co-Design,Cadence合了GDA等,形成了幾大巨頭的局面。而各可編程器件廠商,像Xilinx和Altera,也積極與EDA緊密合作,因此,我們必須抓住這個(gè)時(shí)機(jī),全力發(fā)展;不然,就要面對(duì)以后與壟斷巨頭進(jìn)行競(jìng)爭(zhēng)的事倍功半的不利局面。
針對(duì)目前硬件描述語(yǔ)言的發(fā)展和國(guó)家芯片制造生產(chǎn)的發(fā)展戰(zhàn)略,國(guó)內(nèi)如何在原EDA基礎(chǔ)薄弱的情況下迅速發(fā)展,使EDA成為一個(gè)合理、健康而必不可少的產(chǎn)業(yè);將基礎(chǔ)研究活動(dòng)與獨(dú)立產(chǎn)業(yè)的作用合理的結(jié)合,建議開展如下方面的工作:
① 為了實(shí)現(xiàn)我國(guó)的芯片設(shè)計(jì)自主化,必須夯實(shí)基礎(chǔ),在結(jié)合VHDL的基礎(chǔ)上,推廣Verilog HDL設(shè)計(jì)語(yǔ)言,使硬件設(shè)計(jì)的底層單元庫(kù)可以自主研制;
② 根據(jù)目前芯片系統(tǒng)的發(fā)展趨勢(shì),對(duì)系統(tǒng)級(jí)語(yǔ)言進(jìn)行比較研究,在Suoerlog、SystemC等語(yǔ)言中做出選擇,并進(jìn)行相關(guān)工具的推廣,以及與相關(guān)企業(yè)進(jìn)行合作等;
③ 深入HDL語(yǔ)言的綜合和仿真等模型的研究,努力在與國(guó)外合作的基礎(chǔ)上,建立自主知識(shí)產(chǎn)權(quán)的EDA公司;
④ 積極加入EDA目前正在進(jìn)行的標(biāo)準(zhǔn)化工作,做到了解、學(xué)習(xí)、應(yīng)用、吸收、參與并重;
關(guān)鍵詞:FIR 濾波器;Simulink;DSP Builder;Quartus Ⅱ
中圖分類號(hào):TN713文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)20-193-03
Design of 16-taps FIR Filter Based on DSP Builder
FAN Hanbai,SI Jiazhen
(North China Electric Power University,Baoding,071003,China)
Abstract:Field Programmable Gate Array(FPGA)devices is widely used in the field of digital signal processing,it is difficult to design using VHDL or VerilogHDL.A model development technology of DSP Builder is adopted to design FIR filter,according to the flow of Matlab/Simulink/DSP Builder/Modelsim /Quartus Ⅱ,a 16-taps low-pass FIR filter is designed,which is simulated and verified in the digital signal process circuit,the results show that the method is simple,feasible and the advantage of designing digital filter by the use of DSP builder are verified.
Keywords:FIR filter;Simulink;DSP Builder;Quartus Ⅱ
FIR數(shù)字濾波器在數(shù)字信號(hào)處理的各種應(yīng)用中發(fā)揮著十分重要的作用,它能夠提供理想的線性相位響應(yīng),在整個(gè)頻帶上獲得常數(shù)群時(shí)延,從而得到零失真輸出信號(hào),同時(shí)它可以采用十分簡(jiǎn)單的算法予以實(shí)現(xiàn)。這些優(yōu)點(diǎn)使FIR濾波器成為設(shè)計(jì)工程師的首選。在采用VHDL或VerilogHDL等硬件描述語(yǔ)言設(shè)計(jì)數(shù)字濾波器時(shí),由于程序的編寫往往不能達(dá)到良好優(yōu)化而使濾波器性能表現(xiàn)一般,而采用調(diào)試好的IP Core需要向Altera公司購(gòu)買。在此,采用一種基于DSP Builder的FPGA設(shè)計(jì)方法,使FIR濾波器設(shè)計(jì)較為簡(jiǎn)單易行,并能滿足設(shè)計(jì)要求[1]。
1 FIR濾波器介紹
1.1 FIR濾波器原理[2,3]
對(duì)于一個(gè)FIR濾波器系統(tǒng),它的沖激響應(yīng)總是有限長(zhǎng)的,最具體的FIR濾波器可用下式表示[4]:
y(n)=∑Mr=1b(r)x(n-r)
式中:r是FIR濾波器的抽頭數(shù);x(n-r)是延時(shí)r個(gè)抽頭的輸入信號(hào);b(r)是第r級(jí)抽頭數(shù)(單位脈沖響應(yīng));M是濾波器的階數(shù);y(n)表示濾波器的輸出序列。
濾波器就是尋求一個(gè)可實(shí)現(xiàn)的系統(tǒng)函數(shù)H(z),使其頻率響應(yīng)H(ejω)滿足所希望得到的頻域信號(hào),也可以用卷積的形式來(lái)表示:
y(n)=x(n)*h(n)
典型的直接I型FIR濾波器如圖1表示,其輸出序列y(n)滿足下式[5]:
y(n)=h(0)x(n)+h(1)x(n-1)+
h(2)x(n-2)+…+h(15)x(n-15)
圖1 直接I型FIR濾波器
1.2 設(shè)計(jì)要求
數(shù)字濾波器實(shí)際上是一個(gè)采用有限精度算法實(shí)現(xiàn)的線性非時(shí)變離散系統(tǒng)。它的設(shè)計(jì)步驟是先根據(jù)需要確定其性能指標(biāo),設(shè)計(jì)一個(gè)系統(tǒng)函數(shù)h(n)逼近所需要的性能指標(biāo),濾波器的系數(shù)計(jì)算可以借助Matlab強(qiáng)大的計(jì)算功能和現(xiàn)成濾波器設(shè)計(jì)工具來(lái)完成,最后采用有限的精度算法實(shí)現(xiàn)[5]。該系統(tǒng)的設(shè)計(jì)指標(biāo)為:設(shè)計(jì)一個(gè)16階的低通濾波器,選模擬信號(hào)的采樣頻率Fs為5 kHz,要求信號(hào)的截止頻率Fc=1 kHz,輸入序列的位寬為9位(最寬位為符號(hào)位)。激勵(lì)源為幅值為27,頻率為800 Hz與1 600 Hz兩個(gè)信號(hào)的混頻信號(hào)。
2 基于DSP Builder設(shè)計(jì)FIR濾波器
2.1 DSP Builder介紹
DSP Builder是美國(guó)Altera公司推出的一個(gè)面向DSP開發(fā)的系統(tǒng)級(jí)設(shè)計(jì)工具,它在Quartus Ⅱ設(shè)計(jì)環(huán)境中集成了Matlab和Simulink DSP開發(fā)軟件。
以往使用的Matlab工具僅僅作為DSP算法的建模和基于純數(shù)學(xué)的仿真,其數(shù)學(xué)模型無(wú)法為硬件DSP應(yīng)用系統(tǒng)直接產(chǎn)生實(shí)用的程序代碼,仿真測(cè)試的結(jié)果也往往是基于數(shù)學(xué)的算法結(jié)果。而以往的FPGA所需要的傳統(tǒng)基于硬件描述語(yǔ)言的設(shè)計(jì)因考慮了FPGA硬件的延時(shí)與VHDL遞歸算法的銜接,以及補(bǔ)碼運(yùn)算和乘積結(jié)果截取等問題,所以相當(dāng)繁瑣。
而對(duì)于DSP Builder而言,它作為Matlab的一個(gè)Simulink工具箱,使得用FPGA設(shè)計(jì)的DSP系統(tǒng)完全可以通過Simulink的圖形化界面進(jìn)行建模、系統(tǒng)級(jí)仿真。設(shè)計(jì)模型可直接向VHDL硬件描述語(yǔ)言轉(zhuǎn)換,并自動(dòng)調(diào)用QuartusⅡ等EDA設(shè)計(jì)軟件,完成綜合、網(wǎng)表生成以及器件適配乃至FPGA
的配置下載,使得系統(tǒng)描述與硬件實(shí)現(xiàn)有機(jī)地融合,充分體現(xiàn)了現(xiàn)代電子技術(shù)自動(dòng)化開發(fā)的特點(diǎn)與優(yōu)勢(shì)[6]。
2.2 FIR濾波器的設(shè)計(jì)
2.2.1 FIR濾波器參數(shù)選取
采用Matlab提供的濾波器專用設(shè)計(jì)工具FDAtool仿真設(shè)計(jì)的濾波器[7],可滿足要求的FIR濾波器幅頻特性,由于浮點(diǎn)小數(shù)在FPGA中實(shí)現(xiàn)得比較困難,且代價(jià)太大,因而需要將濾波器的系數(shù)和輸入數(shù)據(jù)轉(zhuǎn)化為整數(shù),其中量化后的系統(tǒng)可以在Matlab主窗口中直接轉(zhuǎn)化,對(duì)于輸入數(shù)據(jù),乘以28的增益用Altbus控制位寬轉(zhuǎn)化為整數(shù)輸入。
2.2.2 FIR濾波器模型的建立
根據(jù)FIR濾波器原理,可以利用FPGA來(lái)實(shí)現(xiàn)FIR濾波電路。DSP Builder設(shè)計(jì)流程的第一步是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入的,即在Matlab的Simulink環(huán)境中建立一個(gè)MDL模型文件,用圖形方式調(diào)用DSP Builder和其他Simulink庫(kù)中的圖形模塊,構(gòu)成系統(tǒng)級(jí)或算法級(jí)設(shè)計(jì)框圖[6],如圖2所示。
圖2 FIR濾波器模型
2.2.3 在Simulink中的仿真并生成VHDL代碼[8]
完成模型設(shè)計(jì)之后,可以先在Simulink中對(duì)模型進(jìn)行仿真,可以通過Simulink中的示波器模塊查看各個(gè)步驟的中間結(jié)果。輸入信號(hào)采用800 Hz和1 600 Hz,幅值相同的兩個(gè)正弦信號(hào)的疊加。仿真結(jié)果如圖3所示。從仿真波形可以看出,通過濾波器之后,1 600 Hz的信號(hào)能夠被很好地濾除[9]。
圖3 Simulink中的仿真波形
雙擊Signal Compiler可對(duì)以上的設(shè)計(jì)模型進(jìn)行分析,選擇相應(yīng)的芯片,將以上設(shè)計(jì)模塊圖文件“翻譯”成VHDL語(yǔ)言。
2.2.4 Modelsim的RTL仿真[10]
在Simulink中進(jìn)行的仿真屬于系統(tǒng)驗(yàn)證性質(zhì)的,是對(duì)mdl文件進(jìn)行的仿真,并沒有對(duì)生成的VHDL代碼進(jìn)行仿真。事實(shí)上,生成VHDL描述的是RTL級(jí)的,是針對(duì)具體的硬件結(jié)構(gòu),而在Matlab的Simulink中的模型仿真是算法級(jí)的,兩者之間有可能存在軟件理解上的差異,轉(zhuǎn)化后的VHDL代碼實(shí)現(xiàn)可能與mdl模型描述的情況不完全相符。這就需要針對(duì)生成的RTL級(jí)VHDL代碼進(jìn)行功能仿真,仿真結(jié)果如圖4所示。
圖4 Modelsim進(jìn)行RTL仿真的波形
仿真結(jié)果說(shuō)明,在Modelsim中仿真結(jié)果和Simulink里的仿真結(jié)果基本一致,該濾波器有較好的濾波效果。可以看出,輸入正弦波經(jīng)過數(shù)字化過程以后,能夠在Modelsim中還原出模擬波形,符合設(shè)計(jì)的要求,可以在Quartus Ⅱ的環(huán)境下進(jìn)行硬件設(shè)計(jì)[1]。
2.2.5 濾波器在FPGA上的實(shí)現(xiàn)[1]
在Quartus Ⅱ環(huán)境中,打開DSP Builder建立的Quartus Ⅱ項(xiàng)目文件,在Quartus Ⅱ中再進(jìn)行一次仿真,由此可以看到符合要求的時(shí)序波形,然后指定器件引腳,并進(jìn)行編譯,最后下載到FPGA器件中,就可以對(duì)硬件進(jìn)行測(cè)試,加上clok信號(hào)和使能信號(hào),用信號(hào)發(fā)生器產(chǎn)生所要求的兩個(gè)不同頻率的正弦信號(hào),就可以在示波器上看到濾波后的結(jié)果。需要設(shè)計(jì)不同的濾波器電路是僅修改FIR濾波器模型文件就可以實(shí)現(xiàn),這樣不僅避免了繁瑣的VHDL語(yǔ)言編程,而且便于進(jìn)行調(diào)整。
3 結(jié) 語(yǔ)
在利用FPGA進(jìn)行數(shù)字濾波器開發(fā)時(shí),采用DSP Builder作為設(shè)計(jì)工具,能加快進(jìn)度。當(dāng)然,在實(shí)際應(yīng)用中,受精度、速度和器件選擇方面的影響,可能對(duì)其轉(zhuǎn)化的VHDL進(jìn)行進(jìn)一步的優(yōu)化。
參考文獻(xiàn)
[1]楊麗杰,崔葛瑾.基于FPGA的FIR濾波器設(shè)計(jì)方法的研究[J].東北大學(xué)學(xué)報(bào),2006,32(6):93-96.
[2]程佩清.數(shù)字信號(hào)處理教程[M].北京:清華大學(xué)出版社,1995.
[3]胡廣書.數(shù)字信號(hào)處理理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2002.
[4]田東生,王鵬.基于FPGA的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量,2007(10):54-57.
[5]張淼,伏云昌.基于DSP Builder的14階FIR濾波器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,30(21):185-186.
[6]潘松,黃繼業(yè),王國(guó)棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[7]張志恒,王衛(wèi)芳.基于Matlab信號(hào)處理工具箱的數(shù)字濾波器設(shè)計(jì)與仿真[J].電力學(xué)報(bào),2007,22(1):54-56.
[8]王紫婷,郭海麗.基于Matlab/Simulink的數(shù)字濾波器IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].蘭州交通大學(xué)學(xué)報(bào),2008,27(3):111-113.
關(guān)鍵詞:FPGA;洗衣機(jī);控制器
1 概述
洗衣機(jī)的發(fā)明使人類告別了手工洗衣的繁重勞動(dòng),但是最初由于技術(shù)不發(fā)達(dá)洗衣機(jī)的自動(dòng)化程度顯然不高,洗衣的幾個(gè)過程仍需要人工切換操作來(lái)進(jìn)行。隨著科技的發(fā)展,洗衣機(jī)也由最初的洗滌和脫水的手動(dòng)切換過程發(fā)展到了半自動(dòng)半手工,發(fā)展成為目前普遍使用的全自動(dòng)洗衣機(jī),現(xiàn)實(shí)要求洗衣機(jī)的體積更小、集成度更高、應(yīng)用更簡(jiǎn)單、洗衣機(jī)的控制引入了微型處理器進(jìn)行編程,實(shí)現(xiàn)對(duì)洗衣機(jī)內(nèi)外部水流的控制,洗衣機(jī)控制精度不同對(duì)控制器的精度要求也不同,對(duì)于控制精度要求高的洗衣機(jī)需要精度高的控制。本系統(tǒng)采用有FPGA芯片的在線可編程控制器,該系統(tǒng)控制器硬件使用VHDL語(yǔ)言設(shè)計(jì)而成,不僅性能穩(wěn)定抗干擾能力強(qiáng)而且方便調(diào)試維護(hù)和系統(tǒng)升級(jí),保障洗衣機(jī)系統(tǒng)的正常運(yùn)行。
2 系統(tǒng)的功能部件介紹
該洗衣機(jī)控制器根據(jù)功能可以劃分為五個(gè)模塊,分別為時(shí)間預(yù)置編碼器模塊、減法計(jì)數(shù)器模塊、數(shù)碼管顯示模塊、時(shí)序電路模塊和譯碼器模塊。
(1)時(shí)間預(yù)置編碼器模塊:接收用戶所輸入的預(yù)置時(shí)間信息,并將時(shí)間信息進(jìn)行編碼,編碼成機(jī)器語(yǔ)言后轉(zhuǎn)交給減法計(jì)數(shù)器。
(2)減法計(jì)數(shù)器模塊:將接收的編碼時(shí)間預(yù)置信息轉(zhuǎn)換成開始信號(hào)發(fā)送給電機(jī)使電機(jī)開始運(yùn)行,并將預(yù)設(shè)的時(shí)間信息和剩余的時(shí)間信息發(fā)送給數(shù)碼管模塊進(jìn)行顯示。
(3)數(shù)碼管顯示電路模塊:接收減法計(jì)數(shù)器模塊傳遞的時(shí)間信息,并進(jìn)行譯碼顯示。
(4)電機(jī)時(shí)序控制電路:接收減法計(jì)數(shù)器模塊傳遞的運(yùn)行開始和結(jié)束信號(hào),安排電機(jī)的運(yùn)行狀態(tài)并輸出。
(5)譯碼器:接收電機(jī)運(yùn)行狀態(tài)的信號(hào)并譯碼,實(shí)現(xiàn)實(shí)時(shí)控制電機(jī)的正反轉(zhuǎn)狀態(tài)以及暫停狀態(tài)。
3 控制邏輯各模塊功能的VHPL語(yǔ)言實(shí)現(xiàn)
3.1 時(shí)間預(yù)置編碼器模塊的VHDL語(yǔ)言
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FENG ISPORT(CP,CLR:IN STD_ 31A ISPORT(SEL:IN STD_LOGI
C_VECTOR(2 DOWNTO 0) D1,D2,D3:IN 1,Q2,Q3,Q4,ALM:OUT_ARCOFCH41ASBPIDEGINPROCESS(D1,D2,D3,D4)VARIPIDABLE:S;USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORTARCHITECTURBEGIN PROCESS(CLK) VARIABLEE.STD;WHENEND
CASE;ENDPROCESSNSIGNED.ALLNTITYCOUNTISPORT(CLK,EN:INH,L:OUTBEGINCLK'EVEN'THENIFEN='1'THENIFELSIFLL=0THENLL1PROCESS;ENDCOUNT_AREND DISP_ARC;
2,減法計(jì)數(shù)器模塊的VHDL語(yǔ)言
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALLENTITY LOCK
B IS PORT(D1,D2,D3,D4:IN STD_LOGIC; CLK,CLR:IN LOGIC;Q:OUT STD_LOGIC); END FENG; ARCHITECTURE FENG_ARC OF FENG IS BEGINPROCESS(CP,CLR) BEGINIF CLR='0'THEN QQEND PROCESS; END DISP_ARC;
3,數(shù)碼管顯示電路模塊的VHDL語(yǔ)言
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALLENTITYPIDCH4
1AISPORT(D1,D2,D3,D4:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO 0)) END CH41A ARCHITECTURE CHCKB;ARCHITECTURELOCK_ARCOFLOCKBGIN PROCESS(CLK) BEGIN FENQ1
EVENTANDCLK='1'THEN Q1
4,電機(jī)時(shí)序控制電路的VHDL語(yǔ)言
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALENTITYCH1AISPORT(SEL:IN STD_LOGIC_VECTOR(2DOWNTO0) ;ENDIF;ENDPROCESS;ENDFENG_ARC;USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORT(CLK:INSENDSELOR(3 DOWNTO 0)Q: OUT USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORTARCHITE
CTURBEGIN PROCESS(CL STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ENDCH31A;RCHITECTURECH31_ARC
4 結(jié)束語(yǔ)
本系統(tǒng)采用FPGA作洗衣機(jī)控制單元控制情度較高,成本低且控制效率高,能夠滿足各種類型洗衣機(jī)的控制要求。實(shí)際應(yīng)用穩(wěn)定抗干擾能力強(qiáng)和結(jié)構(gòu)簡(jiǎn)單,而且占用硬件資源少,能夠通過配置系統(tǒng)參數(shù)以滿足不同類型洗衣機(jī)的控制要求,滿足對(duì)洗衣機(jī)水位和洗滌力度的控制精度,具有一定的實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]姜雪松,吳鈺淳.VHDL設(shè)計(jì)實(shí)例與仿真[M].機(jī)械工業(yè)出版社,
(赤峰學(xué)院 物理與電子信息工程學(xué)院,內(nèi)蒙古 赤峰 024000)
摘要:本文利用QuartusⅡ集成開發(fā)環(huán)境來(lái)完成譯碼器、LCD、流水燈等電路的設(shè)計(jì),以FPGA實(shí)驗(yàn)開發(fā)板為運(yùn)行載體,F(xiàn)PGA開發(fā)板FA280核心器件為Altera CycloneⅡ系列的EP2C8Q208,通過開發(fā)板上的USB Blaster將程序下載到開發(fā)板,實(shí)現(xiàn)VHDL硬件語(yǔ)言設(shè)計(jì)的譯碼器、LCD及數(shù)碼管顯示接口電路的運(yùn)行顯示.
關(guān)鍵詞 :QuartusⅡ;譯碼器;顯示接口
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1673-260X(2015)05-0059-02
1 引言
在信息時(shí)代的今天,科技飛速發(fā)展,電子產(chǎn)品更新?lián)Q代迅速,傳統(tǒng)的設(shè)計(jì)方法再也不能滿足市場(chǎng)需求,因此EDA技術(shù)在一些電子領(lǐng)域取得了驚人的成績(jī).當(dāng)然,緊隨科技腳步的高校自然也不會(huì)落后,由此EDA技術(shù)便在電子信息類專業(yè)中發(fā)展起來(lái)了.但傳統(tǒng)的授課方式,讓我們只能在課堂上通過老師的講解來(lái)接觸到EDA技術(shù),抽象的知識(shí)讓學(xué)生很難去深入理解和探索,這樣理論與實(shí)踐相結(jié)合就顯得尤為重要了.EDA是將計(jì)算機(jī)技術(shù)應(yīng)用到電子電路設(shè)計(jì)中,在QuartusⅡ環(huán)境中,運(yùn)用輸入原理圖或硬件語(yǔ)言進(jìn)行編譯與仿真的技術(shù).在開發(fā)板上可以實(shí)現(xiàn)數(shù)碼管、LCD、流水燈、蜂鳴器等顯示和發(fā)聲的效果.
2 EDA教學(xué)實(shí)驗(yàn)開發(fā)板概述
本文用到的實(shí)驗(yàn)板是FPGA開發(fā)板FA280,F(xiàn)A280板載有SDRAM,flash以及USB Blaster下載線電路.利用QuartusⅡ集成開發(fā)環(huán)境來(lái)完成前期設(shè)計(jì),以FPGA實(shí)驗(yàn)開發(fā)板為運(yùn)行載體,來(lái)完成VHDL、Verilog HDL等一些硬件語(yǔ)言的運(yùn)行顯示.
FPGA開發(fā)板FA280,其核心器件為Altera CycloneⅡ系列的EP2C8Q208,是包含192個(gè)引腳,其中I/O口有183個(gè),板載存儲(chǔ)器包括SDRAM HY57V641620和Bytes,FLASH AM29LV320,存儲(chǔ)空間分別為8M和4MBytes.SDRAM與系統(tǒng)總線速度同步,可避免不必要的等待周期.
接口包括:PS2接口、VGA接口、RS232串口、USB下載接口.開發(fā)板具有USB Blaster下載線電路,插上USB線即可進(jìn)行下載,通過撥動(dòng)USB下載接口開關(guān)選擇JTAG或AS下載方式.
顯示設(shè)備包括6位7段紅光數(shù)碼管,8位綠色LED發(fā)光二極管,LCD1602和LCD12864顯示屏接口插座.
復(fù)位電路由一個(gè)復(fù)位按鍵和一個(gè)復(fù)位芯片組成的,可以將電路恢復(fù)到起始狀態(tài)(相當(dāng)于清零按鈕).復(fù)位芯片為MAX811R,可將輸出脈沖寬度為140ms、門限為2.63V的低電平有效復(fù)位脈沖信號(hào)提供給FA280.
電源部分包括1117-3.3和1117-1.2各一片,從功能板分別引入3.3V和1.2V的直流電源作為EP2C8的核心電源電壓,并在核心板上加入濾波電容,以確保芯片和電源系統(tǒng)的穩(wěn)定性.
其他還包括一個(gè)蜂鳴器、4位獨(dú)立按鍵、電源插座和開關(guān)、SD卡座、擴(kuò)展總線(GPIO)和有源晶振.
3 EDA技術(shù)的應(yīng)用軟件及開發(fā)流程
3.1 硬件描述語(yǔ)言VHDL
高級(jí)硬件描述語(yǔ)言VHDL已成為IEEE標(biāo)準(zhǔn),適用于行為級(jí)和RTL級(jí)的描述,最適于描述電路行為,并在設(shè)計(jì)時(shí)可以不了解電路的結(jié)構(gòu)細(xì)節(jié).VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,其設(shè)計(jì)的基本點(diǎn)是將設(shè)計(jì)實(shí)體分成內(nèi)、外部分.完整的VHDL程序要包含庫(kù)、程序包、實(shí)體、構(gòu)造體和配置等部分,它的描述語(yǔ)句和常用語(yǔ)句都有其固定的格式,并且有自己的語(yǔ)法,不允許不同類型的數(shù)據(jù)在表達(dá)式中自由組合.
3.2 開發(fā)流程
QuartusⅡ作為一個(gè)綜合性的開發(fā)平臺(tái),可以完成多種功能的實(shí)現(xiàn).QuartusⅡ的設(shè)計(jì)流程:首先輸入HDL等形式的設(shè)計(jì)文本,接著根據(jù)設(shè)計(jì)要求設(shè)定編譯方式和策略,然后進(jìn)行設(shè)計(jì)校驗(yàn)(仿真和定時(shí)分析),最后進(jìn)行編程與驗(yàn)證(將編程文件配置到PLD中).設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則回到設(shè)計(jì)輸入階段改錯(cuò),然后重復(fù)以上步驟.
設(shè)計(jì)輸入:設(shè)計(jì)輸入可以用HDL方式或原理圖錄入方式.一般可以使用原理圖來(lái)設(shè)計(jì)最頂層,將整個(gè)設(shè)計(jì)的結(jié)構(gòu)描述清楚,具體實(shí)現(xiàn)各模塊時(shí)用HDL.對(duì)于HDL方式的設(shè)計(jì)輸入,可以采用Verilog和VHDL,我們這里采用VHDL語(yǔ)言來(lái)實(shí)現(xiàn).
綜合:綜合工具將設(shè)計(jì)轉(zhuǎn)換成包含邏輯單元和邏輯單元間連接的網(wǎng)表文件.
功能仿真:對(duì)已經(jīng)綜合的電路的功能進(jìn)行驗(yàn)證,功能仿真不涉及任何時(shí)序方面的內(nèi)容.
配置:將綜合產(chǎn)生的網(wǎng)絡(luò)表中的邏輯單元映射到CPLD/FPGA器件中的LE,這里還包含器件中LE間連接和路由的選擇.
時(shí)序分析和時(shí)序仿真:通過分析配置后的電路各個(gè)路徑上的傳輸延時(shí),獲得電路的性能情況.這里的時(shí)序仿真將結(jié)合器件時(shí)間參數(shù),與前面的功能仿真不同,功能仿真只關(guān)注與源程序的邏輯是否正確.
編程:在CPLD/FPGA器件內(nèi)實(shí)現(xiàn)設(shè)計(jì),包括邏輯單元和邏輯單元間的連接.
在做一個(gè)設(shè)計(jì)時(shí),通常要對(duì)功能進(jìn)行模塊劃分,每個(gè)模塊對(duì)應(yīng)一個(gè)源文件,用一個(gè)唯一的頂層文件將這些模塊源文件組合起來(lái),形成一個(gè)整體設(shè)計(jì).頂層文件完成模塊的例化工作,頂層文件可以用HDL語(yǔ)言編寫,也可以用原理圖的方式.
4 譯碼器與顯示接口電路設(shè)計(jì)
4.1 3線-8線譯碼器
3線-8線譯碼器的仿真過程:運(yùn)行Quartus II軟件,建立工程項(xiàng)目,工程命名為lq.建立一個(gè)VHDL文件,命名為lq,文件后綴為.vhd,再將程序?qū)懭氩⒈4妫缓缶幾g,確保沒有錯(cuò)誤后進(jìn)行仿真,周期設(shè)為100ns.將輸入端A2、A1、A0三位二進(jìn)制代碼按照真值表設(shè)定好;S_0、S_1、S_2為控制輸入端,當(dāng)s_0 and (not s_1)and (not s_2)為1時(shí),譯碼器工作,當(dāng)它為0時(shí),譯碼器全為高電平;輸出端Z-n7到Z-n0.在對(duì)端口進(jìn)行設(shè)定,將A2、A1、A0和總控制端S設(shè)定為K1、K2、K3、K4四位獨(dú)立按鍵作為輸入端,其端口依次為I/O74、I/O72、I/O75、I/O76.輸出端Z-n7~Z-n0對(duì)應(yīng)的是LED8~LED1,其端口依次是I/O181、I/O175、I/O171、I/O169、I/O170、I/O173、I/O180、I/O182.設(shè)定好之后,再次進(jìn)行編譯仿真,沒有錯(cuò)誤即可進(jìn)行配置,可以實(shí)現(xiàn)輸入四位二進(jìn)制代碼,按照其原意翻譯成相應(yīng)的輸出信號(hào),體現(xiàn)在LED燈上.仿真波形如圖1所示.
4.2 LCD顯示
LCD的仿真過程:運(yùn)行Quartus II軟件,建立工程項(xiàng)目,工程命名為lcd1602.建立一個(gè)VHDL文件,命名為lcd1602,文件后綴為.vhd,再將程序?qū)懭氩⒈4妫缓缶幾g,確保沒有錯(cuò)誤后進(jìn)行仿真.先進(jìn)行端口說(shuō)明,輸入端為:start - 啟動(dòng)顯示、cmd - 命令、dat_i - 等顯示的字符數(shù)據(jù)、clk - 時(shí)鐘、rst - 復(fù)位信號(hào)(低電平有效).輸出端為:lcd_e - lcd1602使能、lcd_rw - lcd1602讀取有效、lcd_di - lcd1602數(shù)據(jù)/命令選擇信號(hào)、lcd_dat - lcd1602數(shù)據(jù)、ok .完成對(duì)lcd1602的驅(qū)動(dòng),使lcd1602初始化,并顯示字符.
然后以同樣步驟建立名為lcddemo_ctrl的工程,到編譯仿真.再進(jìn)行端口說(shuō)明,輸入端為:ack -接收數(shù)據(jù)方已確認(rèn)(上升沿有效)、init_ok-顯示屏初始化完成、clk-時(shí)鐘輸入、rst-復(fù)位信號(hào)輸入.輸出端為:stb-輸出數(shù)據(jù)通知信號(hào),上升沿有效、dat-輸出數(shù)據(jù).還要對(duì)列出文本文件的內(nèi)容進(jìn)行設(shè)定(參考),就可以完成在lcd1602上顯示兩行字符“made by liu qin”.當(dāng)然也可以顯示其他內(nèi)容,根據(jù)AsciI字符表編輯想要顯示的代碼,便可顯示想要的字符.
4.3 流水燈
流水燈的設(shè)計(jì)主要由三個(gè)模塊和一個(gè)頂層文件組成,其模塊劃分及功能說(shuō)明如表1、表2:
FA280開發(fā)板硬件具有8位LED,為低電平驅(qū)動(dòng)方式,即低電平點(diǎn)亮高電平熄滅.
本實(shí)驗(yàn)中實(shí)現(xiàn)以提供低電平方式點(diǎn)亮8個(gè)LED中的某一個(gè)或多個(gè),其點(diǎn)亮模式代表了數(shù)據(jù)0~9和A~F,兩次點(diǎn)亮的時(shí)間間隔為1s,以15s的周期循環(huán)重復(fù).流水燈點(diǎn)亮方案如表2.流水燈顯示仿真過程是對(duì)三個(gè)模塊和一個(gè)頂層文件進(jìn)行編譯仿真,具體操作步驟如上兩個(gè)實(shí)例.運(yùn)行Quartus II軟件,分別建立工程項(xiàng)目、VHDL文件,再將程序?qū)懭氩⒈4妫缓缶幾g,確保沒有錯(cuò)誤后進(jìn)行仿真.并對(duì)各模塊的端口進(jìn)行說(shuō)明,實(shí)現(xiàn)其具體功能,完成流水燈的顯示.
5 結(jié)語(yǔ)
本設(shè)計(jì)應(yīng)用QuartusⅡ 9.0軟件,采用VHDL語(yǔ)言,按照開發(fā)流程完成3線-8線譯碼器、LCD和流水燈的設(shè)計(jì),得到相應(yīng)的仿真波形并下載到實(shí)驗(yàn)開發(fā)板上觀察顯示實(shí)驗(yàn)結(jié)果.這個(gè)過程讓學(xué)生熟悉了EDA技術(shù)和實(shí)驗(yàn)開發(fā)板的功能,及相關(guān)軟件的應(yīng)用.
參考文獻(xiàn):
〔1〕廖超平,EDA技術(shù)與VHDL實(shí)用教程.高等教育出版社,2007.
〔2〕閆石.數(shù)字電子技術(shù)基礎(chǔ).高等教育出版社,2006.
〔3〕汪國(guó)強(qiáng).華成英,EDA技術(shù)與應(yīng)用.電子工業(yè)出版社,2005.
〔4〕侯伯亨.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì).西安電子科技大學(xué)出版社,2009.
〔5〕潘松.EDA技術(shù)與應(yīng)用.清華大學(xué)出版社,2005.
關(guān)鍵詞:信道編碼; 線性分組碼; Max+Plus Ⅱ; VHDL
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)09-0116-02
Design of Linear Block Codes Based on VHDL
TANG Bing-hua, SHUI Qi-jun
(Department of Physics and Engineering Technology, Sichuan University of Arts and Science, Dazhou 635000, China)
Abstract: The interference reduces transmission reliability when digital signal is transmissed in signal path. Linear block code is widely used in communication transmission system as a common channel coding. The generating matrix, monitoring matrix and the relationship between the error pattern sets are discussed based on the coding and decoding rules of linear block codes. The Max+Plus Ⅱ software simulation and verification shows that its function comforms to the linear block code encoding and decoding device requirements.
Keywords: channel coding; linear block codes; Max+Plus Ⅱ; VHDL
在通信系統(tǒng)中,由于信道存在大量的噪聲和干擾,使得經(jīng)信道傳輸后的接收碼與發(fā)送碼之間存在差異,出現(xiàn)誤碼。在數(shù)字通信系統(tǒng)中常采用差錯(cuò)控制信道編碼技術(shù),以此來(lái)減少傳輸過程的誤碼,提高數(shù)字通信系統(tǒng)的傳輸質(zhì)量[1]。它的基本原理是:發(fā)送端的信道編碼器在信息碼元序列中按照一定的關(guān)系加入一些冗余碼元(稱為監(jiān)督碼元),使得原來(lái)相關(guān)性很小的信息碼元產(chǎn)生某種相關(guān)性,從而在接收端利用這種相關(guān)性來(lái)檢查并糾正信息碼元在傳輸中引起的差錯(cuò)。冗余度的引入提高了傳輸?shù)目煽啃?但降低了傳輸效率。
1 線性分組碼
分組碼是由一組固定長(zhǎng)度為n,稱之為碼字的矢量構(gòu)成的。線性分組編碼時(shí),將每k個(gè)信息位分為一組獨(dú)立處理,按一定規(guī)則給每個(gè)信息組增加(n-k)個(gè)監(jiān)督碼元,組成長(zhǎng)度為n的二進(jìn)制碼字,這種編碼方式記為是(n,k)分組碼[2]。信息位和監(jiān)督位采用的關(guān)系式由┮蛔橄咝苑匠趟決定,稱之為線性分組碼。
若線性分組碼的輸入信息位為U=(U0,U1,…,Uk),編碼輸出為C=(C0,C1,…,Cn),則有如下關(guān)系:
C=U•G
H•CT=OT
(1)
式中:G為線性分組碼的生成矩陣;H為監(jiān)督矩陣。當(dāng)G確定后,編碼的方法就完全確定了,而H給定后,編碼時(shí)監(jiān)督位和信息位的關(guān)系也就確定了。因此,在設(shè)計(jì)分組碼編碼器時(shí),需要確定生成矩陣G;在設(shè)計(jì)分組碼譯碼器時(shí),需要確定監(jiān)督矩陣H。
2 線性分組碼編譯碼器設(shè)計(jì)
2.1 線性分組碼編碼器設(shè)計(jì)
設(shè)G=
0 0 1 0 1 1
1 0 0 1 0 1
0 1 0 1 1 0,由于生成矩陣G是k行n列,所以k=3,n=6,改(n,k)碼為(6,3)碼。根據(jù)生成矩陣和式(1)運(yùn)算后得到相應(yīng)的編碼。即由:
(C0,C1,C2,C3,C4,C5)=
(U0,U1,U2)• 0 0 1 0 1 1
1 0 0 1 0 1
0 1 0 1 1 0
可得:
C0=U1,C1=U2,C2=U0,
C3=U1+U2,C4=U0+U2,C5=U0+U1
COUT=(C0,C1,C2,C3,C4,C5)為編碼輸出,其中前3個(gè)分量為增加的監(jiān)督碼元,后3個(gè)為原輸入信息位。
2.2 線性分組碼譯碼器設(shè)計(jì)
將生成矩陣G進(jìn)行初等運(yùn)算:原矩陣的第2,3,1行分別作為典型矩陣的第1,2,3行,可得典型生成矩陣:
G=1 0 0 1 0 10 1 0 1 1 00 0 1 0 1 1=IkQ
Q=1 0 11 1 01 1 0,P=QT=1 1 00 1 11 0 1
于是,典型監(jiān)督矩陣H為:
H=[PIr]=1 1 0 1 0 00 1 1 0 1 01 0 1 0 0 1
(2)
監(jiān)督碼元與信息碼元之間的關(guān)系稱為監(jiān)督方程式(監(jiān)督關(guān)系式),監(jiān)督矩陣的每行中“1”的位置表示相應(yīng)碼元之間存在的監(jiān)督關(guān)系,即下述三個(gè)監(jiān)督方程:
Y0Y1Y3=0
Y1Y2Y4=0
Y0Y2Y5=0(3)
發(fā)送的碼字C=(C0,C1,…,Cn)。e表示傳輸中的差錯(cuò);Y表示接收的碼字。如果碼字在傳輸過程中沒有出現(xiàn)差錯(cuò),則有HYT=HeT=0;出現(xiàn)差錯(cuò)時(shí),則有HYT=H(Ce)T=HeT=ST,S=eHT。其中,S稱為伴隨子,又稱為校正子。由于S只與序列傳輸中的差錯(cuò)e有關(guān),因此在編碼的能力之內(nèi),一定的e序列必然對(duì)應(yīng)一定的S組合。可以在接收機(jī)中做好對(duì)應(yīng)表,然后根據(jù)序列S準(zhǔn)確地判斷差錯(cuò)位置,再根據(jù)出錯(cuò)位置進(jìn)行糾正,可得到正確的譯碼輸出。根據(jù)式(2)可計(jì)算接收矢量Y的伴隨子S=Y•HT。這里:
(S0,S1,S2)=(Y0,Y1,Y2,Y3,Y4,Y5)•
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
S0=Y0+Y1+Y3,S1=Y1+Y2+Y4,
S2=Y0+Y2+Y5
錯(cuò)誤圖樣即校正子與錯(cuò)碼位置的關(guān)系,因?yàn)閞=3,所以有3個(gè)校正子,相應(yīng)的有3個(gè)監(jiān)督關(guān)系式。將┦(3)改寫為[3]:
Y0Y1Y3=S0
Y1Y2Y4=S1
Y0Y2Y5=S2
(4)
則可得由伴隨子S決定對(duì)應(yīng)的錯(cuò)誤圖樣集e,即為典型監(jiān)督矩陣的轉(zhuǎn)置HT,如表1所示。
表1 錯(cuò)誤圖樣表
錯(cuò)碼位置(e碼)S0S1S2錯(cuò)碼位置(e碼)S0S1S2
Y5101Y1010
Y4110Y0001
Y3011無(wú)錯(cuò)000
Y2100
3 仿真及分析
圖1、圖2分別為線性仿真分組編碼器、譯碼器電路的仿真波形。圖中各參數(shù)含義如下:
clk是系統(tǒng)時(shí)鐘信號(hào)輸入;
UI是編碼器中三位線性分組碼的輸入;
CO是編碼器中六位編碼的輸出;
Y是解碼器中六位編碼的輸入;
c是解碼器中六位譯碼的輸出。
圖1 線性仿真分組編碼器仿真波形
圖2 線性仿真分組譯碼器仿真波形
在圖1、圖2中,截取了仿真的部分波形進(jìn)行分析,產(chǎn)生的六位編碼CO、六位譯碼Y完全依據(jù)線性分組碼的編譯碼規(guī)則,任意兩個(gè)許用碼組之和(逐位模2加)仍為一許用碼組,即具有封閉性。
4 結(jié) 語(yǔ)
對(duì)線性分組碼編、譯碼器的設(shè)計(jì)基于VHDL(硬件描述語(yǔ)言)[4-10],與傳統(tǒng)設(shè)計(jì)相比較,采用VHDL語(yǔ)言設(shè)計(jì)的線性分組碼編、譯碼器無(wú)需考慮具體電路的實(shí)現(xiàn),只需要掌握編譯碼原理,根據(jù)相應(yīng)的編譯碼規(guī)則轉(zhuǎn)換成VHDL語(yǔ)言,大大減少了設(shè)計(jì)人員的工作量,提高了設(shè)計(jì)的準(zhǔn)確性和效率。程序已在Max+Plus Ⅱ10.0工具軟件上進(jìn)行了編譯、仿真和調(diào)試。經(jīng)過實(shí)驗(yàn)結(jié)果的分析,說(shuō)明本設(shè)計(jì)是正確的。本文給出的設(shè)計(jì)思想也適用于其他基于PLD芯片的系統(tǒng)設(shè)計(jì)。
參考文獻(xiàn)
[1]曹麗娜,樊昌信.通信原理[M].6版.北京:國(guó)防工業(yè)出版社,2007.
[2]曹雪虹,張宗橙.信息論與編碼[M].北京:北京郵電大學(xué)出版社,2003.
[3]黃智偉.PFGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2007.
[4]曾繁泰,陳美全.VHDL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[5]王鎖萍.電子設(shè)計(jì)自動(dòng)化(EDA教程)[M].西安:西安電子科技大學(xué)出版社,2000.
[6]宋嘉玉,孫麗霞.EDA實(shí)用技術(shù)[M].北京:人民郵電出版社,2006.
[7]劉云仙.VHDL在數(shù)字電路設(shè)計(jì)中的應(yīng)用[J].浙江科技學(xué)院學(xué)報(bào),2004(9):167-168.
[8]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002.
關(guān)鍵詞:項(xiàng)目教學(xué);電子設(shè)計(jì)自動(dòng)化;方案
0引言
教學(xué)方案是指教師在教學(xué)過程中對(duì)教學(xué)內(nèi)容、教學(xué)方法、教學(xué)步驟以及要達(dá)到的教學(xué)效果等所進(jìn)行的精心編排和設(shè)計(jì),是教師對(duì)教材的認(rèn)識(shí)和處理,以及對(duì)學(xué)生學(xué)習(xí)方法的指導(dǎo),是進(jìn)行課堂教學(xué)的實(shí)施方案[1]。一個(gè)好的教案不僅能指導(dǎo)學(xué)生“學(xué)會(huì)”,而且還引導(dǎo)學(xué)生“會(huì)學(xué)”,從而順利地完成教學(xué)任務(wù)。因此,教學(xué)方案的設(shè)計(jì)就成為課堂教學(xué)的重中之重。在《電子設(shè)計(jì)自動(dòng)化》教學(xué)中采用了項(xiàng)目教學(xué)法,通過具體的項(xiàng)目設(shè)計(jì),實(shí)施“項(xiàng)目導(dǎo)向”教學(xué)模式,學(xué)生在老師的引導(dǎo)下,從每一個(gè)項(xiàng)目入手,在好奇心的驅(qū)動(dòng)下,對(duì)理論知識(shí)進(jìn)行學(xué)習(xí),對(duì)項(xiàng)目任務(wù)進(jìn)行設(shè)計(jì),對(duì)實(shí)踐操作進(jìn)行實(shí)施,在“做中學(xué)”,在“學(xué)中做”,對(duì)培養(yǎng)學(xué)生的綜合實(shí)踐能力和創(chuàng)新思維能力具有積極的促進(jìn)作用[2]。現(xiàn)將本人設(shè)計(jì)的基于項(xiàng)目教學(xué)法的“三人表決器”教學(xué)方案介紹如下。
1教學(xué)目標(biāo)
1.1知識(shí)目標(biāo)
熟練掌握VHDL程序的基本結(jié)構(gòu);掌握IF語(yǔ)句、CASE語(yǔ)句的格式及用法;理解IF語(yǔ)句和CASE語(yǔ)句的區(qū)別。
1.2技能目標(biāo)
①科研創(chuàng)新能力:本項(xiàng)目要在QUARTUSII軟件下用編程的方式設(shè)計(jì)三人表決器的電路,并且可以采用多種編程方式來(lái)實(shí)現(xiàn),深切地讓學(xué)生體會(huì)到該設(shè)計(jì)方法的靈活性,開闊學(xué)生的視野,培養(yǎng)學(xué)生分析問題,解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)造與創(chuàng)新理念。②電路設(shè)計(jì)能力:通過進(jìn)一步的學(xué)習(xí),學(xué)生又掌握了利用一種編程語(yǔ)言VHDL來(lái)設(shè)計(jì)電路的能力,提高了學(xué)生電路設(shè)計(jì)能力。③分析問題、解決問題的能力:通過在設(shè)計(jì)過程中不斷提出問題,讓學(xué)生分小組討論并給出結(jié)論,讓學(xué)生在思考的同時(shí)提高了分析問題和解決問題的能力。
1.3情感目標(biāo)
①樹立專業(yè)自信:激發(fā)學(xué)生的學(xué)習(xí)興趣,堅(jiān)定學(xué)生從事電子行業(yè)的信念,培養(yǎng)學(xué)生對(duì)電子專業(yè)的熱愛。②培養(yǎng)課程興趣:通過創(chuàng)設(shè)情景、實(shí)物演示,提出三人表決器在各種選舉和組織競(jìng)賽活動(dòng)中的應(yīng)用等問題激發(fā)學(xué)生對(duì)電路設(shè)計(jì)的好奇心和求知欲;通過自主完成整個(gè)電路的制作,體驗(yàn)成功的喜悅,增強(qiáng)自信心和成就感。③培養(yǎng)良好的學(xué)習(xí)習(xí)慣:針對(duì)學(xué)生的專業(yè)知識(shí)特點(diǎn),采用多元化的教學(xué)方法,鼓勵(lì)學(xué)生積極表達(dá)自己的想法,培養(yǎng)學(xué)生良好的學(xué)習(xí)態(tài)度和學(xué)習(xí)習(xí)慣。④培養(yǎng)創(chuàng)新精神:通過設(shè)計(jì)三人表決器,培養(yǎng)學(xué)生采用多種方案實(shí)現(xiàn)同一種電路的創(chuàng)新精神,體會(huì)到條條大路通羅馬。⑤培養(yǎng)團(tuán)隊(duì)合作精神:通過小組合作的方式,大家互相取長(zhǎng)補(bǔ)短,共同進(jìn)步,共同提高,培養(yǎng)了大家的團(tuán)隊(duì)協(xié)作精神。
2教學(xué)重點(diǎn)難點(diǎn)及解決方法
教學(xué)重點(diǎn)包括:IF語(yǔ)句、CASE語(yǔ)句的語(yǔ)句格式及注意事項(xiàng);IF語(yǔ)句和CASE語(yǔ)句的區(qū)別;IF語(yǔ)句和CASE語(yǔ)句的具體應(yīng)用。教學(xué)難點(diǎn)包括:IF語(yǔ)句和CASE語(yǔ)句的具體應(yīng)用。為了突出重點(diǎn),突破難點(diǎn),采取了以下方法:①課前“任務(wù)”導(dǎo)學(xué):通過提前給學(xué)生布置預(yù)習(xí)任務(wù)讓學(xué)生提前預(yù)習(xí)課本第4章《VHDL的主要描述語(yǔ)句》這部分內(nèi)容,使學(xué)生在課前對(duì)VHDL的順序語(yǔ)句的IF語(yǔ)句、CASE語(yǔ)句有所了解。②課中“內(nèi)容”導(dǎo)教:課上借助圖片、現(xiàn)場(chǎng)演示、軟件仿真等手段進(jìn)行導(dǎo)教,使授課內(nèi)容更加形象、直觀,配合課堂練習(xí),加強(qiáng)學(xué)生對(duì)知識(shí)點(diǎn)的掌握。③課后“知識(shí)”拓展:推薦學(xué)生閱讀參考書以及相關(guān)的網(wǎng)絡(luò)資源并布置隨堂作業(yè),讓學(xué)生開闊視野,加深對(duì)所學(xué)知識(shí)的理解。
3學(xué)情分析
3.1知識(shí)基礎(chǔ)
本門課程的教學(xué)安排在第六學(xué)期進(jìn)行,授課對(duì)象是電子專業(yè)大三的學(xué)生,他們已經(jīng)學(xué)習(xí)了《單片機(jī)技術(shù)》、《專業(yè)軟件選講》、《檢測(cè)與轉(zhuǎn)換技術(shù)》等專業(yè)課,已經(jīng)具備了一定的電子設(shè)計(jì)基礎(chǔ),好奇心強(qiáng),動(dòng)手能力較強(qiáng),合作能力也很好,為本門課的學(xué)習(xí)打下了基礎(chǔ)。學(xué)生之前學(xué)習(xí)過C語(yǔ)言,對(duì)學(xué)生理解VHDL語(yǔ)言有一定的幫助,但部分同學(xué)理論基礎(chǔ)較差,對(duì)單純的理論學(xué)習(xí)缺乏興趣,所以要將理論和實(shí)踐相相結(jié)合,幫學(xué)生克服理論基礎(chǔ)薄弱問題。學(xué)生在前面的課程中對(duì)VHDL程序的基本結(jié)構(gòu)已經(jīng)熟練掌握,對(duì)EDA技術(shù)的設(shè)計(jì)流程也已經(jīng)掌握,并且有了一定的編程基礎(chǔ),在此基礎(chǔ)上進(jìn)行VHDL描述語(yǔ)句的學(xué)習(xí)水到渠成。
3.2認(rèn)知特點(diǎn)
大多數(shù)學(xué)生學(xué)習(xí)態(tài)度比較端正,有一定的自學(xué)能力和利用互聯(lián)網(wǎng)查找資料的能力,同時(shí)對(duì)電子設(shè)計(jì)的興趣較高,求知欲比較強(qiáng)烈。本門課程是學(xué)生以前沒有接觸過的用軟件編程的方式來(lái)描述硬件電路的形式,學(xué)生經(jīng)過前面幾周的學(xué)習(xí)已經(jīng)能理解這種語(yǔ)言和以往所學(xué)編程語(yǔ)言的不同。
3.3學(xué)習(xí)風(fēng)格
電子專業(yè)學(xué)生動(dòng)手能力強(qiáng),課堂氣氛活躍,對(duì)電路設(shè)計(jì)的求知欲很強(qiáng),但是有部分學(xué)生自我約束力較差,注意力不集中,自主學(xué)習(xí)能力和自我約束能力有待提高。
4教材分析
本單元內(nèi)容源自潘松主編的《EDA實(shí)用教程—VHDL版》(第五版),該教材屬于“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材,適用于電子類相關(guān)專業(yè)使用。該注重實(shí)踐、實(shí)用和創(chuàng)新能力的培養(yǎng),注重教學(xué)選材的靈活性和完整性相結(jié)合,有助于學(xué)生掌握EDA的相關(guān)基礎(chǔ)知識(shí)達(dá)到快速入門的目的。本次課以一個(gè)具體的三人表決器的項(xiàng)目為依托,講解VHDL的IF語(yǔ)句、CASE語(yǔ)句等相關(guān)知識(shí)點(diǎn)。在教學(xué)內(nèi)容上起著承上啟下的作用,也是實(shí)現(xiàn)電路設(shè)計(jì)的語(yǔ)言工具和手段。
5教學(xué)過程設(shè)計(jì)
基于項(xiàng)目教學(xué)法的“三人表決器”的教學(xué)過程設(shè)計(jì)如表1所示。
6總結(jié)
總之,教師在編制教學(xué)流程、構(gòu)思課的主旋律時(shí),必須符合教育教學(xué)規(guī)律,使之結(jié)構(gòu)巧妙,引人人勝。特別是要改變過去只考慮教師“如何教”,而忽視學(xué)生“怎樣學(xué)”的做法[3]。“教”為“學(xué)”服務(wù),教師的“教”要激發(fā)學(xué)生“學(xué)”的興趣,精心設(shè)疑,發(fā)展求異思維,培養(yǎng)學(xué)生的自學(xué)能力,將理論知識(shí)和實(shí)踐操作結(jié)合起來(lái),讓學(xué)生在“做中學(xué)”,老師在“做中教”。另外,在教學(xué)過程中應(yīng)該采用多樣化的教學(xué)手段,在采用“項(xiàng)目教學(xué)法”的同時(shí),穿插使用實(shí)物演示法、啟發(fā)式教學(xué)法、討論式教學(xué)法等。將傳統(tǒng)的老師講學(xué)生聽的模式改為以學(xué)生為主體的教學(xué)方法,增強(qiáng)學(xué)生對(duì)所學(xué)理論知識(shí)的認(rèn)識(shí),同時(shí)培養(yǎng)學(xué)生運(yùn)用理論知識(shí)解決實(shí)際問題的能力,促進(jìn)學(xué)生的自主學(xué)習(xí)能力。
參考文獻(xiàn):
[1]楊帆.建筑材料課在工學(xué)結(jié)合過程中引入項(xiàng)目教學(xué)法的方案設(shè)計(jì)探究[J].教學(xué)探索,2015(08):102-103.
[2]徐學(xué)紅.“項(xiàng)目導(dǎo)向”教學(xué)模式在EDA技術(shù)課程中的應(yīng)用[J].中國(guó)電力教育,2013(28):108-109.
關(guān)鍵詞:VHDL; 彩燈控制器; 變換模式; EP1K30QC208
中圖分類號(hào):TN710; TP332.1 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)14-0180-03
Design of Adjustable Speed Sixteen Groups Illuminations Controller Based on VHDL
ZHANG Xi-feng,QU Bao-peng
(Electronics Engineer Department, Sh
nxi Institute of Technology, Xi'an 710300,China)
Abstract: The FPGA/CPLD is applied in digital system development extensively with the development of large scale integrated circuit. Illuminations which are common decorations have a broad application in daily life. In order to make the illuminations colorful, a switch speed adjustable controller which can control 16 groups of illuminations and has 4 switch patterns was designed with the language of VHDL in the environment of Quartus II. The simulation results indicate that the designed controller realized the cycle of 4 switch patterns and all sorts of speeds adjustable. The validity of whole designed functions is verified with the EP1K30QC208 chip of ACEX1K series.
Keywords: VHDL; illuminations; controller; switch mode; EP1K30QC208
0 引 言
近年來(lái),FPGA/CPLD發(fā)展迅速,隨著集成電路制造工藝的不斷進(jìn)步,高性價(jià)比的FPGA/CPLD器件推陳出新[1-3],使FPGA/CPLD成為當(dāng)今硬件設(shè)計(jì)的重要途徑,與傳統(tǒng)電路設(shè)計(jì)方法相比,FPGA/CPLD具有功能強(qiáng)大、開發(fā)周期短、投資少,便于追蹤市場(chǎng)變化及時(shí)修改產(chǎn)品設(shè)計(jì)以及開發(fā)工具智能化等特點(diǎn)[4]。在諸多FPGA/CPLD的設(shè)計(jì)語(yǔ)言中,VHDL語(yǔ)言作為一種主流的硬件描述語(yǔ)言,具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性,并在語(yǔ)言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)出了強(qiáng)大的生命力和應(yīng)用潛力[5-6]。
Quartus Ⅱ是Altera公司在21世紀(jì)初推出的FPGA/CPLD集成開發(fā)環(huán)境,是Altera公司前一代FPGA/CPLD集成開發(fā)環(huán)境Max+PlusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷,功能強(qiáng)大,為設(shè)計(jì)者提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便的進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程[7-8]。
本文在Quartus Ⅱ開發(fā)環(huán)境下,用VHDL語(yǔ)言設(shè)計(jì)了一種可用于控制16路彩燈,具有4種彩燈變換模式,且變換速度可調(diào)的彩燈控制器。
1 16路可調(diào)速彩燈控制器設(shè)計(jì)思路
16路可調(diào)速彩燈控制器根據(jù)功能可分為3個(gè)部分,如圖1所示。其中,8 Hz分頻部分用于對(duì)頻率為10 MHz的時(shí)鐘信號(hào)進(jìn)行分頻,獲得頻率為8 Hz的時(shí)鐘信號(hào)CLK8。CLK8作為速度控制部分的基準(zhǔn)時(shí)鐘,通過計(jì)數(shù)分頻方式又可獲得頻率分別為4 Hz,2 Hz和1 Hz的時(shí)鐘信號(hào),然后由調(diào)速信號(hào)選擇其中之一作為彩燈時(shí)鐘信號(hào)CLKQ,CLKQ即為彩燈控制部分的基準(zhǔn)時(shí)鐘,用于決定彩燈變換的速度,由此實(shí)現(xiàn)調(diào)速信號(hào)SPD對(duì)彩燈變換速度的控制,使彩燈可調(diào)速。
圖1 16路可調(diào)速彩燈原理圖
彩燈控制部分通過輸出1個(gè)16位二進(jìn)制數(shù)(即彩燈輸出信號(hào)Q)來(lái)控制16個(gè)彩燈,每一位二進(jìn)制數(shù)對(duì)應(yīng)1個(gè)彩燈的開關(guān),當(dāng)該位數(shù)字為“1”時(shí)燈亮,該位數(shù)字為“0”時(shí)燈滅。彩燈的變換共設(shè)置4種模式:
s0模式:只亮1個(gè)燈,從最左端逐個(gè)移動(dòng)到最右端,即輸出信號(hào)Q從第15位開始將1個(gè)“1”依次移動(dòng)到第0位;
s1模式:只亮1個(gè)燈,從最右端逐個(gè)移動(dòng)到最左端,即輸出信號(hào)Q從第0位開始將1個(gè)“1”依次移動(dòng)到第15位;
s2模式:亮2個(gè)燈,同時(shí)從左右兩端向中間移動(dòng),即輸出信號(hào)Q從第15位開始將1個(gè)“1”依次移動(dòng)到┑8位,同時(shí)從第0位開始將1個(gè)“1”依次移動(dòng)到┑7位;
s3模式:亮2個(gè)燈,同時(shí)從中間向左右兩端移動(dòng),即輸出信號(hào)Q從第8位開始將1個(gè)“1”依次移動(dòng)到┑15位,同時(shí)從第7位開始將1個(gè)“1”依次移動(dòng)到┑0位。
四種模式依次循環(huán),若復(fù)位信號(hào)RST輸入為高電平,則循環(huán)中斷,輸出信號(hào)Q置零,彩燈全滅,RST恢復(fù)為低電平后,再次從s0模式開始循環(huán)。
2 16路可調(diào)速彩燈控制器的實(shí)現(xiàn)
本文所設(shè)計(jì)的16路可調(diào)速彩燈控制器,其電路符號(hào)如圖2所示,其中clk為10 MHz時(shí)鐘信號(hào)輸入端,rst為復(fù)位控制端,spd為調(diào)速信號(hào)輸入端,q為彩燈控制信號(hào)輸出端。
圖2 16路可調(diào)速彩燈控制器的電路符號(hào)
本文所設(shè)計(jì)的16路可調(diào)速彩燈控制器的VHDL代碼如下所示:
LIBRARY IEEE;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY lights16 IS
PORT(clk: in std_logic;----10MHz時(shí)鐘輸入信號(hào)
rst: in std_logic;----復(fù)位信號(hào)
spd: in std_logic_vector(1 downto 0);
q: out std_logic_vector(15 downto 0));
END lights16;
ARCHITECTURE one OF lights16 IS
type states is (s0,s1,s2,s3);----定義4種模式
signal present:states;
signal clk8hz:std_logic;
signal clkq:std_logic;
signal q1:std_logic_vector(15 downto 0);
signal cnt:std_logic_vector(3 downto 0);
BEGIN
process(clk)----8Hz分頻
variable count:integer range 0 to 624999;
begin
if clk′event and clk=′1′ then
if count=624999
then clk8hz
else count:=count+1;
end if;
end if;
end process;
process(clk8Hz)----速度控制
variable count1:std_logic_vector(2 downto 0);
begin
if clk8Hz′event and clk8Hz=′1′
then count1:=count1+1;
end if;
case spd is
when"00"=>clkq
when"01"=>clkq
when"10"=>clkq
when"11"=>clkq
end case;
end process;
----系統(tǒng)復(fù)位
process(clkq,rst)
begin
if rst=′1′ then present
elsif clkq′event and clkq=′1′ then
case present is
----s0模式:從左到右逐個(gè)點(diǎn)亮LED
when s0=>
if q1="0000000000000000"
then q1
elsif cnt="1111" then
cnt′0′);
q1
present
else q1
cnt
end if;
----s1模式:從右到左逐個(gè)點(diǎn)亮LED
when s1=>
if cnt="1111" then
cnt′0′);
q1
present
else q1
cnt
end if;
----s2模式:從兩邊到中間逐個(gè)點(diǎn)亮LED
when s2=>
if cnt="1111" then
cnt′0′);
q1
present
else q1(15 downto 8)
q1(7 downto 0)
cnt
end if;
----s3模式:從中間到兩邊逐個(gè)點(diǎn)亮LED
when s3=>
if cnt="1111" then
cnt′0′);
q1
else q1(15 downto 8)
q1(7 downto 0)
cnt
end if;
end case;
end if;
end process;
q
END ARCHITECTURE one;
值得注意的是,本文設(shè)計(jì)的16路可調(diào)速彩燈控制器使用了數(shù)據(jù)循環(huán)算法,較以往的case when語(yǔ)句[10],更加簡(jiǎn)潔,實(shí)現(xiàn)的功能更加強(qiáng)大,其具有如下特點(diǎn):
(1) 在硬件驗(yàn)證時(shí),將速度控制端spd的pin腳接到撥碼開關(guān)上,從而實(shí)現(xiàn)彩燈變換速度快慢的手動(dòng)控制,在更進(jìn)一步的設(shè)計(jì)中,也可以通過對(duì)spd信號(hào)的內(nèi)部控制,實(shí)現(xiàn)各種變換速度的自動(dòng)調(diào)整。
(2) 該設(shè)計(jì)采用數(shù)據(jù)移位的方式實(shí)現(xiàn)彩燈的變換,更有利于彩燈變換模式的擴(kuò)展。該設(shè)計(jì)雖然只設(shè)計(jì)了4種變換模式,但可以根據(jù)需要輕松的擴(kuò)展至6~8種模式,甚至更多。
(3) 8 Hz分頻部分的分頻比很大,不適于計(jì)算機(jī)仿真驗(yàn)證,在仿真時(shí)需要調(diào)小分頻比,在硬件驗(yàn)證時(shí)再恢復(fù)較大的分頻比。
3 仿真結(jié)果分析
本文設(shè)計(jì)的16路可調(diào)速彩燈控制器在Quartus Ⅱ開發(fā)環(huán)境下進(jìn)行了仿真驗(yàn)證,仿真波形如圖3所示。仿真結(jié)果分析如下:
(1) clk為時(shí)鐘信號(hào),由時(shí)鐘信號(hào)的上升沿觸發(fā)分頻器計(jì)數(shù);
(2) rst為復(fù)位信號(hào)輸入端,當(dāng)其為高電平時(shí),彩燈控制輸出信號(hào)q清零,rst恢復(fù)為低電平后彩燈控制輸出信號(hào)q從s0模式重新開始循環(huán);
(3) spd為調(diào)速信號(hào)輸入端,對(duì)應(yīng)于spd的“00”,“01”,“10”,“11”這4個(gè)數(shù)值,彩燈變換的速度分別為1 Hz,2 Hz,4 Hz,8 Hz;
(4) q為彩燈控制信號(hào)輸出端,由圖3可知,該設(shè)計(jì)成功地實(shí)現(xiàn)了4種變換模式的循環(huán)和各種變換速度的調(diào)節(jié)。
圖3 16路可調(diào)速彩燈控制器仿真波形
4 結(jié) 語(yǔ)
設(shè)計(jì)的16路可調(diào)速彩燈控制器在Quartus Ⅱ開發(fā)環(huán)境下進(jìn)行了仿真驗(yàn)證后,下載到湖北眾友科技實(shí)業(yè)股份有限公司的ZY11EDA13BE實(shí)驗(yàn)箱中進(jìn)行了硬件驗(yàn)證,該實(shí)驗(yàn)箱使用ACEX1K系列EP1K30QC208芯片作為核心芯片,實(shí)驗(yàn)證明設(shè)計(jì)正確,功能完整,運(yùn)行穩(wěn)定。另外,本文所設(shè)計(jì)的16路可調(diào)速彩燈控制器可根據(jù)需要增加更多的變換模式,使彩燈更加絢麗多姿。
參考文獻(xiàn)
[1]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2004.
[2]康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M].北京:高等教育出版社,2004.
[3]馬或,利,王麗英.CPLD/FPGA可編程邏輯器件實(shí)用教程[M].北京:機(jī)械工業(yè)出版社,2006.
[4]侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2000.
[5]李國(guó)麗,朱維勇,欒銘.EDA與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.
[6]盧毅,賴杰.VHDL與數(shù)字電路設(shè)計(jì)[M] .北京:科學(xué)出版社,2001.
[7]李志,田永清,朱仲英.VHDL的設(shè)計(jì)特點(diǎn)與應(yīng)用研究[J].微型電腦應(yīng)用,2002(10):5-8.