日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arty S7 FPGA板上的LED圖案

Arty S7 FPGA板上的LED圖案

2023-06-15 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

介紹

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

作為 VHDL 的新手,代碼可能達(dá)不到標(biāo)準(zhǔn),但我會(huì)盡力解釋,我希望你也能得到這些很酷的模式來(lái)點(diǎn)亮你的 FPGA 板!

我們將使用板上的四個(gè)標(biāo)準(zhǔn) LED(不是 RGB LED)

poYBAGNh0M-Ae3hEAAB2LD51Lbg446.jpg
Arty S7 板上的標(biāo)準(zhǔn) LED 位置
?

代碼

代碼的總體思路是讓不同的計(jì)數(shù)器控制具有使能信號(hào)的模式的長(zhǎng)度。這些使能信號(hào)由狀態(tài)機(jī)驅(qū)動(dòng)。另一個(gè)process模塊對(duì)啟用信號(hào)進(jìn)行解碼,并確定 LED 上應(yīng)顯示的模式。

可以在此處找到 github 存儲(chǔ)庫(kù)。查看“src”文件夾以找到主要實(shí)體。

首先,我有一些信號(hào)聲明

-- 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';

上述代碼的頂部包含每個(gè)模式的啟用信號(hào)。在任何給定時(shí)間,只有一個(gè)可以處于活動(dòng)狀態(tài)。這些信號(hào)有助于確定 LED 應(yīng)遵循的模式,以及啟用特定于該模式的計(jì)數(shù)器。

這些是其他一些信號(hào)

-- 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;

實(shí)體需要知道何時(shí)改變模式(在這種情況下,每 3 秒一次,或何時(shí)r_clk_cntr翻轉(zhuǎn)),因此r_change_pattern被創(chuàng)建。此外,狀態(tài)機(jī)的狀態(tài)在此處聲明。

讓我們進(jìn)入其中一種模式。

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

-- 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;

對(duì)于 12 MHz 系統(tǒng)時(shí)鐘,1/12 秒(或 100 萬(wàn)個(gè) clk 周期計(jì)數(shù))是使用時(shí)間的簡(jiǎn)單度量。r_patt1_cntr在翻轉(zhuǎn)到 0 之前計(jì)數(shù)到這個(gè)數(shù)字,導(dǎo)致 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監(jiān)視r_patt1_cntr并查找 1e6 的最大值。一旦完成,r_patt1_light_LED就會(huì)增加。這將確定哪個(gè) LED 亮起。

在代碼的更下方,我們看到PATT_DECODE_PROC.這個(gè)過(guò)程(如下)決定了在模式啟用時(shí)應(yīng)該發(fā)生什么。

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;

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

還記得PATT1_ALT_CNTR_PROC嗎?該過(guò)程增加了一個(gè)名為 的信號(hào)r_patt1_light_LED,該信號(hào)由PATT_DECODE_PROC(上面)使用 case 語(yǔ)句讀取,并點(diǎn)亮與 的值相對(duì)應(yīng)的每個(gè) LED r_patt1_light_LED。

其余模式以這種方式編碼,帶有計(jì)數(shù)器和使能,然后中的 case 語(yǔ)句PATT_DECODE_PROC點(diǎn)亮 LED。除了上面的示例模式之外,還有一個(gè)切換模式、一個(gè)心跳模式和一個(gè)使用 PWM 的調(diào)光模式。

模擬

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

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

pYYBAGNh0NOAIzLqAAL3SJ05r2Y282.png
LED圖案的模擬
?

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

構(gòu)建項(xiàng)目

打開(kāi) Vivado 并創(chuàng)建一個(gè)項(xiàng)目。出現(xiàn)提示時(shí),從“Boards”菜單中選擇“Arty S7-25”。

poYBAGNh0NiAdvIdAAD1RCh9-oc234.jpg
?

如果您沒(méi)有看到這個(gè),請(qǐng)使用此處找到的 Digilent 更新您的電路板文件

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

對(duì)您的電路板進(jìn)行編程,您應(yīng)該會(huì)在 4 個(gè) LED 上看到一些整齊的圖案:)

結(jié)論

感謝您關(guān)注我的第一個(gè) VHDL/Arty S7 項(xiàng)目!請(qǐng)修改代碼以創(chuàng)建您自己的模式!在評(píng)論中發(fā)布任何新模式或問(wèn)題。我想看看你創(chuàng)造了什么:)

?


FPGA led 電路板
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

評(píng)論

查看更多

下載排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  2. 1.12 MB  |  5次下載  |  免費(fèi)
  3. 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
  4. 1.21 MB   |  1次下載  |  免費(fèi)
  5. 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
  6. 0.87 MB   |  次下載  |  免費(fèi)
  7. 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
  8. 88.16 KB  |  次下載  |  免費(fèi)
  9. 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  10. 910.67 KB  |  次下載  |  免費(fèi)
  11. 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  12. 989.14 KB  |  次下載  |  免費(fèi)
  13. 7WD6208A產(chǎn)品規(guī)格書
  14. 631.24 KB  |  次下載  |  免費(fèi)
  15. 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
  16. 1.64 MB   |  次下載  |  2 積分

本月

  1. 1EMC PCB設(shè)計(jì)總結(jié)
  2. 0.33 MB   |  12次下載  |  免費(fèi)
  3. 2PD取電芯片 ECP5702規(guī)格書
  4. 0.88 MB   |  5次下載  |  免費(fèi)
  5. 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  6. 1.12 MB  |  5次下載  |  免費(fèi)
  7. 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
  8. 0.10 MB   |  3次下載  |  免費(fèi)
  9. 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
  10. 0.88 MB   |  3次下載  |  免費(fèi)
  11. 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  12. 1.01 MB   |  3次下載  |  免費(fèi)
  13. 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
  14. 0.65 MB   |  2次下載  |  免費(fèi)
  15. 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
  16. 0.94 MB   |  2次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分
札达县| 闵行区| 收藏| 会泽县| 天全县| 苗栗市| 习水县| 临海市| 宜丰县| 神池县| 安陆市| 郯城县| 长寿区| 南召县| 肃北| 鸡东县| 四子王旗| 台北市| 疏附县| 青阳县| 饶河县| 乐东| 五大连池市| 自治县| 芦溪县| 新宁县| 汾阳市| 剑河县| 来安县| 台州市| 兰溪市| 博湖县| 太湖县| 疏附县| 丰台区| 平果县| 镇巴县| 大安市| 栖霞市| 汶上县| 锡林郭勒盟|