Re: [問題] 請問版上有人懂fpga嗎?

看板Electronics作者 (小哈)時間16年前 (2009/06/09 20:33), 編輯推噓4(402)
留言6則, 4人參與, 最新討論串1/1
※ 引述《kissa0123 (男鄉民一枚)》之銘言: : 使用軟體:MAX PLUSII : 使用晶片:EPF10K10TC144-4 : 程式需求功能如下: : 用一個DATA SW去控制一顆led燈 : 按一下led燈就有十分之一的亮度 : 再按一下led燈就有十分之二的亮度 : 按到第十下led燈的亮度就是全亮!!! : 之後再按一下就是滅掉 : 接下來就一直循環了! : 之後憑自己的能耐只能寫出下面的程式而已 sorry code我懶得看,直接跟你討論設計,給點小建議 1. 要做一個PWM Controller Dimming_i : in std_logic_vector(3 downto 0); Clock_i : in std_logic; PWM_o : out std_logic; 然後就用Clock_i 來觸發Counter 從 0 數到9, 若Dimming_i 輸入為 6, 若當Counter 數值為 0, 1, 2, 3, 4, 5, 6 時, 輸出為0, 其餘為 1 若Dimming_i 輸入為 3, 若當Counter 數值為 0, 1, 2, 3 時, 輸出為0, 其餘為 1 以此類推. Counter數到9 之後再從0 開始數 這樣就實現PWM了 Dimming_i 輸入範圍從 0 ~ 10 2. 接著再做一個偵測按鍵的module, 這個module 輸出接到上面說的PWM Controller 按一下按鍵放開時,數值 + 1, 輸出數值範圍 0 ~ 10 這兩個做完再互相接一起,寫test bench ,然後就會動了 3. 反彈跳叫做debounce,可以google 一下。不難做的。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.110.62

06/09 21:44, , 1F
所以你亮度4個狀態的轉換是要靠手動的囉~
06/09 21:44, 1F

06/09 21:45, , 2F
你FPGA板應該是用一般發展版(非自己布局的吧)
06/09 21:45, 2F

06/09 21:46, , 3F
那你自己外接用個指撥開關就可以了阿~!!!
06/09 21:46, 3F
原po是要用一個按鈕 按暗暗 就可以循環切換亮度 所以不能用dip switch 如果只是交作業或自己玩,當然用開發版就好啦 洗板還要打件勒,不然就是買QFP包裝的自己慢慢焊,這也須一些磨練與經驗 對原po來說太慢啦!

06/09 21:50, , 4F
推這篇正解
06/09 21:50, 4F
※ 編輯: Aquatics 來自: 61.62.110.62 (06/09 22:37)

06/09 22:51, , 5F
謝謝你~我研究一下!!雖然看不懂= ="
06/09 22:51, 5F

06/10 12:47, , 6F
有Clock嗎?
06/10 12:47, 6F
文章代碼(AID): #1ABbQOkJ (Electronics)