基于VHDL的16路可調(diào)速彩燈控制器設(shè)計
0 引言
近年來,F(xiàn)PGA/CPLD發(fā)展迅速,隨著集成電路制造工藝的不斷進步,高性價比的FPGA/CPLD器件推陳出新,使FPGA/CPLD成為當(dāng)今硬件設(shè)計的重要途徑,與傳統(tǒng)電路設(shè)計方法相比,F(xiàn)PGA/CPLD具有功能強大、開發(fā)周期短、投資少,便于追蹤市場變化及時修改產(chǎn)品設(shè)計以及開發(fā)工具智能化等特點。在諸多FPGA/CPLD的設(shè)計語言中,VHDL語言作為一種主流的硬件描述語言,具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計方面,表現(xiàn)出了強大的生命力和應(yīng)用潛力。
QuartusⅡ是Altera公司在21世紀(jì)初推出的FPGA/CPLD集成開發(fā)環(huán)境,是Altera公司前一代FPGA/CPLD集成開發(fā)環(huán)境Max+PlusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷,功能強大,為設(shè)計者提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便的進行設(shè)計輸入、快速處理和器件編程。
本文在QuartusⅡ開發(fā)環(huán)境下,用VHDL語言設(shè)計了一種可用于控制16路彩燈,具有4種彩燈變換模式,且變換速度可調(diào)的彩燈控制器。
1 16路可調(diào)速彩燈控制囂設(shè)計思路
16路可調(diào)逮彩燈控制器根據(jù)功能可分為3個部分,如圖1所示。其中,8 Hz分頻部分用于對頻率為10 MHz的時鐘信號進行分頻,獲得頻率為8 Hz的時鐘信號CLK8。CLK8作為速度控制部分的基準(zhǔn)時鐘,通過計數(shù)分頻方式又可獲得頻率分別為4 Hz,2 Hz和1 Hz的時鐘信號,然后由調(diào)速信號選擇其中之一作為彩燈時鐘信號CLKQ,CLKQ即為彩燈控制部分的基準(zhǔn)時鐘,用于決定彩燈變換的速度,由此實現(xiàn)調(diào)速信號SPD對彩燈變換速度的控制,使彩燈可調(diào)速。
彩燈控制部分通過輸出1個16位二進制數(shù)(即彩燈輸出信號Q)來控制16個彩燈,每一位二進制數(shù)對應(yīng)1個彩燈的開關(guān),當(dāng)該位數(shù)字為“1”時燈亮,該位數(shù)字為“O”時燈滅。彩燈的變換共設(shè)置4種模式:
sO模式:只亮1個燈,從最左端逐個移動到最右端,即輸出信號Q從第15位開始將1個“1”依次移動到第0位;
s1模式:只亮1個燈,從最右端逐個移動到最左端,即輸出信號Q從第0位開始將1個“1”依次移動到第15位;
s2模式:亮2個燈,同時從左右兩端向中間移動,即輸出信號Q從第15位開始將1個“1”依次移動到第8位,同時從第O位開始將1個“1”依次移動到第7位;
s3模式:亮2個燈,同時從中間向左右兩端移動,即輸出信號Q從第8位開始將1個“1”依次移動到第15位,同時從第7位開始將1個“1”依次移動到第0位。
四種模式依次循環(huán),若復(fù)位信號RST輸入為高電平,則循環(huán)中斷,輸出信號Q置零,彩燈全滅,RST恢復(fù)為低電平后,再次從sO模式開始循環(huán)。
2 16路可調(diào)速彩燈控制器的實現(xiàn)
本文所設(shè)計的16路可調(diào)速彩燈控制器,其電路符號如圖2所示,其中clk為10 MHz時鐘信號輸入端,rst為復(fù)位控制端,spd為調(diào)速信號輸入端,q為彩燈控制信號輸出端。
評論