【正文】
T OF SZ ISSIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0)。BEGINPROCESS(CLK) BEGIN IF CLK39。EVENT AND CLK = 39。139。THEN COUNT = COUNT + 1。 END IF。 END PROCESS。 CP= COUNT(3)。END ART。3右邊燈控制模塊LIBRARY IEEE。USE 。ENTITY RC IS PORT(CLK,RP,LR,BRAKE,NIGHT:IN STD_LOGIC。 LEDR,LEDB,LEDN: OUT STD_LOGIC)。END。ARCHITECTURE ART OF RC ISBEGIN LEDB=BRAKE。 LEDN=NIGHT。 PROCESS(CLK,RP,LR) BEGIN IF CLK39。EVENT AND CLK = 39。139。 THEN IF(LR = 39。039。)THEN IF(RP = 39。039。)THEN LEDR =39。039。 ELSE LEDR = 39。139。 END IF。 ELSE LEDR =39。039。 END IF。 END IF。 END PROCESS。END ART。4左邊燈控制模塊LIBRARY IEEE。USE 。ENTITY LC IS PORT(CLK,LP,LR,BRAKE,NIGHT:IN STD_LOGIC。 LEDL,LEDB,LEDN: OUT STD_LOGIC)。END。ARCHITECTURE ART OF LC ISBEGIN LEDB=BRAKE。 LEDN=NIGHT。PROCESS(CLK,LP,LR)BEGIN IF CLK39。EVENT AND CLK = 39。139。 THEN IF(LR =39。039。)THEN IF(LP = 39。039。)THEN LEDL=39。039。 ELSE LEDL=39。139。 END IF。 ELSE LEDL =39。039。 END IF。 END IF。END PROCESS。END ART。附錄2,系統(tǒng)需求分析 根據(jù)我們現(xiàn)代的汽車交通規(guī)則,我們設(shè)計的汽車尾燈控制器應(yīng)當(dāng)滿足下面的基本要求:,汽車正常使用是指示燈不亮汽車右轉(zhuǎn)時,右側(cè)的一盞燈亮汽車左轉(zhuǎn)時,左側(cè)的一盞燈亮汽車剎車時,左右兩側(cè)的指示燈同時亮汽車在黑夜間正常行駛時,左右兩側(cè)的指示燈同時亮,并且一直都在亮??梢蕴峁┙o照明使用編寫VHDL程序代碼根據(jù)以上汽車尾燈控制邏輯功能表和控制電路原理框圖可以編寫出汽車尾燈控制電路的VHDL程序代碼如下:LIBRARY IEEE。USE 。use 。ENTITY weideng IS 實體 port(clk,tright,tleft:IN STD_LOGIC。 端口說明 rightdeng:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)。 leftdeng:OUT STD_LOGIC_VECTOR(2 DOWNTO 0))。END ENTITY weideng。 ARCHITECTURE qiche OF weideng IS 結(jié)構(gòu)體部分 SIGNAL leftd:STD_LOGIC_VECTOR(1 DOWNTO 0)。 SIGNAL rightd:STD_LOGIC_VECTOR(1 DOWNTO 0)。BEGINcontrol:PROCESS(clk,tleft,tright)BEGIN IF clk39。EVENT AND clk=39。139。THEN IF rightd=01THEN 右信號 rightd=11。 ELSE rightd=(rightd1)。 END IF。 IF leftd=01THEN 左信號 leftd=11。 ELSE leftd=(leftd1)。 END IF。 END IF。END PROCESS control。proout:PROCESS(clk,tright,tleft,rightd,leftd)BEGIN IF clk39。EVENT AND clk=39。139。THEN IF tright=39。139。THEN 右信號有效時 leftdeng=000。 CASE rightd IS 右邊燈的亮滅狀態(tài) WHEN01=rightdeng=001。 WHEN10=rightdeng=010。 WHEN11=rightdeng=100。 WHEN OTHERS=rightdeng=000。 END CASE。 ELSIF tright=39。039。THEN 右信號無效 rightdeng=000。 右邊3個燈全滅 END IF。 IF tleft=39。139。THEN 左信號有效 rightdeng=000。 CASE leftd IS 表示左邊燈的亮滅狀態(tài) WHEN01=leftdeng=100。 WHEN10= leftdeng=010。 WHEN11= leftdeng=001。 WHEN OTHERS= leftdeng=000。 END CASE。 ELSIF tleft=39。039。THEN 左信號無效 leftdeng=000。 左邊3個燈全滅 END IF。 END IF。 IF tleft=39。139。AND tright=39。139。 THEN 左右有效6個燈全亮 leftdeng=111。 rightdeng=111。 ELSIF tright=39。039。AND tleft=39。039。THEN 都無效時6個燈全滅 leftdeng=000。 rightdeng=000。 END IF。END PROCESS proout。END qiche。36