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