|
|||||||||||
| 技術(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è)程序啊 順便還問(wèn)個(gè)分頻程序的問(wèn)題 |
| 作者:84082379 欄目:EDA技術(shù) |
LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY counter10 IS PORT( clk,clrn : IN STD_LOGIC; dout : OUT integer range 0 to 9; a : OUT integer range 0 to 7); END counter10; ARCHITECTURE behav OF counter10 IS BEGIN a0: PROCESS(clk) variable cnt0: integer range 0 to 9; BEGIN if clrn = '0' then cnt0:=0; elsif clk = '1' and clk'event then if cnt0= 9 then cnt0:=0; else cnt0:=cnt0 + 1 end if; end if; dout <= cnt0; END PROCESS a0 ; a1: PROCESS(clk) variable cnt1: integer range 0 to 7; BEGIN if clrn = '0' then cnt1:=0; elsif clk = '1' and clk'event then if cnt1 = 7 then cnt1:=1; else cnt1:=cnt1 + 1 end if; end if; a <= cnt1; END PROCESS a1 ; END behav; 程序已改! 順便問(wèn)一下我想用VHDL寫(xiě)個(gè)分頻的程序怎么寫(xiě)。 就把clk搞個(gè)10分頻和一個(gè)100分頻 * - 本貼最后修改時(shí)間:2005-4-7 21:06:47 修改者:84082379 |
| 2樓: | >>參與討論 |
| 作者: quinn 于 2005/4/5 20:50:00 發(fā)布:
至少a的位寬錯(cuò)了 |
|
| 3樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/5 21:11:00 發(fā)布:
筆誤筆誤 就是把位寬改了還是那兩個(gè)錯(cuò) |
|
| 4樓: | >>參與討論 |
| 作者: diploma 于 2005/4/6 15:42:00 發(fā)布:
分號(hào) dout定義時(shí)9后面少了個(gè)分號(hào),呵呵,當(dāng)然會(huì)出錯(cuò)了! |
|
| 5樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/6 20:29:00 發(fā)布:
加分號(hào)還是沒(méi)用 錯(cuò)更多了 應(yīng)該不是分號(hào)的問(wèn)題 加了錯(cuò)更多了 今天有事 我明天再試試改一下 試了再說(shuō) |
|
| 6樓: | >>參與討論 |
| 作者: diploma 于 2005/4/7 8:47:00 發(fā)布:
re 賦值符號(hào):與=之間不能有空格,還有就是 < 和=也不能有空格,+1的計(jì)數(shù)器后面加上分號(hào),再加上異步復(fù)位的敏感信號(hào),就一切ok了 |
|
| 7樓: | >>參與討論 |
| 作者: loottp 于 2005/4/7 12:08:00 發(fā)布:
是不是a沒(méi)賦初值,所以會(huì)說(shuō)a沒(méi)declared |
|
| 8樓: | >>參與討論 |
| 作者: diploma 于 2005/4/7 12:32:00 發(fā)布:
re a沒(méi)有定義是因?yàn)榍懊娑x的輸出沒(méi)有分號(hào)的原因! |
|
| 9樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/7 19:30:00 發(fā)布:
謝謝 diploma 大哥 謝謝 diploma 大哥 你的提醒幫我把幾個(gè)程序的問(wèn)題都解決了 剛剛開(kāi)始搞VHDL 好多東西還在自己揣摩 我打算做個(gè)電子鐘 所以下一步打算在把這個(gè)程序的clk改改 搞個(gè)分頻 按60進(jìn)制表示 有問(wèn)題在和你們大家討論啊 希望大家多多幫助我這個(gè)新手啊 呵呵 |
|
| 10樓: | >>參與討論 |
| 作者: diploma 于 2005/4/8 8:40:00 發(fā)布:
re 是不是學(xué)校的題目?以前我在學(xué)校的時(shí)候就是用vhdl做過(guò)電子鐘的,呵呵! 你的第一個(gè)PROCESS不就可以實(shí)現(xiàn)10分頻么,10乘以10不就是100分頻么! |
|
| 11樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/8 18:00:00 發(fā)布:
也不是任務(wù) 聽(tīng)老師提了一下 就想試試看 具體怎么寫(xiě)啊 我是這么寫(xiě)的 但是有錯(cuò)誤 就是outclk2的符值有問(wèn)題 不知道是不是我想錯(cuò)了 LIBRARY ieee; USE ieee.std_logic_1164.ALL; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY fp IS PORT( clk,clrn : IN STD_LOGIC; outclk1,outclk2 : OUT STD_LOGIC); END fp; ARCHITECTURE behav OF fp IS BEGIN PROCESS(clk) signal m: std_logic; variable n: integer range 0 to 9; BEGIN if clrn = '0' then m<='0'; n:=0; elsif clk = '1' and clk 'event then if n = 9 then n:=0; m<='1'; else n:=n + 1; end if; end if; outclk1 <= clk; outclk2 <= m; END PROCESS ; END behav; 到底時(shí)鐘怎么符值呀??? 期待回復(fù) |
|
| 12樓: | >>參與討論 |
| 作者: diploma 于 2005/4/8 20:03:00 發(fā)布:
re 你上面那個(gè)程序設(shè)計(jì)感覺(jué)有點(diǎn)小問(wèn)題,感覺(jué)在else n:=n+1;后面應(yīng)該加上這條語(yǔ)句吧m<='0';你加上試試。 |
|
| 13樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/8 21:30:00 發(fā)布:
不行啊! 不行啊 加不加都是這個(gè)錯(cuò) found illegal use of a signal declaration in PROCESS declarative PART 我就不明白信號(hào)怎么定義錯(cuò)了 |
|
| 14樓: | >>參與討論 |
| 作者: diploma 于 2005/4/9 13:00:00 發(fā)布:
re 那就是在PROCESS里面不能定義signal了,你把signal的定義放在結(jié)構(gòu)體里面去吧。要不就是你把那個(gè)signal定義為variable。 |
|
| 15樓: | >>參與討論 |
| 作者: 84082379 于 2005/4/9 22:08:00 發(fā)布:
ok了 幾個(gè)程序都寫(xiě)好了 等下周去學(xué)校找個(gè)片子試試看 |
|
|
|
| 免費(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) |