久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3857|回復: 0
打印 上一主題 下一主題
收起左側

分頻器設計--VHDL源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:72519 發表于 2015-1-23 21:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        呵呵,好爽啊,前面幾個星期看電源看得我頭都大啦,也落了不少課,前幾天我突然發現我的EDA落了很多東西啦,唉,心想,把電源放放,看看EDA再說,突然有了興趣,學起來也挺快的,前面兩天我寫了一個能夠實現加減的計數器,并且可以選擇加1,10,100,1000。呵呵,這個程序寫下來,對VHDL里面的狀態機有了初步的了解,遇到的問題挺多的,比如說一個進程里面是不能同時有上升沿和下降沿判斷的。可是我還沒有通過硬件測試,我只是簡單的用軟件仿真看了下,感覺是對的。明天做實驗時檢測正確后,我再把源碼貼上來。今天從下午6點多到現在才把這個分頻器個整出來。具體的功能是:對一個頻率進行任意分頻,分頻數可以通過按鍵輸入,且分頻數可以加減,不過加減數為1。還有一點不足的是分頻數沒有通過數碼管顯示出來。等明天把我前兩天寫得計數器調試好后有時間再添上去吧,因為它只是一個例化語句的使用,應該不會難倒我。
              下面是分頻器的源代碼:
【注】:仿真圖我就不貼上來啦,提醒一下,仿真時要把pclk設置幾個脈沖后,后面就讓它為低電平,因為電腦有點難受的。還有rst開始一段很短時間要設置為高電平,clk要在pclk為低電平后在設置它的時鐘。至于怎么設,相信大家應該可以搞定。這樣設置有利于看仿真結果。同時電腦的CPU不至于崩潰。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity foudiv is
       port(
                     clk,pclk       :in std_logic; --clk:待分頻時鐘  pclk:按鍵
                     clkmd:in std_logic;--按鍵加減模式
                     rst:in std_logic;--復位,
                     fout:out std_logic--頻率輸出
              );
end;
architecture lammy of foudiv is
       signal up:std_logic;--上升沿計數結束標志位
       signal do:std_logic;--下降沿計數結束標志位
       signal full:std_logic;--分頻頻率輸出狀態位
       signal fullup:std_logic;--分頻頻率翻轉標志位
       signal fulldo:std_logic;--分頻頻率翻轉標志位
       signal db:std_logic_vector(7 downto 0);--分頻數
       signal du:std_logic_vector(7 downto 0);--上升沿計數器
       signal dd:std_logic_vector(7 downto 0);--下降沿計數器
begin
lammy01:process(pclk,rst,clkmd)
       begin
              if rst='1' then db<=(others=>'0');
              elsif pclk'event and pclk='1' then
                     if clkmd='1' then db<=db+1;
                     elsif clkmd='0' then db<=db-1;
                     end if;
              end if;
       end process;
lammy02:process(clk)      
       variable       updata:std_logic_vector(7 downto 0);
       begin
              if rst='1' then fullup<='0';
              elsif clk'event and clk='1' then
--                     if updata=db-1  then updata:=(others=>'0');
                     if do='1' then updata:=(others=>'0');
                     end if;
                     updata:=updata+1;
                     if dd+updata=db then updata:=(others=>'0');fullup<='1';up<='1';
                     else fullup<='0';up<='0';
                     end if;
              end if;              
              du<=updata;
       end process;
lammy03:process(clk)      
       variable       dodata:std_logic_vector(7 downto 0);
       begin
              if rst='1' then fulldo<='0';
              elsif clk'event and clk='0' then
--                     if dodata=db-1 then dodata:=(others=>'0');
                     if up='1' then dodata:=(others=>'0');
                     end if;
                     dodata:=dodata+1;
                     if du+dodata=db then dodata:=(others=>'0');fulldo<='1';do<='1';
                     else fulldo<='0';do<='0';
                     end if;
              end if;              
              dd<=dodata;
       end process;
lammy04:process(fulldo,fullup)
       begin
              full<=fulldo or fullup;
       end process;
lammy05:process(full)
       variable cnt2:std_logic;
       begin
              if full'event and full='1' then cnt2:=not cnt2;
                     if cnt2='1' then fout<='1';
                     else fout<='0';
                     end if;
              end if;
       end process;
end;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清在线观看 | 国产日韩精品一区二区三区 | 免费在线视频一区二区 | 色综合99| 久久9精品 | 亚洲一区中文字幕在线观看 | 一区二区蜜桃 | 亚洲精品一区二区在线观看 | 国产精品 欧美精品 | www.日韩在线 | 午夜视频免费在线观看 | 欧美四虎 | 欧美日韩久久精品 | 国产在线一区二区三区 | 精品一区二区三区视频在线观看 | 国产视频线观看永久免费 | 影音先锋欧美资源 | 国产欧美精品 | 青青草av在线播放 | 欧美成人免费在线视频 | 亚洲成人动漫在线观看 | 精品真实国产乱文在线 | 91日韩| 国产一区二区三区亚洲 | 免费一级做a爰片久久毛片潮喷 | 黄免费观看视频 | 伊人影院99 | 久久99精品久久久久子伦 | 97久久精品午夜一区二区 | 国产精品视屏 | 国产自产c区| 日韩av一区二区在线观看 | av在线视 | 高清免费在线 | 久久成人精品视频 | 亚洲 欧美 另类 日韩 | 日韩午夜激情 | 国产探花在线精品一区二区 | 日韩毛片播放 | 在线观看免费观看在线91 | 国产二区av |