国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【FPGA】高云FPGA之科學(xué)的FPGA開發(fā)流程

這篇具有很好參考價值的文章主要介紹了【FPGA】高云FPGA之科學(xué)的FPGA開發(fā)流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

開發(fā)流程

1、設(shè)計(jì)定義

項(xiàng)目需要做什么,了解系統(tǒng)的功能,如果是大型的項(xiàng)目還會劃分模塊

2、設(shè)計(jì)輸入

通過使用verilog、VHDL、成熟的IP核或者通過畫原理圖的方式進(jìn)行邏輯輸入設(shè)計(jì)

3、分析和綜合

當(dāng)邏輯輸入設(shè)計(jì)完成后需要對其進(jìn)行驗(yàn)證,該部分由軟件部分進(jìn)行驗(yàn)證,如果邏輯輸入有問題需要檢查語法錯誤或則重新設(shè)計(jì)設(shè)計(jì)輸入

4、功能仿真

當(dāng)分析和綜合通過后應(yīng)該進(jìn)行功能性驗(yàn)證,針對項(xiàng)目設(shè)計(jì)定義的功能使用設(shè)計(jì)的邏輯輸入驗(yàn)證其功能能否實(shí)現(xiàn),一般的做法都是通過功能仿真的方式進(jìn)行驗(yàn)證,比如軟件邏輯分析儀,modelsim、vivado等軟件自帶的仿真工具進(jìn)行仿真驗(yàn)證

功能仿真也稱為行為仿真,主旨在于驗(yàn)證電路的功能是否符合設(shè)計(jì)要求,其特點(diǎn)是不考慮電路門延遲與線延遲,主要是驗(yàn)證電路與理想情況是否一致。也可以叫做RTL仿真(test bench)

5、布局布線

當(dāng)我們的IO可以開始分配了我們首先需要分配IO,如果當(dāng)前還沒到IO分配的時候我們可以將IO分配放在最后,當(dāng)IO分配完成后我們就可以通過軟件進(jìn)行布局布線,在芯片內(nèi)部生成芯片電路

6、時序仿真

時序仿真也稱為布局布線后仿真,是指電路已經(jīng)映射到特定的工藝環(huán)境以后,綜合考慮電路的路徑延遲與門延遲的影響,驗(yàn)證電路能否在一定時序條件下滿足設(shè)計(jì)構(gòu)想的過程,能較好地反映芯片的實(shí)際工作情況,當(dāng)時序仿真不通過的時候可能還會設(shè)計(jì)到時序約束的一個過程(在比較復(fù)雜的設(shè)計(jì)中也需要用到);

7、IO分配以及配置文件(bit流文件)的生成

如果在布局布線時未進(jìn)行IO分配在該步驟進(jìn)行IO分配并生成BIT流文件

8、配置(燒錄)FPGA

時序通過了后需要通過硬件進(jìn)行驗(yàn)證也就是最后一步的實(shí)物驗(yàn)證

9、在線調(diào)試

當(dāng)系統(tǒng)出現(xiàn)問題運(yùn)行不正常我們可以通過外部硬件示波器或者邏輯分析儀進(jìn)行實(shí)際引腳信號抓取分析

例子

1、設(shè)計(jì)定義

1.1 需求

二選一多路器,兩個輸入IO(a,b)可以是高電平可以是低電平,一個sel選擇信號
當(dāng)sel為0時候輸出按鍵1的狀態(tài)
當(dāng)sel為1時候輸出按鍵2的狀態(tài)

1.2 原理圖

高云fpga vio,FPGA,fpga開發(fā),高云FPGA

1.3 真值表

高云fpga vio,FPGA,fpga開發(fā),高云FPGA

2、設(shè)計(jì)輸入

2.1 新建工程

高云fpga vio,FPGA,fpga開發(fā),高云FPGA
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

選擇自己使用的芯片(我這里采用的是小梅哥的高云FPGA開發(fā)板)

高云fpga vio,FPGA,fpga開發(fā),高云FPGA
新建一個verilog文件
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

2.2 添加代碼

高云fpga vio,FPGA,fpga開發(fā),高云FPGA

module mux_2_1(
    input wire in1, // 輸入端口1
    input wire in2, // 輸入端口2
	
	input wire sel, // 輸入通道的選擇

    output wire led // 輸出led
);

// assign led = (sel == 1'b0) ? in1 : in2; // 第一種方式直接使用三目運(yùn)算符

// 第二種方式是使用always的*觸發(fā)方法ifelse判斷
reg out;
always @(*) begin
	if(sel)
		out <= in2;
	else
		out <= in1;
end

assign led = out;

endmodule

3、分析和綜合

這里代碼我已經(jīng)驗(yàn)證了所以沒有語法錯誤,直接進(jìn)行綜合
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

當(dāng)沒有語法錯誤時表示代碼正常然后我們可以運(yùn)行工具中的RTL Desgin Viewer查看原理圖網(wǎng)表;

高云fpga vio,FPGA,fpga開發(fā),高云FPGA

4、功能仿真

這里我們需要將我們的源代碼設(shè)置為頂層文件(這里引用一下小梅哥的圖),然后我們可以看到該源碼所占用的資源情況
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

高云fpga vio,FPGA,fpga開發(fā),高云FPGA

然后我們創(chuàng)建一個test beach測試文件

高云fpga vio,FPGA,fpga開發(fā),高云FPGA
代碼如下

`timescale 1ns/1ps

module mux_2_1_tb();
 
    reg In1;
    reg In2;
	reg Sel;
	wire Led;
	
	// 創(chuàng)建模塊實(shí)例并賦值參數(shù)
	mux_2_1 Mux_2_1(
		.in1(In1),
		.in2(In2),
		.sel(Sel),
		.led(Led)
	);

	// 初始化運(yùn)行 測試每個真值表上對應(yīng)的參數(shù)設(shè)定
    initial begin
        In1 = 0;In2 = 0;Sel = 0;
		#100; 
		In1 = 0;In2 = 0;Sel = 1;
		#100;
		In1 = 0;In2 = 1;Sel = 0;
		#100;
        In1 = 0;In2 = 1;Sel = 1;
		#100;
		In1 = 1;In2 = 0;Sel = 0;
		#100;
		In1 = 1;In2 = 0;Sel = 1;
		#100;
		In1 = 1;In2 = 1;Sel = 0;
		#100;
		In1 = 1;In2 = 1;Sel = 1;
		#100;
	end
	
endmodule

點(diǎn)擊綜合和布線,驗(yàn)證有無邏輯錯誤
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

然后我們打開modsim軟件創(chuàng)建工程
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
添加我們的兩個源碼文件并編譯
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
進(jìn)入 Add Simulation Configuration 頁面,我們在 Design 標(biāo)簽頁面中選擇work 庫中的“ mux_2_1_tb”模塊作為設(shè)計(jì)頂層,點(diǎn)擊復(fù)制模塊名作為仿真配置“ Simulation Configuration Name”的命名,確保命名保持一致。在復(fù)雜的工程設(shè)計(jì)中,我們可以設(shè)計(jì)多個不同的仿真配置頂層對工程進(jìn)行仿真測試。
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
點(diǎn)擊“ Optimization Options…”, 在“ Optimization Options…” 設(shè)置欄中選擇“ Apply full visibility to all modules(full debug module)”,點(diǎn)擊“ OK”
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
配置元件庫(這一步的操作需要在modsim中已經(jīng)添加了高云fpga的仿真庫后操),點(diǎn)擊“ libraries” 設(shè)置欄, 在“ Search libraries(-L)” 一欄中點(diǎn)擊“ Add…”添加我們新建的高云的庫文件“ gw5a”,在“ Search Libraries First(-Lf)”同樣選擇庫文件“ gw5a”,最后點(diǎn)擊“ Save”保存設(shè)置;
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后雙擊我們的仿真文件進(jìn)入仿真界面
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后我們選中模塊右擊后點(diǎn)擊Add Wave放到顯示波形中
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

添加好波形后回到“ Library”欄,右鍵單擊“ work”點(diǎn)擊 Update 將
“ mux_2_1_tb”文件更新在“ work”欄,如下所示
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后我們點(diǎn)擊狀態(tài)欄中的運(yùn)行即可捕捉到波形,然后右擊Zoom Full可以快速查看波形,在這一步我們可以驗(yàn)證我們的波形是否是我們需要的效果;
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
下一步我們可以將modsim的工程和波形文件保存到項(xiàng)目project路徑下;
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后點(diǎn)擊波形界面一下再點(diǎn)擊這個按鈕選擇保存波形路徑
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
下次還需打開工程只需要點(diǎn)擊該目錄下的.mpf文件即可
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
到這里功能仿真也就是RTL仿真就結(jié)束了,下一步我們需要分配我們程序中引腳并完成布局布線;

5、引腳約束及布局布線

首先我們需要確認(rèn)我們輸入和輸出接的引腳,這里小梅哥的板子提供了excel表格,下面是我使用到的資源;
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后我們回到軟件中進(jìn)行引腳約束
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
保存后進(jìn)行點(diǎn)擊布線查看是否存在錯誤
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

最終生成文件

//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
//All rights reserved. 
//File Title: Physical Constraints file
//Tool Version: V1.9.9 (64-bit)
//Part Number: GW5A-LV25UG324C2/I1
//Device: GW5A-25
//Device Version: A
//Created Time: Mon 12 25 15:47:02 2023

IO_LOC "led" D14; // 指定“l(fā)ed”io位置為D14
IO_PORT "led" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; // 無上拉 驅(qū)動等級8 io電壓3.3v
IO_LOC "sel" C15;
IO_PORT "sel" PULL_MODE=NONE BANK_VCCIO=3.3;
IO_LOC "in2" A15;
IO_PORT "in2" PULL_MODE=NONE BANK_VCCIO=3.3;
IO_LOC "in1" B16;
IO_PORT "in1" PULL_MODE=NONE BANK_VCCIO=3.3;

6、時序仿真

在仿真章節(jié)的代碼中其實(shí)有涉及到時序相關(guān)的代碼,在那一章節(jié)就可以觀察時序相關(guān)的需求,例如本設(shè)計(jì)的需求有三個輸入,分別是key1、key2以及sel,我們要實(shí)現(xiàn)的功能便是根據(jù)這三個信號的輸入狀態(tài)來輸出led,那當(dāng)我們?nèi)齻€輸入信號發(fā)生后多久led會產(chǎn)生變化,這就是時序,當(dāng)我們的需求是要在10ms內(nèi)反應(yīng)操作,那我們就需要觀察輸入信號發(fā)生變化時輸入信號離輸出信號產(chǎn)生的間隙是多長如下圖,這里的設(shè)計(jì)沒有復(fù)雜的運(yùn)算以及復(fù)雜的判斷電路類似直接導(dǎo)通所以沒有延時產(chǎn)生(實(shí)際不會如此,很難有絕對)
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
如果仿真產(chǎn)生的延時達(dá)不到我們的需求我們就需要進(jìn)行調(diào)整修改,而且實(shí)際的IO輸出和仿真的效果往往也會有不同,例如這里的輸入是按鍵,那按鍵抖動時波形的狀態(tài)我們就可以通過示波器或則硬件邏輯分析儀進(jìn)行時序分析這樣會更加準(zhǔn)確一些;

7、bit流輸出、配置燒錄、板級驗(yàn)證

需要注意在燒錄驗(yàn)證之前,我們需要在高云軟件中配置硬件默認(rèn)狀態(tài),高云編譯器默認(rèn)IO上拉我們需要手動更改為接地
高云fpga vio,FPGA,fpga開發(fā),高云FPGA

高云fpga vio,FPGA,fpga開發(fā),高云FPGA
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
默認(rèn)燒錄是燒錄到sram也就是掉電后程序就不在了,如果重啟后直接開始運(yùn)行需要設(shè)置未固化到flash中如下圖2設(shè)置

高云fpga vio,FPGA,fpga開發(fā),高云FPGA
高云fpga vio,FPGA,fpga開發(fā),高云FPGA
然后我們就可以在板子上驗(yàn)證我們設(shè)計(jì)的功能了;
高云fpga vio,FPGA,fpga開發(fā),高云FPGA文章來源地址http://www.zghlxwxcb.cn/news/detail-766817.html

到了這里,關(guān)于【FPGA】高云FPGA之科學(xué)的FPGA開發(fā)流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于高云FPGA開發(fā)板的十字路口交通燈

    基于高云FPGA開發(fā)板的十字路口交通燈

    結(jié)合高云MiniStar_Nano EDA開發(fā)板,完成設(shè)計(jì)十字路口交通信號燈控制系統(tǒng)。 1.要求該交通燈為三色燈控制器,紅燈亮表示禁止通行,綠燈亮表示允許通行,黃燈亮表示要求壓線車輛快速穿越。主干道和次干道燈的亮滅時序按照交通規(guī)則設(shè)置。 2.可以調(diào)整主干道和次干道綠燈和紅

    2024年01月19日
    瀏覽(118)
  • 高云FPGA系列教程(2):FPGA點(diǎn)燈工程創(chuàng)建、程序下載和固化

    本文是高云FPGA系列教程的第2

    2023年04月08日
    瀏覽(22)
  • 高云FPGA使用過程中端口復(fù)用設(shè)置

    高云FPGA使用過程中端口復(fù)用設(shè)置

    高云FPGA使用過程中端口復(fù)用設(shè)置 使用芯片:GW2AR-18C; 編譯環(huán)境:高云Version:1.9.8; 在移植FPGA程序過程中,由于使用了SSPI專用管腳,所以在把專用管腳當(dāng)做普通IO的時候,就會報(bào)錯,說當(dāng)前管腳不支持; 在之前使用Quartus的Cyclone芯片的時候,里面有一個管腳復(fù)用的設(shè)置,那

    2024年02月07日
    瀏覽(42)
  • FPGA_學(xué)習(xí)_15_IP核_VIO

    FPGA_學(xué)習(xí)_15_IP核_VIO

    前一篇博客我們提到在線調(diào)試的時候, 可執(zhí)行文件只要燒進(jìn)板子,程序它就會自己跑起來,不會等你點(diǎn) 這個按鈕,它才開始跑。我們測試的模塊中,里面可能有幾個我們關(guān)心的信號,它會在程序剛運(yùn)行很短的時間內(nèi)發(fā)生狀態(tài)跳變。 當(dāng)我們打算去捕獲它的狀態(tài)變化的時候,這

    2024年02月12日
    瀏覽(12)
  • 【FPGA】FPGA入門 —— 基本開發(fā)流程

    【FPGA】FPGA入門 —— 基本開發(fā)流程

    快速上手verilog語法 狀態(tài)機(jī),線性序列機(jī) FPGA常見的設(shè)計(jì)方法 自己寫代碼,下載代碼進(jìn)行使用,使用廠家/第三方提供的IP核 常見接口設(shè)計(jì) 等等。。 學(xué)習(xí)時間:基礎(chǔ)內(nèi)容的學(xué)習(xí) - 20*8h,啊啊啊我可以我能行,看來這個月我給把時間砸這上面了~~ 仿真兩大作用:檢查驗(yàn)證設(shè)計(jì)功能

    2024年02月11日
    瀏覽(18)
  • 高云FPGA芯片GW1NSR-4C芯片資源介紹

    首先自我介紹:我司市高云的一級代理商? 隨時歡迎大家和我探討高云FPGA芯片:Lattice_joan 高云4K的FPGA芯片采用的是高云半導(dǎo)體小蜜蜂系列的GW1NSR-4C,它是一顆SoC芯片,片上集成了FPGA邏輯和ARM Cortex-M3 硬核處理器 。注意是硬核處理器,而不是軟核,兩者有很大的區(qū)別,硬核處

    2024年02月06日
    瀏覽(31)
  • 高云FPGA系列教程(9):cmd-parser串口命令解析器移植

    本文是高云FPGA系列教程的第9篇文章。 上一篇文章介紹片上ARM Cortex-M3硬核處理器 串口外設(shè) 的使用,演示輪詢方式和中斷方式接收串口數(shù)據(jù),并進(jìn)行回環(huán)測試。 本文在上一篇工程的基礎(chǔ)上,移植cmd-parser串口命令解析器,到高云GW1NSR-4C ARM處理器上,實(shí)現(xiàn)3個命令:

    2024年02月08日
    瀏覽(30)
  • FPGA學(xué)習(xí)筆記-1 FPGA原理與開發(fā)流程

    FPGA學(xué)習(xí)筆記-1 FPGA原理與開發(fā)流程

    注:筆記主要參考: B站 正點(diǎn)原子 教學(xué)視頻“正點(diǎn)原子手把手教你學(xué)FPGA-基于達(dá)芬奇Pro開發(fā)板 Artix-7 XC7A35T/XC7A100T”。 小梅哥愛漂流 教學(xué)視頻“【零基礎(chǔ)輕松學(xué)習(xí)FPGA】小梅哥Xilinx FPGA基礎(chǔ)入門到項(xiàng)目應(yīng)用培訓(xùn)教程”。 B站搬運(yùn) “特權(quán)同學(xué)2020版《深入淺出玩轉(zhuǎn)FPGA視頻教程》

    2024年02月05日
    瀏覽(22)
  • FPGA開發(fā)基本流程詳解

    FPGA開發(fā)基本流程詳解

    FPGA是一種可編程邏輯器件,與傳統(tǒng)的硬連線電路不同,它具有高度的可編程性和靈活性。FPGA的設(shè)計(jì)方法包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分,硬件設(shè)計(jì)包括FPGA芯片電路、存儲器、輸入輸出接口電路等等,軟件設(shè)計(jì)則是HDL程序開發(fā),以及軟硬件的聯(lián)調(diào)。 本文主要介紹FPGA設(shè)計(jì)的基

    2024年02月05日
    瀏覽(18)
  • FPGA的基本開發(fā)流程

    FPGA的基本開發(fā)流程

    FPGA是一種可編程邏輯器件,與傳統(tǒng)的硬連線電路不同,它具有高度的可編程性和靈活性。FPGA的設(shè)計(jì)方法包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分,硬件設(shè)計(jì)包括FPGA芯片電路、存儲器、輸入輸出接口電路等等,軟件設(shè)計(jì)則是HDL程序開發(fā),以及軟硬件的聯(lián)調(diào)。 本文主要介紹FPGA設(shè)計(jì)的基

    2024年04月13日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包