色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>Arty S7 FPGA板上的LED圖案

Arty S7 FPGA板上的LED圖案

2023-06-15 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

介紹

VHDL 一直讓我很感興趣,剛從 Digilent 收到我的新 Arty S7-25 FPGA 板,我有機會嘗試一下!我想為我的第一個項目使用 LED 做一些事情,所以我制作了一些不同的模式,并在代碼中將它們綁定在一起,以便它們一個接一個地顯示。

作為 VHDL 的新手,代碼可能達不到標準,但我會盡力解釋,我希望你也能得到這些很酷的模式來點亮你的 FPGA 板!

我們將使用板上的四個標準 LED(不是 RGB LED)

poYBAGNh0M-Ae3hEAAB2LD51Lbg446.jpg
Arty S7 板上的標準 LED 位置
?

代碼

代碼的總體思路是讓不同的計數器控制具有使能信號的模式的長度。這些使能信號由狀態機驅動。另一個process模塊對啟用信號進行解碼,并確定 LED 上應顯示的模式。

可以在此處找到 github 存儲庫查看“src”文件夾以找到主要實體。

首先,我有一些信號聲明

-- enables for different patterns/counters
signal r_patt1_en : std_logic := '1';
signal r_patt2_en : std_logic := '0';
signal r_patt3_en : std_logic := '0';
signal r_patt4_en : std_logic := '0';

-- pattern counters
signal r_patt1_cntr      : integer range 0 to 1e6 := 0;
signal r_patt1_light_LED : integer range 0 to 4   := 0;
signal r_patt2_cntr      : integer range 0 to 2e6 := 0;
signal r_patt3_cntr      : integer range 0 to 2e6 := 0;
signal r_patt3_alt_cntr  : integer range 0 to 5   := 0;
signal r_patt4_duty      : integer range 0 to 1e5 := 0;
signal r_patt4_cntr      : integer range 0 to 1e5 := 0;
signal r_patt4_incr_duty : std_logic := '0';

上述代碼的頂部包含每個模式的啟用信號。在任何給定時間,只有一個可以處于活動狀態。這些信號有助于確定 LED 應遵循的模式,以及啟用特定于該模式的計數器。

這些是其他一些信號

-- indicates if pattern should be changed
signal r_change_pattern : std_logic := '0';

signal r_clk_cntr : integer range 0 to 36e6 := 0;

-- FSM
type t_state is (PATT1, PATT2, PATT3, PATT4);
signal STATE : t_state;

實體需要知道何時改變模式(在這種情況下,每 3 秒一次,或何時r_clk_cntr翻轉),因此r_change_pattern被創建。此外,狀態機的狀態在此處聲明。

讓我們進入其中一種模式。

模式 1 一個接一個地切換每個 LED,就像一個帶有單個 1 的移位寄存器,其余的都是零(希望這是有道理的:p)。“on” LED 保持亮起 83.333 ms(1/12 秒很容易使用 12 MHz 系統時鐘實現),然后每 83.333 ms 打開一個新 LED。我為這些計數器創建了兩個單獨的進程。

-- pattern 1 counter keeps each LED on in pattern 1 for 83.333 ms
PATT1_CNTR_PROC : process(i_clk)
begin
  if rising_edge(i_clk) then
    if r_patt1_en = '0' then
      r_patt1_cntr <= 0;
    else
      if r_patt1_cntr < 1e6 then
        r_patt1_cntr <= r_patt1_cntr + 1;
      else
        r_patt1_cntr <= 0;
      end if;
    end if;
  end if;
end process;

對于 12 MHz 系統時鐘,1/12 秒(或 100 萬個 clk 周期計數)是使用時間的簡單度量。r_patt1_cntr在翻轉到 0 之前計數到這個數字,導致 1/12 秒或 83.333 毫秒。

-- pattern 1 alt counter signals when to switch LEDs every 83.333 ms
PATT1_ALT_CNTR_PROC : process(i_clk)
begin
  if rising_edge(i_clk) then
    if r_patt1_en = '0' then
      r_patt1_light_LED <= 0;
    else
      if r_patt1_cntr = 1e6 then
        if r_patt1_light_LED < 4 then
          r_patt1_light_LED <= r_patt1_light_LED + 1;
        else
          r_patt1_light_LED <= 0;
        end if;
      end if;
    end if;
  end if;
end process;

PATT1_ALT_CNTR_PROC監視r_patt1_cntr并查找 1e6 的最大值。一旦完成,r_patt1_light_LED就會增加。這將確定哪個 LED 亮起。

在代碼的更下方,我們看到PATT_DECODE_PROC.這個過程(如下)決定了在模式啟用時應該發生什么。

PATT_DECODE_PROC : process(i_clk)
  variable r_patt_en : std_logic_vector(3 downto 0);
begin
  if rising_edge(i_clk) then
    r_patt_en := r_patt1_en & r_patt2_en & r_patt3_en & r_patt4_en;  -- cnct into vect
  if r_patt_en = "1000" then  -- blink LEDS in circle
    case r_patt1_light_LED is
      when 0 =>
        r_LEDs <= "0001";
          when 1 =>
        r_LEDs <= "0010";
          when 2 =>
        r_LEDs <= "0100";
          when 3 =>
        r_LEDs <= "1000";
          when 4 =>
        r_LEDs <= "0000";
    end case;

首先,所有不同的模式使能連接成一個向量 ( r_patt_en) 以便于閱讀。然后,對此進行檢查。如果r_patt_en = "1000", 意思r_patt1_en是激活的,模式 1 將顯示在 LED 上。但是,在模式 1 期間會發生什么?

還記得PATT1_ALT_CNTR_PROC嗎?該過程增加了一個名為 的信號r_patt1_light_LED,該信號由PATT_DECODE_PROC(上面)使用 case 語句讀取,并點亮與 的值相對應的每個 LED r_patt1_light_LED

其余模式以這種方式編碼,帶有計數器和使能,然后中的 case 語句PATT_DECODE_PROC點亮 LED。除了上面的示例模式之外,還有一個切換模式、一個心跳模式和一個使用 PWM 的調光模式。

模擬

github repo 上的“sim”文件中有一個測試臺。如果您選擇運行 sim,只需知道它可能需要大約 8 分鐘(取決于您的機器)。每個模式顯示 3 秒,因此最短模擬時間應該是 12 秒才能看到所有 4 個模式。

這是幾分鐘后我的 sim 卡的樣子:

pYYBAGNh0NOAIzLqAAL3SJ05r2Y282.png
LED圖案的模擬
?

您可以清楚地看到第一個模式的類似移位寄存器的行為,以及心跳模式。最后的PWM調光模式只能放大查看。

構建項目

打開 Vivado 并創建一個項目。出現提示時,從“Boards”菜單中選擇“Arty S7-25”。

poYBAGNh0NiAdvIdAAD1RCh9-oc234.jpg
?

如果您沒有看到這個,請使用此處找到的 Digilent 更新您的電路板文件

從 github repo 添加源文件、sim 文件和約束文件,并生成比特流。

對您的電路板進行編程,您應該會在 4 個 LED 上看到一些整齊的圖案:)

結論

感謝您關注我的第一個 VHDL/Arty S7 項目!請修改代碼以創建您自己的模式!在評論中發布任何新模式或問題。我想看看你創造了什么:)

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 吉吉影音先锋av资源网| 色欲AV精品人妻一区二区麻豆| a一级毛片视频免费看| 小柔的性放荡羞辱日记| 蜜芽国产在线精品欧美| 好大快用力深一点h视频| 成人小视频在线观看免费| 尤物99久久久合集一区区| 无码观看AAAAAAAA片| 欧美成人国产| 男人大臿蕉香蕉大视频| 黄色三级网站| 韩日午夜在线资源一区二区| 东北成人社区| 波多野结衣网站www| 99久久伊人一区二区yy5099| 影视先锋男人无码在线| 美女隐私黄www视频| 日本午夜看x费免| 亚洲蜜桃AV色情精品成人| 中文字幕视频免费在线观看| s8sp视频高清在线播放| 国产精品嫩草99AV在线| 久久婷婷五月免费综合色啪| 欧美派对xxxhdparty| 亚州AV中文无码乱人伦在线| 在线视频久久只有精品第一日韩| FERRCHINA内入内射| 国内精品久久影视免费| 暖暖 视频 免费 高清 在线观看 | 亚洲精品欧美精品中文字幕| 手机在线观看mv网址| 偷偷鲁青春草原视频分类| 十分钟在线观看免费视频高清WWW| 色橹橹欧美在线观看视频高清| 日本亚洲电影| 亚洲成人国产| 2021全国精品卡一卡二| 被窝伦理午夜电影网| 国产人妻XXXX精品HD电影| 久久re热线视频精品99|