資源描述:
《eda課程設計報告-多路彩燈控制電路設計》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、EDA課程設計報告——多路彩燈控制電路設計多路彩燈控制電路設計報告題目:多路彩燈控制電路設計要求:⑴要有6種花型變化。⑵多種花型可以自動變化,循環(huán)往復。⑶彩燈變化的快慢節(jié)拍可以選擇。⑷具有清零開關。設計方案:根據(jù)系統(tǒng)設計要求,設計一個具有6種花型循環(huán)變化的彩燈控制器。整個系統(tǒng)共有三個輸入信號:控制彩燈節(jié)奏快慢的基準時鐘信號CLK_IN,系統(tǒng)清零信號CLR,彩燈節(jié)奏快慢選擇開關CHOSE_KEY;共有16個輸出信號LED[15..0],分別用于控制十六路彩燈。據(jù)此,系統(tǒng)設計采用自頂向下的設計方法,我們可將整個彩燈控制器CDKZQ分為兩大部分:時序控制電路SXKZ和顯示控
2、制電路XSKZ。模塊劃分:時序控制電路(SXKZ)顯示控制電路(XSKZ)端口介紹:CLK_IN—控制彩燈節(jié)奏快慢的基準時鐘信號CLR—系統(tǒng)清零信號CHOSE_KEY—彩燈節(jié)奏快慢選擇開關LED[15..0]—16個輸出信號設計過程:⒈時序控制模塊(SXKZ)①新建一個VHD格式的文本編輯文件,保存—默認—命名②編寫源程序,如下:時序控制模塊源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSXKZISPORT(CHOSE_KEY:INSTD_LOGIC;CL
3、K_ZN:INSTD_LOGIC;CLR:INSTD_LOGIC;CLK:OUTSTD_LOGIC);ENDSXKZ;ARCHITECTUREARTOFSXKZISSIGNALCK:STD_LOGIC;BEGINPROCESS(CLK_ZN,CLR,CHOSE_KEY)VARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIFCLR='1'THENCK<='0';TEMP:="000";ELSIF(CLK_ZN'EVENTANDCLK_ZN='1')THENIF(CHOSE_KEY='1')THENIFTEMP="011"THENT
4、EMP:="000";CK<=NOTCK;ELSETEMP:=TEMP+1;ENDIF;ELSEIFTEMP="111"THENTEMP:="000";CK<=NOTCK;ELSETEMP:=TEMP+'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;CLK<=CK;ENDART;③檢查錯誤,如圖:④器件配置。選用FLEX10K下的EPF10K10LC84-3⑤系統(tǒng)綜合。如圖:⑥管腳定義。注意:端口只能放在I/O端口和I/O數(shù)據(jù)端,時鐘信號放在CLK,如圖:⑦生成符號文件。如圖:⑧仿真。新建一個波形編輯文件,格式為SCF,先保存—默認—命名,結(jié)束時間:
5、10ms時鐘周期:50ns如圖:分析仿真結(jié)果:根據(jù)源程序當CLR為1時,TEMP=000,CLK=0清零。當CLR=0且時鐘信號CLK_IN來到時,⒈CHOSE_KEY為1時,如果TEMP=011(即為3),則TEMP=000(即為0)且CLK反轉(zhuǎn)。如果TEMP不為011,則TEMP+1⒉CHOSE_KEY為0時如果TEMP=111(即為7),則TEMP=000(即為0)且CLK反轉(zhuǎn)。如果TEMP不為111,則TEMP+1⒉顯示控制模塊(XSKZ)①新建一個VHD格式的文本編輯文件,保存—默認—命名②編寫源程序,如下:顯示控制模塊源程序:LIBRARYIEEE;USE
6、IEEE.STD_LOGIC_1164.ALL;ENTITYXSKZISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;LED:OUTSTD_LOGIC_VECTOR(15downto0));ENDentityXSKZ;ARCHITECTUREARTOFXSKZISTYPESTATEIS(S0,S1,S2,S3,S4,S5,S6);SIGNALCURRENT_STATE:STATE;SIGNALLIGHT:STD_LOGIC_VECTOR(15DOWNTO0);BEGINPROCESS(CLR,CLK)ISCONSTANTL1:STD_LOG
7、IC_VECTOR(15DOWNTO0):="0010010010010010";CONSTANTL2:STD_LOGIC_VECTOR(15DOWNTO0):="1010010010010010";CONSTANTL3:STD_LOGIC_VECTOR(15DOWNTO0):="0010110110011010";CONSTANTL4:STD_LOGIC_VECTOR(15DOWNTO0):="1011010011010011";CONSTANTL5:STD_LOGIC_VECTOR(15DOWNTO0):="1010011010110110";C