|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
高手們看看這個(gè)VHDL程序 |
| 作者:coollil 欄目:EDA技術(shù) |
是 4人搶答器的么?有錯(cuò)誤么?謝謝指點(diǎn)。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_SINGED.ALL; ENTITY qd IS PORT( I1,I1: IN STD_LOGIC; RESET: IN STD_LOGIC; G10,G20,G30: IN STD_LOGIC; LIGHT1,LIGHT2: OUT STD_LOGIC; T11: OUT STD_LOGIC_VECTOE(6 DOWNTO 0):="0111111"; T12: OUT STD_LOGIC_VECTOR(6 DOWNTO 0):="0111111"; T21: OUT STD_LOGIC_VECTOR(6 DOWNTO 0):="0111111"; T22: OUT STD_LOGIC_VECTOR(6 DOWNTO 0):="0111111"; CLK: IN STD_LOGIC; CONG: IN STD_LOGIC ); END; ARCHITECTURE bhv OF qd IS SIGNAL CS1: INTEGER RANGE 0 TO 9; SIGNAL CS2: INTEGER RANGE 0 TO 9; SIGNAL A,B: STD_LOGIC; SINGAL A1,A2: STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK ='1' THEN IF (CONG= '1') THEN IF (RESET='1')THEN IF (I1= '0' AND A='0') THEN A1 <='1';A<='1'; ELSIF(I2='0' AND A='0') THEN A2 <='1'; A<='1'; END IF; IF(G10 ='0' AND A1='1' AND B='0') THEN CS1<=CS1+1;B<='1'; ELSIF(G20='0'AND A1='1' AND B='0') THEN CS1<=CS1+2;B<='1'; ELSIF(G30='0' AND A1='1'AND B='0') THEN CS1<=CS1+3;B<='1'; END IF; IF(G10 ='0' AND A2='1' AND B='0') THEN CS2<=CS2+1;B<='1'; ELSIF(G20='0'AND A2='1' AND B='0') THEN CS2<=CS2+2;B<='1'; ELSIF(G30='0' AND A2='1'AND B='0') THEN CS2<=CS2+3;B<='1'; END IF; IF(CS1=0) THEN T11 <="0111111"; ELSIF(CS1=1) THEN T11 <="0000110"; ELSIF(CS1=2) THEN T11 <="1011011"; ELSIF(CS1=3) THEN T11 <="1001111"; ELSIF(CS1=4) THEN T11 <="1100110"; ELSIF(CS1=5) THEN T11 <="1101101"; ELSIF(CS1=6) THEN T11 <="1111101"; ELSIF(CS1=7) THEN T11 <="0000111"; ELSIF(CS1=8) THEN T11 <="1111111"; ELSIF(CS1=9) THEN T11 <="1101111"; END IF; IF (CS2=0) THEN T21<="0111111"; ELSIF (CS2=1) THEN T21<="0000110"; ELSIF (CS2=2) THEN T21<="1011011"; ELSIF (CS2=3) THEN T21<="1001111"; ELSIF (CS2=4) THEN T21<="1100110"; ELSIF (CS2=5) THEN T21<="1101101"; ELSIF (CS2=6) THEN T21<="1111101"; ELSIF (CS2=7) THEN T21<="0000111"; ELSIF (CS2=8) THEN T21<="1111111"; ELSIF (CS2=9) THEN T21<="1101111"; END IF; ELSE A1<='0';A2 <='0';A<='0';B<='0'; END IF; ELSE CS1<=0;CS2<='0'; A1<='0';A2<='0'; END IF; LIGHT1 <=A1; LIGHT2 <=A2; T12 <="0111111"; T22 <="0111111" END IF; END PROCESS; END; |
| 2樓: | >>參與討論 |
| 作者: wuyibang 于 2005/3/26 18:48:00 發(fā)布:
用狀態(tài)機(jī)寫(xiě)比較好吧 |
|
| 3樓: | >>參與討論 |
| 作者: kongtry 于 2005/3/30 14:45:00 發(fā)布:
我也覺(jué)得用狀態(tài)機(jī)寫(xiě)比較好 用狀態(tài)機(jī)寫(xiě)就更容易讀,且簡(jiǎn)潔。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |