在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

設計FPGA的過程舉例

Hx ? 作者:工程師陳翠 ? 2018-07-13 08:17 ? 次閱讀

數字電路經過半個世紀,從分立元件到小規模集成電路、中等規模集成電路、大規模、超大規模,集成度越來越高,運算能力越來越強,功耗越來越低,人類已經將數字集成電路發展到接近摩爾定律極限。

FPGA是這樣一類數字電路,它可以反復修改自身邏輯功能,具有靈活多變的特性,設計FPGA的過程其實是遵循數字電路設計的一般流程的:

(1)需求分析

(2)抽象邏輯表示(真值表、狀態流圖)

(3)具體邏輯表示(HDL、布爾方程)

(4)將邏輯表示綜合為可實現的電路(門電路、LUT和觸發器)

(5)驗證

FPGA邏輯工程師一般是從應用需求出發,用Verilog或VHDL來描述算法,并通過綜合實現工具、仿真工具、調試工具來協助完成設計。

針對Xilinx器件,開發工具為ISE(Project Navigator,ISim,iMact,Chipscope),有時需要用Modelsim工具完成HDL仿真。

Zynq內部包含PL,資源前面已經說過了,大量LUT,FF,DSP48E1等著你來組織,開發PL可以完全脫離PS,采用傳統開發工具ISE完成。

下面給出只利用PL實現流水燈的例子,希望能有拋磚引玉的功效。

上一節介紹了使用ARM控制流水燈的例子,這里完成同樣的功能,但用PL實現控制,將PS冷落一旁,不用理它。

首先運行ISE Design Suite 14.5,打開Project Navigator軟件。

設計FPGA的過程舉例

File-》New Project,新建一個工程,彈出對話框如下:

設計FPGA的過程舉例

按照上圖進行工程設置,然后點Next

設計FPGA的過程舉例

設置器件為XC7Z020,即我們Zedboard上的主芯片型號。封裝為CLG484,速度級別為-1,語言選擇VHDL。點Next,Finish。

我們分析一下怎樣完成這個設計。數字電路都需要有時鐘源,我們的PL也不例外,板子上有專為PL提供時鐘輸入的晶振,在原理圖中找到:

設計FPGA的過程舉例

設計FPGA的過程舉例

可見晶振輸入為100MHz,直接送入Y9引腳(位于PL部分)。如此高的時鐘速率,需要經過分頻,LED閃爍速率最好低于10Hz,這樣人眼才能分辨出來。

用ISE提供的IP核可以實現分頻,在工程中Add Source:

設計FPGA的過程舉例

選擇IP(Core Generator),輸入名稱為clk_module,如上圖,點Next。

設計FPGA的過程舉例

從“FPGA Features and Design”中“Clocking“下找到Clocking Wizard,點Next,Finish。進入配置IP的環節。

設計FPGA的過程舉例

第一步,默認設置,Next。。。

設計FPGA的過程舉例

第二步,將CLK_OUT1輸出頻率設置為5MHz(貌似不能再小了),其他不改,點Next。

第三步里把復位和鎖定引腳去掉,如下圖所示,后面都一路Next到結束。

設計FPGA的過程舉例

這樣生成了第一個分頻器,輸入為100MHz,輸出為5MHz,需要進一步分頻。

再New Source一下,選VHDL模塊,命名為myled.vhd,輸入代碼如下:

----------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 20:59:03 08/16/2013

-- Design Name:

-- Module Name: myled - Behavioral

-- Project Name:

-- Target Devices:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

----------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using

-- arithmetic functions with Signed or Unsigned values

--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating

-- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity myled is

Port ( clk : in STD_LOGIC;

rst : in STD_LOGIC;

led : out STD_LOGIC_VECTOR(7 downto 0));

end myled;

architecture Behavioral of myled is

signal clk_5M : STD_LOGIC;

signal localbuffer :STD_LOGIC_VECTOR(7 downto 0);

component clk_module

port

(-- Clock in ports

CLK_IN1 : in std_logic;

-- Clock out ports

CLK_OUT1 : out std_logic

);

end component;

begin

myclk : clk_module

port map

(-- Clock in ports

CLK_IN1 =》 clk,

-- Clock out ports

CLK_OUT1 =》 clk_5M);

process(clk_5M,rst)

variable cnt : integer := 0;

begin

led 《= localbuffer;

if(rst = ‘1’) then

localbuffer 《= X”01“;

elsif(clk_5M‘EVENT and clk_5M = ’1‘)

then

cnt := cnt + 1;

if (cnt = 5000000)

then

localbuffer 《= localbuffer(6 downto 0)&localbuffer(7);

cnt := 0;

end if;

end if;

end process;

end Behavioral;

這里使用計數器實現了分頻,輸出為1Hz。

Add Source,選UCF,命名myled.ucf,內容如下:

##

## This is an updated UCF file from the original version by Digilink.

## The CS signal has been removed and all the other signals are mapped to

## proper pin on the Zynq FPGA.

## For the reset, the middle-push button is used.

## Modified by Farhad Abdolian ([email protected]) Nov. 5, 2012

##

Net ”clk“ LOC=Y9 | IOSTANDARD=LVCMOS33;

Net ”clk“ TNM_NET = sys_clk_pin;

TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;

NET ”led[0]“ LOC = T22;

NET ”led[1]“ LOC = T21;

NET ”led[2]“ LOC = U22;

NET ”led[3]“ LOC = U21;

NET ”led[4]“ LOC = V22;

NET ”led[5]“ LOC = W22;

NET ”led[6]“ LOC = U19;

NET ”led[7]“ LOC = U14;

NET ”led[7]“ IOSTANDARD = LVCMOS33;

NET ”led[6]“ IOSTANDARD = LVCMOS33;

NET ”led[5]“ IOSTANDARD = LVCMOS33;

NET ”led[4]“ IOSTANDARD = LVCMOS33;

NET ”led[3]“ IOSTANDARD = LVCMOS33;

NET ”led[2]“ IOSTANDARD = LVCMOS33;

NET ”led[1]“ IOSTANDARD = LVCMOS33;

NET ”led[0]“ IOSTANDARD = LVCMOS33;

#We use the center push button as the reset for this project

Net ”rst“ LOC = P16 | IOSTANDARD = LVCMOS33;

源文件都已經OK,接下來進行綜合、實現、生成bit、iMPACT下載即可(按照標準FPGA開發流程),效果與前面的實驗相同,略去不表。這里由于邏輯比較簡單,省去了功能仿真、時序仿真等流程。真正的邏輯開發最好經過仿真后再下載到硬件中。

從上面這個例子發現,不考慮ARM時,PL部分開發與普通的FPGA開發并沒有任何區別。

恰恰是由于ARM的存在,我們的PL可以實現更多復雜的功能!

1. DDR控制。采用邏輯來實現DDR2存儲器訪問非常復雜,調試也非常耗費時間。ARM核的存在,使得PL可以借助ARM來做DDR2控制器,訪問時只需遵循PS與PL之間的通信協議——AXI就可以了。

2. 操作系統。同樣,FPGA上運行操作系統是一件費力不討好的事情,浪費大量邏輯資源,如果用軟核實現CPU,性能又不高。如果有ARM硬核負責操作系統的日常維護,必要時FPGA仍然通過AXI總線與ARM上的操作系統進行交互。

3. 網絡。

4. USB通信

從傳統FPGA開發到Zynq上PL開發需要改變一個觀念:邏輯可以實現一切。嵌入硬核恰恰說明一點:有些事還是別讓邏輯來做!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1640

    文章

    21907

    瀏覽量

    611559
收藏 人收藏

    評論

    相關推薦

    Verilog語言在FPGA中運用的簡單實例有什么,求舉例

    Verilog語言在FPGA中運用的簡單實例有什么,求舉例
    發表于 03-16 00:59

    FPGA大神幫你解決開發過程的問題

    的,在有問題的時候能有人能夠解答,也是我感觸很深的一點,大家在帖子下方發出學習過程中遇到的問題,我會力所能及的回答大家的問題。希望大家在FPGA開發的道路上越來越順利。提問的范圍舉例:1、FP
    發表于 10-14 10:08

    舉例說明FPGA作為協處理器在實時系統中有哪些應用?

    舉例說明FPGA作為協處理器在實時系統中有哪些應用?FPGA用于協處理器有什么結構特點和設計原則?
    發表于 04-08 06:48

    鎖相環設計舉例

    鎖相環設計舉例:鎖相環設計主要包括:確定所需環的類型,選擇適當的帶寬,指出希望的穩定度。下面將舉例說明要滿足這些設計要求而常用的基本方法。
    發表于 09-05 08:51 ?103次下載
    鎖相環設計<b class='flag-5'>舉例</b>

    簡化Xilinx和Altera FPGA調試過程

    簡化Xilinx和Altera FPGA調試過程:通過FPGAViewTM 解決方案,如混合信號示波器(MSO)和邏輯分析儀,您可以在Xilinx 和Altera FPGA 內部迅速移
    發表于 11-20 17:46 ?27次下載

    DSP和FPGA共用FLASH進行配置的方法

    本文舉例分析了DSP的引導裝載過程FPGA的配置流程,并據此提出了一種使用單個FLASH存儲器實現上述兩個功能的方法。
    發表于 07-21 17:14 ?13次下載

    FPGA應用舉例

    FPGA學習資料,有興趣的同學可以下載看看。
    發表于 04-07 11:10 ?14次下載

    FPGA應用舉例

    FPGA學習資料,有興趣的同學可以下載看看。
    發表于 04-11 13:48 ?86次下載

    熱敏電阻應用舉例

    熱敏電阻應用舉例:包含PTC和NTC的應用及電路
    發表于 08-31 13:56 ?28次下載

    DSP匯編編程及應用舉例

    DSP匯編編程及應用舉例
    發表于 12-06 15:22 ?24次下載

    FPGA選型和設計過程

    如果你在采用FPGA的電路板設計方面的經驗很有限或根本沒有,那么在新的項目中使用FPGA的前景就十分堪憂——特別是如果FPGA是一個有1000個引腳的大塊頭。繼續閱讀本文將有助于你的FPGA
    的頭像 發表于 11-01 09:44 ?2171次閱讀

    FPGA設計過程中常用的FIFO

    無論何時,在復雜的 FPGA 設計過程中,都不可避免地需要在模塊之間發送數據,實現這一點的常用的是 FIFO。
    的頭像 發表于 09-20 09:10 ?2832次閱讀

    觸發器應用舉例

    觸發器應用舉例
    的頭像 發表于 03-15 16:40 ?1755次閱讀
    觸發器應用<b class='flag-5'>舉例</b>

    FPGA的編譯過程討論

    構建FPGA的第一階段稱為綜合。此過程將功能性RTL設計轉換為門級宏的陣列。這具有創建實現RTL設計的平面分層電路圖的效果。
    發表于 06-21 14:26 ?985次閱讀
    <b class='flag-5'>FPGA</b>的編譯<b class='flag-5'>過程</b>討論

    Pt文件及舉例

    Pt文件及舉例
    的頭像 發表于 05-15 09:42 ?2585次閱讀
    主站蜘蛛池模板: 久久精品国产精品亚洲毛片 | 午夜视频国语 | 久久中文字幕一区二区 | 美国一级做a一级爱视频 | 成人网在线 | 日韩欧美卡通动漫在线观看 | 欧美一区二区三区黄色 | 一区二区三区国模大胆 | 国产精品自在线天天看片 | 三级理论片 | 天天躁夜夜躁狠狠躁2024 | 欧美日韩国产成人高清视频 | 你懂得的在线观看免费视频 | 欧美高清一级 | 婷婷综合五月天 | 欧美黑人性色黄在线视频 | 777人体粉嫩u美图 | 免费网址视频在线看 | 女bbbbxxxx视频 | 亚洲视频黄 | 欧美成人一区二区三区在线视频 | 小说区v天堂网 | 国产一卡2卡3卡四卡精品网站 | 天天看夜夜操 | 亚洲bt天堂 | 午夜伦y4480影院中文字幕 | 精品成人毛片一区二区视 | 18视频网站在线观看 | 激情综合五月亚洲婷婷 | 国产稀缺精品盗摄盗拍 | 色综合成人丁香 | 日韩毛片在线 | 东莞a级毛片 | 天堂资源最新版在线www | 日本天天射 | 一级国产特黄aa大片 | 天天摸夜夜摸夜夜狠狠摸 | 视频在线观看免费 | 天天操天天弄 | 男女视频在线观看免费高清观看 | 老子影院午夜精品欧美视频 |