|
|||||||||||
| 技術(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 |
請(qǐng)救啊!!!!!!! |
| 作者:maguofeng0 欄目:EDA技術(shù) |
為什么同樣一個(gè)VHDL程序可以再Q(mào)UARTUS里編譯通過(guò)而在maxplusii里編譯同不過(guò)呢? 程序如下:-- -- 本實(shí)驗(yàn)?zāi)M路口的紅黃綠交通燈的變化過(guò)程,用LED燈表示交通燈,并在數(shù)碼管上顯示當(dāng)前狀態(tài)剩余時(shí)間。 -- 紅燈持續(xù)時(shí)間為30秒,黃燈3秒,綠燈30秒 -- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY traffic IS PORT ( clk : IN std_logic; rst : IN std_logic; dataout : OUT std_logic_vector(7 DOWNTO 0); --數(shù)碼管段數(shù)據(jù) en : OUT std_logic_vector(1 DOWNTO 0); --數(shù)碼管使能 lightY : OUT std_logic_vector(3 downto 0); --黃燈 lightG : OUT std_logic_vector(3 downto 0); --綠燈 lightR : OUT std_logic_vector(3 DOWNTO 0)); --紅燈 END traffic; ARCHITECTURE arch OF traffic IS SIGNAL div_cnt : std_logic_vector(24 downto 0); SIGNAL data4 : std_logic_vector(3 DOWNTO 0); SIGNAL first : std_logic_vector(3 DOWNTO 0); --時(shí)間的個(gè)位 SIGNAL second : std_logic_vector(3 DOWNTO 0); --時(shí)間的十位 SIGNAL state : std_logic_vector(1 DOWNTO 0); CONSTANT red : std_logic_vector(1 DOWNTO 0) := "00"; CONSTANT yellow : std_logic_vector(1 DOWNTO 0) := "01"; CONSTANT GREEN : std_logic_vector(1 DOWNTO 0) := "10"; SIGNAL dataout_xhdl1 : std_logic_vector(7 DOWNTO 0); SIGNAL en_xhdl : std_logic_vector(1 DOWNTO 0); SIGNAL light_xhdl3 : std_logic_vector(11 DOWNTO 0); BEGIN PROCESS(clk,rst) BEGIN IF (NOT rst = '1') THEN div_cnt <= "0000000000000000000000000"; ELSIF(clk'EVENT AND clk = '1')THEN div_cnt <= div_cnt + 1; END IF; END PROCESS; lightG<=light_xhdl3(3 downto 0); lightY<=light_xhdl3(7 downto 4); lightR<=light_xhdl3(11 downto 8); PROCESS(div_cnt(20),rst) BEGIN IF (NOT rst = '1') THEN state <= red; first <= "0000"; second <= "0011"; ELSIF(div_cnt(24)'EVENT AND div_cnt(24) = '1')THEN CASE state IS WHEN red => IF (first /= "0000") THEN first <= first - "0001"; ELSE IF (second /= "0000") THEN second <= second - "0001"; first <= "1001"; ELSE state <= GREEN; second <= "0011"; END IF; END IF; WHEN GREEN => &nbs |
| 2樓: | >>參與討論 |
| 作者: eastzsp 于 2006/5/13 20:57:00 發(fā)布:
把編譯錯(cuò)誤貼出來(lái)看看。 |
|
| 3樓: | >>參與討論 |
| 作者: maguofeng0 于 2006/5/14 9:45:00 發(fā)布:
錯(cuò)誤信息是這樣的 ERROR:LINE 55:file e:\traffic\traffic.vhd:unsuported feature error: EVENT attribute not suported for bit of multi-bit signal 謝謝,請(qǐng)幫我看看什么原因:) |
|
| 4樓: | >>參與討論 |
| 作者: phytqwu 于 2006/5/21 17:36:00 發(fā)布:
猜測(cè) 這個(gè)現(xiàn)象很常見(jiàn),有時(shí)我用modelsim通過(guò)仿真的東西,maxplusII就是通不過(guò),因?yàn)槲液芫脹](méi)有搞VHDL而是搞V erilog HDL,不過(guò)我猜測(cè)那個(gè)編譯錯(cuò)誤的原因應(yīng)該是你只選用了一個(gè)多位向量的一位向量的變化做為一個(gè)event,我想象maxplusII那種編譯器可能會(huì)有問(wèn)題也難說(shuō)的,呵呵,見(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) |