恭喜黑金云課堂的小伙伴完成第三期內(nèi)容的學(xué)習(xí)
上周我們掌握了 Verilog 基礎(chǔ)與邏輯設(shè)計(jì)、Vitis 搭建工程及 Zynq 配置流,并初步了解了 Linux 系統(tǒng) ?
大家在交流群里反饋非常積極,對 FPGA 免費(fèi)直播課的熱情也感染到了黑金云課堂的老師們。接下來我們會再接再厲,把每一期直播都做得更扎實(shí)
更多精彩課程歡迎關(guān)注我們黑金云課堂全年免費(fèi)直播課,現(xiàn)在讓我們先來回顧一下上周的知識點(diǎn)精華——
數(shù)據(jù)類型
常量
進(jìn)制表示:二進(jìn)制(b/B)、八進(jìn)制(o/O)、十進(jìn)制(d/D)、十六進(jìn)制(h/H)
格式:位寬 +’+ 進(jìn)制 + 數(shù)值例:8’b0000_1111、4’ha
特殊值:X(不定值)、Z(高阻值)
下劃線(_):僅提升可讀性,無實(shí)際意義
定義關(guān)鍵字
parameter:可模塊間傳遞/修改,用于通用常量
localparam:僅本模塊有效,多用于狀態(tài)機(jī)
變量
wire
特性:無存儲,物理連接
賦值:assign 連續(xù)賦值
應(yīng)用:組合邏輯、連線
示例:wire [7:0] a;
reg
特性:可存儲值
賦值:always 塊內(nèi)賦值
應(yīng)用:時序 / 組合邏輯
示例:reg [7:0] b;
memory
特性:多個 reg 組成
賦值:尋址賦值
應(yīng)用:RAM / ROM
示例:reg [7:0] ram [255:0];
*關(guān)鍵點(diǎn):wire 不能存值,reg 不代表真實(shí)硬件寄存
運(yùn)算符:
常用運(yùn)算符
算術(shù):+、-、*、/、%(注意位寬與取整)
賦值:=(阻塞)、<=(非阻塞)
關(guān)系:>、<、>=、<=、==、!=
結(jié)果為 1(真)/0(假)
邏輯:&&、||、!
條件:?:(等效簡單 if-else)
位運(yùn)算:~、&、|、^、^~
移位:<<、>>
邏輯移位,高位 / 低位補(bǔ) 0;例a<<1(左移 1 位,低位補(bǔ) 0)
拼接:{}、{n{}}
拼接多個信號:{a[3:0],b[1:0]};重復(fù)拼接:{n{信號}},例{8{1’b0}}(8 位 0)
賦值運(yùn)算符(高頻易錯)
阻塞賦值 =
組合邏輯必須用
立即生效,順序執(zhí)行
非阻塞賦值 <=
時序邏輯必須用
并行更新,無競爭冒險
組合邏輯
核心特征:輸出僅由當(dāng)前輸入決定,無時鐘、無記憶,輸入變輸出立即變
實(shí)現(xiàn)方式:assign 或無時鐘的 always 塊
典型電路
基礎(chǔ)門電路:
與:assign c = a & b;
或:assign c = a | b;
非:assign b = ~a;
異或:assign c = a ^ b;
運(yùn)算與比較:
比較器:assign c = (a> b);
半加器:sum=a^b,cout=a&b
全加器:{cout,sum}=a+b+cin;
乘法器:直接用 *,注意輸出位寬
選擇器 / 譯碼器
四選一 MUX:case 語句實(shí)現(xiàn)
3-8 譯碼器:地址映射輸出
三態(tài)門(雙向 IO):
assign bio = en ? din : 1'bz;
en=1:輸出
en=0:高阻輸入
時序邏輯
核心特征: 依賴時鐘沿觸發(fā),有記憶功能
實(shí)現(xiàn)方式:帶時鐘的 always 塊 + 非阻塞賦值 <=
典型電路
D 觸發(fā)器
基本:always @(posedge clk) q <= d;
異步復(fù)位:always @(posedge clk or negedge rst)
同步清零:依附時鐘沿
移位寄存器
左移:q <= {q[6:0], d};
右移:q <= {d, q[7:1]};
存儲器
單口 RAM:共用地址
偽雙口 RAM:讀寫地址獨(dú)立
真雙口 RAM:雙端口獨(dú)立讀寫
單口 ROM:只讀,初始化用 case 或 IP + .mif/.coe
有限狀態(tài)機(jī)(FSM)
Mealy 型
輸出由當(dāng)前狀態(tài) + 輸入決定
一段式寫法
優(yōu)點(diǎn):代碼簡潔
缺點(diǎn):輸出易受輸入干擾
Moore 型
輸出僅由當(dāng)前狀態(tài)決定
三段式寫法
優(yōu)點(diǎn):輸出穩(wěn)定,結(jié)構(gòu)清晰
缺點(diǎn):代碼稍多,多一個狀態(tài)周期
Verilog 開發(fā)核心規(guī)則(必記)
組合邏輯:wire + assign 或 always 無時鐘,用 =
時序邏輯:always 時鐘沿,用 <=
敏感列表:組合邏輯包含所有輸入,異步復(fù)位必須加入
參數(shù)化:用 parameter 提高復(fù)用性
存儲器:大容量優(yōu)先使用 FPGA IP 核
狀態(tài)機(jī):復(fù)雜邏輯用三段式 Moore 型
位寬匹配:避免數(shù)據(jù)截?cái)?/p>

ZYNQ7000 基礎(chǔ)工程創(chuàng)建
創(chuàng)建工程 → 選定芯片 → 創(chuàng)建塊設(shè)計(jì)(Block Design)
添加 ZYNQ7 Processing System IP
配置 PS 外設(shè)及 MIO
配置 PS 時鐘輸入頻率
配置 PS DDR3
ZYNQ7000 概述
系列特點(diǎn):全可編程 SoC,ARM Cortex-A9 雙核 + 28nm FPGA
硬件結(jié)構(gòu)
PS:雙核 ARM Cortex-A9,最高 667MHz
PL:Artix-7 / Kintex-7 FPGA 邏輯資源
調(diào)試與驗(yàn)證
ILA 邏輯分析
SDK / Vitis 軟硬件協(xié)同驗(yàn)證
Vivado 工程創(chuàng)建與配置
選擇目標(biāo)器件:New Project → 選擇ZYNQ7000系列器件(如xc7z020clg400-2)
配置 PS:添加ZYNQ7 Processing System → 配置時鐘、DDR、外設(shè)(UART、ETH、USB等)
配置 PL:添加自定義RTL模塊或IP核 → 配置PL資源(LUT、FF、BRAM、DSP)
連接與驗(yàn)證:Run Connection Automation → Validate Design 檢查設(shè)計(jì)完整性
生成比特流 → Generate Bitstream → 導(dǎo)出硬件(Export Hardware)生成XSA文件)
MPSoC 工程創(chuàng)建
架構(gòu)特性
四核 Cortex-A53 + 雙核 Cortex-R5 + Mali-400 GPU
可編程邏輯部分:基于16nm FinFET工藝的UltraScale+ FPGA架構(gòu),提供更高性能與更低功耗
相比 ZYNQ7000 升級點(diǎn):16nm 工藝、更多核心、更強(qiáng)邏輯資源、更高帶寬存儲器
Vivado 工程流程
選擇 MPSoC 器件:New Project → 選擇Zynq UltraScale+ MPSoC器件(如xczu3eg-sfvc784-2-i)
配置 PS:添加Zynq UltraScale+ MPSoC IP → 配置A53/R5核心、時鐘、DDR4、外設(shè)接口
Block Design 連接 PS 與 PL,配置 AXI 互聯(lián)
生成比特流(Generate Bitstream)→ 導(dǎo)出 XSA → 硬件驗(yàn)證
關(guān)鍵配置要點(diǎn)
硬件外設(shè)與 MIO 正確匹配
DDR4 控制器參數(shù)匹配實(shí)際硬件
PCIe 配置(如需)

芯片介紹
Zynq 平臺架構(gòu)
PS 端:ARM 處理器 + 外設(shè)
PL 端:FPGA 可編程邏輯
Zynq 系列對比
Zynq 7000 SoC:Cortex-A9 雙核 / 單核
Zynq UltraScale+ MPSoC:Cortex-A53 + Cortex-R5
兩者在性能、外設(shè)、功耗上存在差異
開發(fā)板使用
開發(fā)板硬件組成
電源連接與上電準(zhǔn)備
串口調(diào)試配置
啟動模式選擇:JTAG、SD 卡、eMMC 等
U-Boot
U-Boot 作用與意義
環(huán)境變量管理
MMC 命令操作
常用調(diào)試命令
引導(dǎo)內(nèi)核與設(shè)備樹
啟動流程
BootROM → FSBL → ATF → U-Boot → Linux
各階段職責(zé)與功能
啟動配置方法
設(shè)備樹的作用
系統(tǒng)啟動配置示例
更多細(xì)節(jié)歡迎關(guān)注我們黑金云課堂全年免費(fèi)直播課,我們將在每周二、三、四,同步推進(jìn) Verilog開發(fā)、Vitis開發(fā)、Linux開發(fā) 三大系列,帶你從零開始,穩(wěn)扎穩(wěn)打掌握 FPGA 開發(fā)全流程!
審核編輯 黃宇
-
FPGA
+關(guān)注
關(guān)注
1662文章
22464瀏覽量
638017
發(fā)布評論請先 登錄
【有獎問答】瘋狂愛答之電路設(shè)計(jì)-第三期獲獎名單公布
【有獎問答】瘋狂愛答之電源技術(shù)—第三期獲獎名單公布
【有獎問答】瘋狂愛答之FPGA—第三期獲獎名單公布
HarmonyOS特刊——第三期上線啦?。?!
開關(guān)電源免費(fèi)教程(第三期)開關(guān)電源的鉗位電路講解
【視頻教程】單片機(jī)新手教程(第三期)單片機(jī)介紹
單片機(jī)實(shí)戰(zhàn)教程(第三期)M1A時鐘PCB布局
硬件實(shí)戰(zhàn)教程(第三期)常用運(yùn)放電路原理圖講解3
硬件免費(fèi)教程(第三期)穩(wěn)壓電源LDO詳解
高一數(shù)學(xué)知識點(diǎn)總結(jié)
高二數(shù)學(xué)知識點(diǎn)總結(jié)
嵌入式知識點(diǎn)總結(jié)
網(wǎng)課回放 I 升級版“一站式” PCB 設(shè)計(jì)第三期:原理圖完整性及可靠性分析
【黑金云課堂筆記】第三期知識點(diǎn)總結(jié)
評論