• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

基于FPGA的單目內窺鏡定位系統(tǒng)設計(中)

2023/11/28
1000
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

今天給大俠帶來基于FPGA的單目內窺鏡定位系統(tǒng)設計,由于篇幅較長,分三篇。今天帶來第二篇,中篇,話不多說,上貨。

隨著現(xiàn)科技的發(fā)展和社會的進步,信息科技迅速發(fā)展,我們可從互聯(lián)網(wǎng)、電臺等媒體獲取大量信息?,F(xiàn)代信息的存儲、處理和傳輸變得越來越數(shù)字化。在人們的日常生活中,常用的計算機、電視、音響系統(tǒng)、視頻記錄設備、遠程通訊電子設備無一不采用電子系統(tǒng)、數(shù)字電路系統(tǒng)。因此,數(shù)字技術的應用越來越廣泛。尤其在通信系統(tǒng)和視頻系統(tǒng)中,數(shù)字系統(tǒng)尤為突出。而隨著FPGA的出世,數(shù)字系統(tǒng)更加受到人們青睞,它為數(shù)字系統(tǒng)的設計提供更加便捷的通道,使得數(shù)字系統(tǒng)設計可以芯片小型化,電路規(guī)模大型化,龐大的邏輯資源,可滿足各種數(shù)字系統(tǒng)設計。

隨著社會的發(fā)展,科學技術已經(jīng)應用于各個領域,尤其是醫(yī)療領域尤為突出。而在醫(yī)療領域中,心臟電信號模擬器手術輔助儀器發(fā)展迅速。為了訓練經(jīng)驗少的醫(yī)生熟悉心臟手術的操作過程,而專門開發(fā)心臟信號模擬儀器,讓醫(yī)生迅速掌握心臟手術操作過程,成為一個經(jīng)驗豐富心臟手術醫(yī)生。

因此,本文將于FPGA平臺,以圖像處理結合信號采集原理,實現(xiàn)醫(yī)生在做心臟模擬手術操作導管的過程中,不需要觀察心臟內部情況,即可獲取導管頭在心臟內部信息的功能,采用內窺鏡攝像頭采集視頻和并對導管頭進行跟蹤定位,信號采集技術可將采集到的導管頭在心臟內部觸碰區(qū)域的信號采集出來送到專業(yè)醫(yī)用儀器,進行心臟3D建模。

本設計的實現(xiàn)對醫(yī)院培養(yǎng)的經(jīng)驗少的醫(yī)生盡快掌握心臟手術操作流程很有價值,未來將可以培養(yǎng)更多從事心臟手術工作的醫(yī)學專業(yè)畢業(yè)的學生或剛剛從事這個行業(yè)的社會醫(yī)生。

第二篇內容摘要:本篇還會介紹硬件設計,包括電源電路、FPGA外圍電路、采集電路、緩沖電路、顯示電路等相關內容,以及介紹軟件設計,包括采集模塊、緩沖模塊、處理模塊、解碼模塊、顯示模塊等相關內容。

四、硬件設計

硬件設計包括有電源電路、FPGA外圍電路、采集電路、緩沖電路和顯示電路。

4.1 電源電路

電路設計:使用接口連接電源并且附帶串口輸出,電源輸出需要VCC(5V)、3.3V、2.8V、2.5V、1.2V。其中某些外設需要VCC、和3.3V供電,而3.3V、2.8V、2.5V、1.2V是FPGA芯片和其外圍電路的供電以及攝像頭電路和SDRAM電路。

設計如圖4.1所示。

圖4.1 電源電路原理圖

4.2 FPGA外圍電路

芯片選型:本設計電路使用Altera公司的clcone IV系列的EP4CE6F17C8型芯片。

電路設計:FPGA外圍電路包括JTAG電路,EPCS電路和晶振電路等主要的電路。電路圖如下,圖4.2 JTAG電路,圖4.3 EPCS電路,圖4.4 晶振電路。

圖4.2 JTAG電路原理圖

圖4.3 EPCS電路原理圖

圖4.4 晶振電路原理圖

4.3 采集電路

電路設計:采集電路設計在設計時,將cmos_sclk和cmos_sdat上拉4.7k電阻即可,類似于I2C總線。設計如圖4.5所示。

圖4.5 攝像頭采集電路原理圖

4.4 緩沖電路

電路設計:按照官方設計存儲器外圍電路如圖4.6所示。

圖4.6 SDRAM電路原理圖

4.5 顯示電路

電路設計:VGA設計電路如圖4.7所示。

圖4.7 VGA電路原理圖

五、軟件設計

以下是對各個模塊具體的設計和劃分,整體設計如圖5.1所示。

圖5.1 軟件模塊設計

圖5.1可分為5大塊,采集模塊(OV7670采集圖像)、緩沖模塊(SDRAM圖像緩沖)、處理模塊(乒乓輸入、乒乓輸出、幀差、二值圖像投影并計算目標)、解碼模塊(YUV格式轉RGB565格式)、顯示模塊(打印出坐標信息、驅動VGA)。詳細設計在接下來的章節(jié)中一一講解。

5.1 采集模塊

5.1.1. 初始化SCCB(I2C)協(xié)議實現(xiàn)

SCCB 由OV公司生產,通過配置寄存器,來設置攝像頭功能,從而達到采集數(shù)據(jù)的目的。通訊協(xié)議和I2C差不多,都是有一個時鐘線和一個數(shù)據(jù)線,數(shù)據(jù)線是雙向的,如圖5.2所示為SCCB主機和從機電氣連接圖。SCCB協(xié)議的主機發(fā)出啟動停止和數(shù)據(jù)信號,從機響應應答信號和非應答信號,主機在SCLK為高電平時,將SDAT從高拉低,這時觸發(fā)啟動信號,在SCLK為高電平時,將SDAT從低拉高,這時觸發(fā)停止信號,至于發(fā)送數(shù)據(jù)信號,只有在啟動信號和停止信號之間,SCLK為低電平時,SDAT才允許改變,但是在SCLK為高電平時,SDAT必須保持不變,換句話來說,SDAT只有在SCLK為低電平時才能改變。主機使用FPGA,從機為攝像頭。每個從機都會有一個獨一無二的地址,軟件訪問從機時,識別從機地址即可。根據(jù)廠家使用手冊SCLK和SDAT需要接上拉電阻。

接下來,講一下SCCB傳輸?shù)幕靖袷?,其傳輸格式與I2C基本上一樣,如圖5.3所示,總共寫時序有三個部分。每一部分都傳輸特定的數(shù)據(jù),第一部分由8bit組成,最低位是讀寫選擇控制,高7bit由從唯一機地址組成,最后當從機接收到8bit數(shù)據(jù)后,會向主機反饋一個應答信號ACK。第二部分,由8bit數(shù)據(jù)組成,其為從機內部寄存器地址,最后當從機接收到8bit數(shù)據(jù)后,會向主機反饋一個應答信號ACK。第三部分,由8bit數(shù)據(jù)組成,其為從機內部寄存器數(shù)據(jù),最后當從機接收到8bit數(shù)據(jù)后,會向主機反饋一個非應答信號NACK。

圖5.2 SCCB電氣連接

圖5.3 SCCB時序圖

通過ModelSim仿真可以得到相應的SCCB時序圖,如圖5.4所示。

圖5.4 仿真時序圖

結論:SCCB總線仿真時序圖和廠家手冊時序圖一致,i2c_sdat為數(shù)據(jù)信號,ui2c_sclk為時鐘信號。在時鐘高電平時,數(shù)據(jù)從高拉低為起始信號,數(shù)據(jù)從低拉高為停止信號,在時鐘低電平時,數(shù)據(jù)信號可以改變,而且可以收到應答信號,時鐘為高電平時數(shù)據(jù)保持。

5.1.2. 像素數(shù)據(jù)捕獲設計

在驅動攝像頭時,攝像頭輸出時序是按照圖5.5輸出的,本設計按照攝像頭產生的行有效信號HREF和捕獲時鐘PCLK對相應的數(shù)據(jù)進行捕獲即可。

圖5.5 攝像頭輸出時序圖

5.2 緩沖模塊

sdram控制器:動態(tài)隨機訪問存儲器(Synchronous Dynamic Random Access Memory)價廉,容量大,但控制復雜。SDRAM以及隨后的DDR2,DDR3成為當前數(shù)字系統(tǒng)主要的存儲器器件,SDRAM器件電氣接口如圖5.6所示。

圖5.6 SDRAM器件的端口圖

然后介紹sdram控制器設計步驟以及相應時序圖和仿真圖。

5.2.1. 器件初始化:

1). 加載電源(VDD和VDDQ)

2). CKE設置為低(LVTTL邏輯低電平)

3). 加載穩(wěn)定的時鐘信號

4). 等待至少100us,此時的命令保持為INHIBIT或NOP

5). 在步驟4的100us中的某個時刻,將CKE設置為高,命令仍然保持為INHIBIT或NOP

6). 步驟4的100us結束后,即可發(fā)出一個全部Bank的預充電命令(PRECHARGE ALL)

7). 等待至少tRP(行預充電最小周期),此時命令保持為NOP或DESELECT

8). 發(fā)出一個自動刷新命令(AUTO REFRESH)

9). 等待至少tRFC(自動預充電周期),此時的命令僅允許是NOP或INHIBIT

10). 再發(fā)出一個自動刷新命令( AUTO REFRESH )

11). 再等待至少tRFC(自動預充電周期),此時的命令僅允許是NOP或INH

12). 使用LMR命令設置模式寄存器

13). 等待至少tMRD(LMR命令至激活或刷新命令的最小間隔),此時的命令僅允許是NOP或DESELECT

圖5.7 sdram控制器初始化時序圖

圖5.8 sdram控制器初始化仿真時序圖

結論:仿真如圖5.8所示,達到廠家時序圖5.7所示的指標,按照廠家時序步驟設計時序仿真圖紅色光標線標明。要注意的是在發(fā)出上電命令之前要發(fā)出NOP指令100us以上,設計100.0025us滿足指標。

5.2.2. sdram刷新操作

SDRAM的刷新分為自動刷新(Auto Refresh)和自刷新(Self Refresh) ,前者由外部控制,必須定時給出刷新命令,后者在cke為低時SDRAM器件自己進行,無需外部干預。自動刷新(Auto Refresh)時,SDRAM內部的自動刷新計數(shù)器定時對所有Bank的行進行刷新。刷新期間所有操作要停止。自動刷新命令是由外部發(fā)出的(SDRAM控制器發(fā)出)。通常存儲電容的充放電周期為64ms,8192行(13位行地址尋址范圍)。以下是自動刷新步驟以及時序圖如圖5.9所示和仿真圖如圖5.10所示。

1). 所有Bank執(zhí)行預充電(關閉所有Bank的行)

2). 等待至少tRP,期間的命令保持為INHIBIT或NOP

3). 執(zhí)行Auto Refresh命令

4). 等待至少tRFC,期間不能有任何可執(zhí)行命令,僅允許INHIBIT或NOP

5). 若要執(zhí)行背靠背刷新,則執(zhí)行下一個Auto Refresh

6). 若無背靠背(Back to back, 即A10=1執(zhí)行預充電),則刷新結束,可以開始激活新的bank

7). 自動刷新周期保證每行(所有Bank)滿足行刷新周期64ms,因此刷新周期=64ms/8192=7.813us

注意:對所有bank充電(如果使用突發(fā)中斷指令,可以不用充電);第一次自動刷新(第一次刷新必須);第二次自動刷新(第二次刷新可選)。

圖5.9 sdram控制器自動刷新時序圖

圖5.10 sdram控制器自動刷新仿真時序圖

結論:按照廠家手冊再刷新之前需要做充電操作,然后再做兩次刷新操作,如果設置模式成頁寫突發(fā)中斷模式,則不需要充電,只需要一次刷新即可。

5.2.3. sdram寫操作

圖5.12為寫操作時序圖,圖5.13為寫操作仿真圖,以下是寫操作步驟。

a. 發(fā)出激活指令,同時加載行地址,如圖5.11所示;

b. 經(jīng)過時間tRCD后,發(fā)出寫指令,加載列地址和有效數(shù)據(jù);

c. 數(shù)據(jù)突發(fā)。

圖5.11 激活時序圖

圖5.12 寫操作時序圖

圖5.13 寫操作仿真圖

結論:寫操作之前一定要發(fā)出激活指令,同時加載行地址,才能發(fā)出寫命令加載數(shù)據(jù)和行地址,延時參數(shù)和廠家手冊指標一致。

5.2.4. sdram讀操作

圖5.14為讀操作時序圖,圖5.15為讀操作仿真圖,以下是讀操作步驟。

a. 發(fā)出激活指令,同時加載行地址,如圖5.11所示;

b. 經(jīng)過時間tRCD后,發(fā)出讀指令,加載列地址;

c. 經(jīng)過CL=3,3拍潛伏期之后可讀出數(shù)據(jù);

d. 數(shù)據(jù)突發(fā)。

圖5.14 讀操作時序圖

圖5.15 讀操作仿真圖

結論:讀操作之前一定要發(fā)出激活指令,同時加載行地址,才能發(fā)出讀命令加載行地址,最后得出數(shù)據(jù),延時參數(shù)和廠家手冊指標一致。

為了便于圖像的實時緩沖,在sdram控制器兩端專門設計了fifo端點,以適應不同時鐘域數(shù)據(jù)的緩沖,詳細設計如下。

二端點緩沖:sdram控制器兩端接有兩個異步fifo(一個寫fifo和一個讀fifo),用戶可對一個寫fifo和一個讀fifo同時進行操作,而且sdram控制器是頁寫突發(fā)。

圖5.16 二端點緩沖仿真圖

四端點緩沖:sdram控制器兩端接有兩個異步fifo(兩個寫fifo和兩個讀fifo),用戶可對兩個寫fifo和兩個讀fifo同時進行操作,而且sdram控制器是頁寫突發(fā)。

圖5.17 四端點緩沖仿真圖

 

結論:二端點緩沖要求在任意時刻一端口寫入一幀數(shù)據(jù),另一端口在任意時刻能無損的讀出寫入的圖像,圖5.18紅色光標線標明設計滿足要求;四端點緩沖要求在任意時刻寫1端口寫入一幀數(shù)據(jù),讀1端口在任意時刻能無損的讀出寫入的圖像,在任意時刻寫2端口寫入一幀數(shù)據(jù),讀2端口在任意時刻能無損的讀出寫入的圖像,圖5.17紅色光標線標明設計滿足要求;根據(jù)本文設計要求寫入一端乒乓寫入一幀圖像,另一端同時同步讀出相鄰兩幀圖像數(shù)據(jù),則需要做3端口訪問,四端點緩沖剛好滿足需求。

5.3 處理模塊

處理模塊總共包括三個處理模塊,乒乓輸入、幀差且乒乓輸出、投影直方圖和目標定位模塊。

乒乓操作:包括乒乓輸入和乒乓輸出,在關鍵問題解決方法中已經(jīng)詳細講述其原理,在這里講述設計實現(xiàn)方法及需要注意的問題。

1). 通過sdram緩沖模塊輸出的完成信號,在狀態(tài)機的控制下完成乒乓輸入切換和輸出切換。

2). 注意切換標志信號不能使用輸入模塊(攝像頭采集模塊)或輸出模塊(VGA顯示模塊)的完成信號,否則會造成sdram緩沖模塊數(shù)據(jù)未完全緩沖完畢,從而丟失數(shù)據(jù)。

幀差:在本設計中,通過乒乓操作使我采集到的相鄰的兩幀圖像同時輸出,兩幀圖像相減得到的值,到底是前一幀減去后一幀還是后一幀減去前一幀,理論上來說都可以,如果使用兩幀相減的絕對值來輸出,不管是誰減誰都無所謂了。

投影直方圖和目標定位:二值投影分為水平方向的投影和垂直方向的投影,水平方向投影就是把x軸方向各個地址所對的數(shù)據(jù)加在一塊,然后存儲到內存里面,垂直方向投影就是把y軸方向各個地址所對的數(shù)據(jù)加在一塊,然后存儲到內存里面。最終存儲起來就得到二值圖像的投影。使用狀態(tài)機檢測輸入數(shù)據(jù)是否為1來進行直方圖計數(shù)并寫入ram中。同關鍵問題解決方法一節(jié)中,通過硬件描述語言設計出來,得到相應目標坐標。

5.4 解碼模塊

攝像頭配置模式為YUV(4:2:2)模式,通過攝像頭采集到的YUV格式需要轉換成RGB格式才能在VGA上輸出。在格式轉換中,需要把YUV422轉成YUV444,再把YUV444轉成RGB888,最后把RGB888轉成RGB565,其中YUV444轉成RGB888采用查找表的方式。下面詳細說明一下轉換方法。

5.4.1. YUV422轉成YUV444,標準的視頻的YCbCr信號,以Cb0 Y0 Cr0 Y1 Cb1 Y2 Cr1 Y3...,通過合并8bit到16bit(為了存儲,16bit)后,數(shù)據(jù)變成了{Cb0 Y0}{Cr0 Y1}{Cb1 Y2}{Cr1 Y3}...,為了保持數(shù)據(jù)的同步,同時又不能丟失任何一個byte,重新組合出一幅完整的YCbCr圖像,我們將所謂的YUV422轉成YUV444,即每一個像素都有完整的亮度色差,但是這需要幾級寄存來完成。如此,既保證了數(shù)據(jù)的同步,不至于色差錯位,同時又有效的拼接了數(shù)據(jù),有利于保存。以下是捕獲步驟。

1). 捕獲Cb0 Y0

2). 捕獲Cr0 Y1

3). 捕獲Cb1 Y2,輸出Y0Cb0Cr0

4). 捕獲Cr1 Y3,輸出Y1Cb0Cr0

5.4.2. YUV444轉成RGB888,關于這個轉換有特定的公式,如下:

R=1.164(Y-16)+1.596(Cr-128)

G=1.164(Y-16)- 0.813(Cr-128)- 0.391(Cb-128)

B=1.164(Y-16)+2.018(Cb-128)

如果使用c語言方式設計,它支持浮點運算,非常易于實現(xiàn)。但是FPGA中僅僅只有邏輯低和邏輯高,那就需要另想辦法設計了,好在上述的一些小數(shù)我們可以量化之后再通過一位就可以實現(xiàn),這樣就不需要涉及到小數(shù)運算和乘法運算問題了。具體設計如以下步驟。

1). 首先,分離變量,將公式化簡

R=1.164Y+1.596Cr-222.912

G=1.164Y- 0.813Cr- 0.391Cb+135.488

B=1.164Y+2.018Cb-276.928

2). 然后進行放大,加上移位,去掉浮點

XOUT[19:0]=((Y*10’d596)+ (Cr*10’d817)-18’d114131)>>9

YOUT[19:0]=((Y*10’d596)- (Cb*10’d200)- (Cr*10’d416)-18’d69370)>>9

ZOUT[19:0]=((Y*10’d596)+ (Cb*10’d1033)-18’d141787)>>9

3). 乘法器出現(xiàn)溢出,我需要截斷正負溢出部分,使得數(shù)據(jù)保持在0~255范圍內。如下:

R=XOUT[10] ? 8’h0:(XOUT[8:0] > 9’d255) ? 8’hff:XOUT[7:0];

G=YOUT[10] ? 8’h0:(YOUT[8:0] > 9’d255) ? 8’hff:YOUT[7:0];

B=ZOUT[10] ? 8’h0:(ZOUT[8:0] > 9’d255) ? 8’hff:ZOUT[7:0];

4). 最后由于硬件原因,需要將RGB888轉換成成RGB565,這一步僅僅只需要做截斷操作即可。

5.5 顯示模塊

顯示模塊分為兩大部分,第一部分為字符打印模塊,在已有圖像的基礎上打印出要寫的字符或圖標;第二部分為VGA驅動模塊,驅動硬件設備。下面具體設計如下。

字符打印模塊:在VGA顯示圖像的基礎上,在畫面上打印出一串字符,并且可以控制其位置、內容任意改變。設計結構如圖5.18所示。其原理是根據(jù)輸入圖像的地址矩陣構成字符或者圖標,在對應的地址上將原始像素數(shù)據(jù)替換成特定的值,這個就可以在不影響原始圖像的基礎上打印出想要的字符或者圖標。

圖5.18 字符模塊設計圖

VGA驅動模塊:標準的VGA接口有15個接口,但是真正用到的只有5個接口,分別是三個色彩信號,R,G,B,場同步信號VSYNC,行同步信號HSYNC,時序部分要通過控制行同步信號和場同步信號,色彩部分要控制RGB,先來看時序部分。對于一個分辨率為800*600的顯示器,簡單的說像素的刷新是從左到右,從上到下一行一行的刷新的,每一行要刷新的點成為行同步信號的幀長,有多少行稱為場同步信號的幀長,從上到下刷新完一遍稱為一幀,我們電腦上說的屏幕刷新頻率就是說屏幕一秒鐘能夠刷新多少幀,當達到一定的幀數(shù),我們的肉眼也就分辨不出來了,這樣我們就看到我們的電腦屏幕,我們在操作的時候是連續(xù)的了。

5.5.1. 水平時序

水平同步信號HSYNC如圖5.19所示,HSYNC使用一個負同步脈沖表示一行像素的開始時刻,到下一個負脈沖出現(xiàn)為一行像素的結束時刻。實際的一行有效圖像數(shù)據(jù)是在25.422us的時間窗口內發(fā)送的,而水平同步信號之間的間隔是31.77us。沒有圖像數(shù)據(jù)發(fā)送的這段時間定義為消隱區(qū),此時的圖像為黑色。如果有25.422us的時間段來輸出一行有效圖像數(shù)據(jù),做一些計算如下,640*480的VGA顯示模式下,待填充的640個像素需要在25.422us內發(fā)送給顯示器。即每個像素的時間為 25.422us/640 = 39.71875ns??梢运愕米钚r間單位是 25.175MHZ,這個即驅動VGA時FPGA所需要的時鐘頻率。

5.5.2. 垂直時序

垂直同步信號VSYNC如圖20所示,VSYNC與水平同步信號相似,只不過其同步負脈沖表示整個一幀圖像的開始和結束。一幀圖像的有效圖像數(shù)據(jù)是在15.25ms的時間窗口內發(fā)送的,而同步信號之間的間隔是16.68ms。同理,如果有15.25ms的時間段來輸出一幀有效圖像數(shù)據(jù),做計算如下,640*480的VGA顯示模式下15.25ms/480 = 0.031ms。可以算得完成填充一行640個有效像素數(shù)據(jù)的時間為0.031ms,即每一行的頻率為31.46875Khz,顯示像素數(shù)據(jù)或電子束退回到行首開始新的水平掃描時,RGB信號需要置為黑色,即全為零。

圖5.19 VGA行數(shù)據(jù)時序

注:a (行消隱) , b(行消隱后沿),c(行顯示),d(行消隱前沿),E(行時序總長度)


圖5.20 VGA場數(shù)據(jù)時序

注:a (場消隱) , b(場消隱后沿),c(場顯示),d(場消隱前沿),E(場時序總長度)

圖5.21 VGA行數(shù)據(jù)仿真圖

圖5.22 VGA場數(shù)據(jù)仿真圖

不同的分辨率下,行同步和場同步信號的周期是不同的,時序上的時間也不一樣。附錄2列出了VGA的常用分辨率參數(shù)。

結論:圖5.21設計為行時序滿足VGA設計行時序,圖5.22設計為場時序滿足VGA設計場時序。

本篇到此結束,下一篇帶來基于FPGA的單目內窺鏡定位系統(tǒng)設計(下),會介紹系統(tǒng)調試與測試以及結論,包括系統(tǒng)資源性能調試與分析、系統(tǒng)功能測試等相關內容,還會有VGA的常用分辨率參數(shù)表、整體電路圖、主要程序分享等附錄。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
XC7A200T-2FBG484I 1 AMD Xilinx Field Programmable Gate Array, 16825 CLBs, 1286MHz, 215360-Cell, CMOS, PBGA484, FBGA-484

ECAD模型

下載ECAD模型
$325.32 查看
EP4CE30F23C8N 1 Altera Corporation Field Programmable Gate Array, 1803 CLBs, 472.5MHz, 28848-Cell, PBGA484, 23 X 23 MM, 1 MM PITCH, LEAD FREE, FBGA-484

ECAD模型

下載ECAD模型
$39.92 查看
A3P250-FGG256I 1 Microchip Technology Inc Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, CMOS, PBGA256
$27.38 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

任何技術的學習就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。