www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀] 數(shù)字存儲(chǔ)示波器作為測(cè)試技術(shù)的重要工具,被廣泛應(yīng)用于各個(gè)領(lǐng)域,并逐步取代傳統(tǒng)模擬示波器。其采樣數(shù)據(jù)是波形運(yùn)算和分析的基礎(chǔ),直接影響到整個(gè)數(shù)字存儲(chǔ)示波器的準(zhǔn)確性。從這點(diǎn)出來(lái),提出采用現(xiàn)場(chǎng)可編程邏輯器件(

 數(shù)字存儲(chǔ)示波器作為測(cè)試技術(shù)的重要工具,被廣泛應(yīng)用于各個(gè)領(lǐng)域,并逐步取代傳統(tǒng)模擬示波器。其采樣數(shù)據(jù)是波形運(yùn)算和分析的基礎(chǔ),直接影響到整個(gè)數(shù)字存儲(chǔ)示波器的準(zhǔn)確性。從這點(diǎn)出來(lái),提出采用現(xiàn)場(chǎng)可編程邏輯器件( FPGA) 作為數(shù)字存儲(chǔ)示波器采樣控制系統(tǒng)的核心,從芯片間有效協(xié)助的角度,基于FPGA 設(shè)計(jì)ARM 接口通信控制模塊和外圍芯片驅(qū)動(dòng)功能模塊,以FPGA 為核心有效地組織其它芯片,共同完成數(shù)字存儲(chǔ)示波器數(shù)據(jù)采樣過(guò)程,確保數(shù)據(jù)按需求采樣,有效地提高數(shù)字存儲(chǔ)示波器的采樣效率和數(shù)據(jù)的可靠性。

1 數(shù)字存儲(chǔ)示波器的總體設(shè)計(jì)方案

數(shù)字存儲(chǔ)示波采用雙處理器( ARM + FPGA) 的嵌入式系統(tǒng)設(shè)計(jì)方案,ARM 內(nèi)嵌WINCE 操作系統(tǒng),整個(gè)采樣系統(tǒng)主要在FPGA 里完成,從功能的角度分成采樣信息處理子系統(tǒng)與采樣控制子系統(tǒng),本文著重介紹采樣控制子系統(tǒng)的驅(qū)動(dòng)部分,由ARM 接口控制模塊與芯片驅(qū)動(dòng)模塊組成。如圖1 所示:

圖1 數(shù)字存儲(chǔ)示波器總體功能模塊圖

2 系統(tǒng)驅(qū)動(dòng)模塊設(shè)計(jì)

2. 1 ARM 接口通信控制模塊設(shè)計(jì)

ARM 接口通信控制模塊為主要的控制模塊,如圖2 所示。

圖2 ARM 接口通信控制部分功能模塊圖

加入這個(gè)模塊而不直接鏈接兩個(gè)芯片有以下兩點(diǎn)原因:

1) ARM 作為主控芯片的控制模塊,引腳數(shù)量有限。如果ARM 接口直接與FPGA 接口相連,會(huì)占用ARM 過(guò)多的接口。

2) ARM 和FPGA 相連的信號(hào)線由于存在各種干擾,有時(shí)會(huì)出現(xiàn)毛刺現(xiàn)象,影響測(cè)量效果。

所以為了測(cè)量的穩(wěn)定準(zhǔn)確,需要加入FPGA 和ARM 的接口模塊。此模塊是本設(shè)計(jì)的重點(diǎn)也是難點(diǎn)。其原理以下結(jié)合圖2 來(lái)說(shuō)明。

ARM 接口通信控制模塊左邊為跟ARM 鏈接的接口,分別為1 路時(shí)鐘cmd_clk,3 路的命令線cmd_sel[2. . 0],8 路數(shù)據(jù)線cmd_data[7. . 0]。右邊為FPGA 響應(yīng)的相關(guān)接口,在此不作一一講述,下面主要講術(shù)FPGA 與ARM 之間的通信協(xié)議。

cmd_clk 為1 位輸出接口,是ARM 與FPGA 的同步時(shí)鐘,用作同步通信。

cmd_sel[2. . 0]為3 位輸出接口,用作設(shè)置cmd_data[7. . 0]的模式選擇。

cmd_data[7. . 0]為8 位輸出接口,是ARM 發(fā)送到FPGA 的命令或數(shù)據(jù)。

功能實(shí)現(xiàn)方面采用了VHDL 語(yǔ)言,以文本輸入作為設(shè)計(jì)輸入,主要運(yùn)用CASE 與PROCESS 語(yǔ)句,部分程序如下所示。

PROCESS( cmd_clk, cmd_sel) / /進(jìn)程,對(duì)cmd_clk 與cmd_sel 進(jìn)行變化捕捉。

BEGIN / /進(jìn)程開始。

IF cmd_clk'EVENT AND cmd_clk = '1' THEN / /捕捉時(shí)鐘信號(hào)上升沿觸發(fā)。

IF cmd_sel( 2) = '1' THEN / / cmd_sel( 2) = '1'時(shí), cmd_data[7. . 0]的輸出為數(shù)據(jù)模式

r_add_add < = cmd_data; / /數(shù)據(jù)賦值

ELSE / / cmd_sel( 2) = '0'時(shí), cmd_data[7. . 0]的輸出為命令模式

CASE r_add_add IS / /命令查詢

WHEN X"00" = > IF cmd_sel = "000" THEN r_DAT_DATA_A( 7 DOWNTO 0) < = cmd_data; - -

ELSIF cmd_sel = "001" THEN r_DAT_DATA_A( 11 DOWNTO 8) < = cmd_data( 3 DOWNTO 0) ;

END IF;

WHEN X"01" = > IF cmd_sel = "000" THEN r_DAT_DATA_B( 7 DOWNTO 0) < = cmd_data;

ELSIF cmd_sel = "001" THEN r_DAT_DATA_B( 11 DOWNTO 8) < = cmd_data( 3 DOWNTO 0) ; END IF;

WHEN X"02" = > IF cmd_sel = "000" THEN r_DAT_DATA_C( 7 DOWNTO 0) < = cmd_data;

ELSIF cmd_sel = "001" THEN r_DAT_DATA_C( 11 DOWNTO 8) < = cmd_data( 3 DOWNTO 0) ; END IF;

WHEN X"03" = > IF cmd_sel = "000" THEN r_DAT_DATA_D( 7 DOWNTO 0) < = cmd_data;

ELSIF cmd_sel = "001" THEN r_DAT_DATA_D( 11 DOWNTO 8) < = cmd_data( 3 DOWNTO 0) ; END IF;

……/ /省略

WHEN X"08" = > IF cmd_sel = "000" THEN r_HC74_DAT_DATA( 7 DOWNTO 0) < = cmd_data; - -

ELSIF cmd_sel = "001" THEN r_HC74_DAT_DATA( 15 DOWNTO 8) < = cmd_data; - -

ELSIF cmd_sel = "010" THEN r_HC74_DAT_DATA( 23 DOWNTO 16) < = cmd_data; END IF;

/ / cmd_sel[2. . 0]的后兩位作為數(shù)據(jù)位數(shù)的選擇,這里可選為8 位、16 位、24 位。

……/ /省略

WHEN OTHERS = > r_X9313_DATA < = cmd_data( 4 DOWNTO 0) ;

END CASE;

END IF;

END IF;

END PROCESS;

本程序是一個(gè)進(jìn)程,當(dāng)cmd_sel( 2) = '1'時(shí),cmd_data[7. . 0]作為數(shù)據(jù)傳輸。當(dāng)cmd_sel( 2) = '0'時(shí),cmd_data[7. . 0]作為命令選擇傳輸。cmd_sel( 1) 與cmd_sel( 0) ,作為發(fā)送數(shù)據(jù)位數(shù)選擇,這是由于不同的指令操作,需要不同的數(shù)據(jù)位數(shù),在這段程序中,有需要發(fā)送8 位數(shù)據(jù)的,有需要發(fā)送12 位的數(shù)據(jù),有需要發(fā)送16 位的數(shù)據(jù),還有需要發(fā)送24 位的數(shù)據(jù),這取決于驅(qū)動(dòng)的芯片所固定的數(shù)據(jù)位輸入格式要求。

2. 2 芯片驅(qū)動(dòng)模塊設(shè)計(jì)

芯片驅(qū)動(dòng)模塊的例化組件圖,如圖3 所示。

圖3 芯片驅(qū)動(dòng)模塊例化組件

圖3 是已經(jīng)封裝好的功能模塊,其內(nèi)部結(jié)構(gòu)如圖4 所示。

圖4 LTC2620 的接口例化組件圖

由此可知,該模塊內(nèi)部還可以有子模塊。分別為控制外圍三個(gè)芯片的驅(qū)動(dòng),它們是芯片LTC2620、芯片X9313、芯片HC574。這些子模塊只是一個(gè)接口,并非是一個(gè)真正的芯片,可以說(shuō)是一個(gè)接口函數(shù)以圖形化的方式來(lái)給調(diào)用,讓程序結(jié)構(gòu)更佳形象具體,其實(shí)它們都是通過(guò)VHDL 語(yǔ)言編程程序代碼而成的。圖4 的左邊是輸入接口,主要是與ARM 接口通信控制模塊( 圖2) 的接口連接,而右邊的是輸出接口,當(dāng)然這些輸出接口是FPGA 的I /O 引腳,這才能與真實(shí)的芯片相應(yīng)應(yīng)的引腳連接。

下面以芯片LTC2620 為例,說(shuō)明其驅(qū)動(dòng)過(guò)程。圖4 右上角是LTC2620 的接口例化組件,是由VHDL語(yǔ)言生成的,首先是VHDL 的實(shí)體部分,主要是定義端口及其屬性。

ENTITY LTC2620_comtrol IS

PORT(

clk5m : IN STD_LOGIC;

clr_n : IN STD_LOGIC;

DAT_DATA_A : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_B : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_C : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_D : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_E : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_F : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_G : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

DAT_DATA_H : IN STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

n_CS_LD : OUT STD_LOGIC;

SCK : OUT STD_LOGIC;

SDI : OUT STD_LOGIC) ;

END;

其中n_CS_LD、SCK、SDI 為輸出端口,是根據(jù)芯片LTC2620 的輸入引腳而設(shè)定的。芯片LTC2620 引腳圖如圖5 所示。

圖5 LTC2620 引腳圖

接口與引腳已經(jīng)連接好,但還需要仿真這三個(gè)引腳的工作時(shí)序。這就需要根據(jù)芯片LTC2620 手冊(cè)說(shuō)明來(lái)來(lái)模擬其時(shí)序以及其數(shù)據(jù)輸入格式,為4 位命令+ 4 位地址+ 12 位數(shù)據(jù)流,共20 位數(shù)據(jù),但數(shù)據(jù)一般以8 位為單位,即一個(gè)字節(jié),所以需要發(fā)送24 位數(shù)據(jù),其中16 位數(shù)據(jù)流的前4 位都需要作置零處理。LTC2620 時(shí)序圖如圖6 所示。

圖6 LTC2620 輸入引腳時(shí)序圖

數(shù)據(jù)輸入格式如圖7 所示。

圖7 輸入引腳數(shù)據(jù)格式圖

接著,使用VHDL 在其結(jié)構(gòu)體部分編寫LTC2620 時(shí)序,需要設(shè)計(jì)兩個(gè)進(jìn)程來(lái)完成,分別是PROCESS( clk5m,clr_n) 進(jìn)程和PROCESS( load_clk,clr_n,DAT_DATA_A) 進(jìn)程。

首先定義數(shù)據(jù)格式,分成三部分,COMMAND( C3 - C0) 、ADDRESS ( A3 - A0) 和DATA ( D11 -D0) ,一共為20 位,要分三個(gè)字節(jié)發(fā)送,即24 位。數(shù)據(jù)格式定義的VHDL 代碼:

CONSTANT CNT_COMMAMD_DATA : STD_LOGIC_VECTOR( 3 DOWNTO 0) : = "0011" ;

/ /COMMAND( C3 - C0)

SIGNAL ADDRESS_DATA : STD_LOGIC_VECTOR( 3 DOWNTO 0) ;

/ / ADDRESS( A3 - A0)

SIGNAL DAT_DATA: STD_LOGIC_VECTOR( 11 DOWNTO 0) ;

/ / DATA( D11 - D0)

根據(jù)圖6,對(duì)時(shí)序SCK、SDI、CS /LD 進(jìn)行定義:

SIGNAL r_n_CS_LD,r_SCK,r_SDI : STD_LOGIC;

內(nèi)部時(shí)鐘定義:

SIGNAL r_load, load_clk, load_en : STD_LOGIC;

再設(shè)定三個(gè)進(jìn)程來(lái)模擬圖7 的SCK、SDI、CS /LD 三個(gè)時(shí)序圖。

1) 進(jìn)程1 主要是通過(guò)內(nèi)部時(shí)鐘生成SCK 時(shí)序

代碼為:

PROCESS( clk5m, clr_n)

VARIABLE tp : INTEGER RANGE 0 TO 25;

BEGIN

IF clr_n = '0' THEN

tp: = 0; load_clk < = '0';

ELSIF clk5m'EVENT AND clk5m = '1' THEN

IF tp < 25 THEN

tp: = tp + 1; load_clk < = '1';

ELSE

tp: = 0; load_clk < = '0';

END IF;

END IF;

END PROCESS;

2) 進(jìn)程2 主要是設(shè)置LTC2620 的8 個(gè)輸出引腳VoutA - VoutH 與ADDRESS ( A3 - A0) 之間的對(duì)應(yīng)關(guān)系,ADDRESS,如表1 所示。

使用CASE 語(yǔ)句完成,代碼如下:

CASE state IS

WHEN 1 = > DAT_DATA < = DAT_DATA_B; ADDRESS_DATA < = "0001" ;

WHEN 2 = > DAT_DATA < = DAT_DATA_C; ADDRESS_DATA < = "0010" ;

WHEN 3 = > DAT_DATA < = DAT_DATA_D; ADDRESS_DATA < = " 0011" ; WHEN 4 = > DAT_DATA <

= DAT_DATA_E; ADDRESS_DATA < = "0100" ; WHEN 5 = > DAT_DATA < = DAT_DATA_F; ADDRESS_DATA <

= "0101" ; WHEN 6 = > DAT_DATA < = DAT_DATA_G; ADDRESS_DATA < = " 0110" ; WHEN 7 = > DAT_DATA

< = DAT_DATA_H; ADDRESS_DATA < = " 0111" ; WHEN OTHERS = > DAT_DATA < = DAT_DATA_B; ADDRESS_

DATA < = "0001" ; load_en < = '0';

END CASE;

3) 進(jìn)程3 主要是設(shè)置DATA ( D11 - D0) 的數(shù)據(jù)輸出,每次需發(fā)送24 位數(shù)據(jù),其中4 位無(wú)用上,給置0 處理,代碼如下:

IF r_load = '0' THEN

data( 23 DOWNTO 20) : = CNT_COMMAMD_DATA;

data( 19 DOWNTO 16) : = ADDRESS_DATA;

data( 15 DOWNTO 4 ) : = DAT_DATA;

data( 3 downto 0) : = "0000" ;

……/ /省略;

end IF;

3 結(jié)語(yǔ)

本文詳細(xì)介紹了使用VHDL 硬件描述語(yǔ)言,程序編寫過(guò)程,對(duì)兩個(gè)功能模塊進(jìn)行基于FPGA 的嵌入式系統(tǒng)程序開發(fā)。實(shí)現(xiàn)了ARM 接口通信控制模塊、芯片驅(qū)動(dòng)模塊的程序設(shè)計(jì),有效地解決了芯片間之間的通信與驅(qū)動(dòng)的問(wèn)題,以FPGA 為核心,有效地實(shí)現(xiàn)芯片間的相互協(xié)作,為數(shù)字存儲(chǔ)示波器數(shù)據(jù)采樣提供重要的可靠性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

近日,一則關(guān)于 AI 算力領(lǐng)域的消息引發(fā)行業(yè)震動(dòng)!據(jù)科技網(wǎng)站 The Information 援引四位知情人士爆料,中國(guó)科技巨頭阿里巴巴與百度已正式將自研芯片應(yīng)用于 AI 大模型訓(xùn)練,打破了此前對(duì)英偉達(dá)芯片的單一依賴。

關(guān)鍵字: AI 算力 阿里 百度 芯片 AI模型

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會(huì)、上海市發(fā)展和改革委員會(huì)、上海市商務(wù)委員會(huì)、上海市教育委員會(huì)、上海市科學(xué)技術(shù)委員會(huì)指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會(huì)展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動(dòng)駕駛

9月1日消息,繼小鵬、零跑后,現(xiàn)在小米汽車也宣布了8月的交付量。

關(guān)鍵字: 小米汽車 芯片

當(dāng)?shù)貢r(shí)間 8 月 22 日,美國(guó)芯片制造商英特爾公司宣布與美國(guó)聯(lián)邦政府達(dá)成協(xié)議,后者將向英特爾普通股投資 89 億美元,以每股 20.47 美元的價(jià)格收購(gòu) 4.333 億股英特爾普通股,相當(dāng)于該公司 9.9% 的股份。

關(guān)鍵字: 英特爾 半導(dǎo)體 芯片

在當(dāng)今數(shù)字化時(shí)代,人工智能(AI)和高性能計(jì)算(HPC)的迅猛發(fā)展對(duì) GPU 芯片的性能提出了極高要求。隨著 GPU 計(jì)算密度和功耗的不斷攀升,散熱問(wèn)題成為了制約其性能發(fā)揮的關(guān)鍵因素。傳統(tǒng)的風(fēng)冷方案已難以滿足日益增長(zhǎng)的散...

關(guān)鍵字: 人工智能 高性能計(jì)算 芯片

8月20日消息,博主數(shù)碼閑聊站暗示,9月底大概率只有小米16系列會(huì)亮相,其它驍龍8 Elite 2旗艦、天璣9500旗艦新品都將排到10月份,新機(jī)大亂斗會(huì)在國(guó)慶假期之后開始。

關(guān)鍵字: 小米雷軍 芯片

8月21日消息,據(jù)媒體報(bào)道,英偉達(dá)宣布將自研基于3nm工藝的HBM內(nèi)存Base Die,預(yù)計(jì)于2027年下半年進(jìn)入小規(guī)模試產(chǎn)階段,此舉旨在彌補(bǔ)其在HBM領(lǐng)域的技術(shù)與生態(tài)短板。

關(guān)鍵字: 英偉達(dá) 黃仁勛 芯片 顯卡

繼尋求收購(gòu)英特爾10%的股份之后,近日又有消息稱,特朗普政府正在考慮通過(guò)《芯片法案》資金置換股權(quán)的方式,強(qiáng)行收購(gòu)美光、三星、臺(tái)積電三大芯片巨頭的股份。若此舉落地,美國(guó)政府將從“政策扶持者”蛻變?yōu)椤爸苯庸蓶|”,徹底重塑全球...

關(guān)鍵字: 芯片 半導(dǎo)體

在集成電路設(shè)計(jì)流程中,網(wǎng)表作為連接邏輯設(shè)計(jì)與物理實(shí)現(xiàn)的關(guān)鍵橋梁,其分模塊面積統(tǒng)計(jì)對(duì)于芯片性能優(yōu)化、成本控制和資源分配具有重要意義。本文將詳細(xì)介紹如何利用 Python 實(shí)現(xiàn)網(wǎng)表分模塊統(tǒng)計(jì)面積的功能,從網(wǎng)表數(shù)據(jù)解析到面積計(jì)...

關(guān)鍵字: 網(wǎng)表 芯片 分模塊

8月19日消息,封禁4個(gè)多月的H20為何突然又被允許對(duì)華銷售,這其實(shí)是美國(guó)設(shè)計(jì)好的。

關(guān)鍵字: 英偉達(dá) 黃仁勛 芯片 顯卡
關(guān)閉