亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Avalon總線TLC5628自定義IP核的開(kāi)發(fā)

        2008-04-12 00:00:00史雪峰傅華明阿日貢巴彥爾
        現(xiàn)代電子技術(shù) 2008年4期

        摘 要:簡(jiǎn)要介紹SoPC及Avalon總線,詳細(xì)闡述基于Avalon總線TLC5628自定義IP核的開(kāi)發(fā)流程。在軟硬件設(shè)計(jì)通過(guò)測(cè)試后利用SoPC Builder提供的“元件編輯器”進(jìn)行TLC5628自定義IP核的封裝和發(fā)布。TLC5628自定義IP核的開(kāi)發(fā)及發(fā)布對(duì)其他用戶在使用TLC5628進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí)能明顯縮短研發(fā)周期、降低工作強(qiáng)度。此外,對(duì)開(kāi)發(fā)較復(fù)雜的IP核具有一定的借鑒作用。

        關(guān)鍵詞:可編程片上系統(tǒng);Avalon總線;自定義IP核;TLC5628數(shù)/模轉(zhuǎn)換器

        中圖分類號(hào):

        文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004—373X(2008)04—084—03

        1 SoPC與IP核

        可編程片上系統(tǒng)(System on Programmable Chip,SoPC),是Altera公司提出的一種靈活、高效的SoC解決方案。他將處理器、存儲(chǔ)器、I/O口、LVDS、CDR等系統(tǒng)設(shè)計(jì)需要的功能模塊集成到一個(gè)可編程器件上,構(gòu)成一個(gè)可編程的片上系統(tǒng)。他的實(shí)質(zhì)是SoC(System on Chip)技術(shù),與其他SoC技術(shù)相比,他的特點(diǎn)在于可編程性。

        SoPC設(shè)計(jì)的關(guān)鍵技術(shù)之一是IP核(Intellectual Prop—erty Core),即知識(shí)產(chǎn)權(quán)核。IP核是指將一些在數(shù)字電路中常用但比較復(fù)雜的功能塊,如SDRAM控制器、PCI接口都設(shè)計(jì)成參數(shù)可修改的模塊,供用戶直接調(diào)用。IP核有3個(gè)來(lái)源:EDA廠商提供、第三方提供、用戶自定義。一般,EDA廠商及第三方提供的IP核都是功能上比較通用,但在實(shí)際SoPC設(shè)計(jì)過(guò)程中,用戶常有特殊需求,這就要求用戶用自定義邏輯實(shí)現(xiàn)所需的功能,因此在SoPC設(shè)計(jì)中,如何靈活地加入用戶自定義邏輯就顯得尤為重要。

        2 Avalon總線

        Avalon交換式總線是由Altera開(kāi)發(fā)的一種專用的內(nèi)部連線技術(shù)。Avalon交換式總線由SoPC Builder自動(dòng)生成,是一種理想的用于系統(tǒng)處理器和外設(shè)之間的內(nèi)聯(lián)總線,其定義的內(nèi)聯(lián)線策略使得任何一個(gè)Avalon總線上的主外設(shè)都可以與任何一個(gè)從外設(shè)溝通。

        Avalon接口定義Avalon外設(shè)與Avalon交換結(jié)構(gòu)之間的連接。Avalon接口是一個(gè)靈活的接口,工程師可以只使用系統(tǒng)所需的幾個(gè)信號(hào)進(jìn)行數(shù)據(jù)傳輸。Avalon接口的一些顯著特性如下:

        (1)使用獨(dú)立的地址、數(shù)據(jù)、控制線,提供與片上邏輯簡(jiǎn)單的接口;

        (2)支持最高達(dá)128位的數(shù)據(jù)寬度,支持不是2的偶數(shù)冪的數(shù)據(jù)寬度;

        (3)支持同步操作,所有Avalon外設(shè)的接口與Aval-on交換結(jié)構(gòu)的時(shí)鐘同步,不需要復(fù)雜的握手/應(yīng)答機(jī)制;

        (4)支持動(dòng)態(tài)地址對(duì)齊,可處理具有不同數(shù)據(jù)寬度的外設(shè)之間的數(shù)據(jù)傳輸;

        (5)接口協(xié)議簡(jiǎn)單;資源占用少;

        (6)Avalon接口性能很高,可達(dá)到每個(gè)時(shí)鐘傳輸1次。

        Avalon總線為用戶提供了非常友好的接口,使系統(tǒng)搭建過(guò)程中的一些細(xì)節(jié)問(wèn)題得到屏蔽,大大減輕系統(tǒng)搭建的工作量。此外,Avalon總線的“從外設(shè)仲裁”機(jī)制,消除了帶寬瓶頸,實(shí)現(xiàn)了無(wú)與倫比的系統(tǒng)吞吐量。

        3 用戶自定義IP核的開(kāi)發(fā)流程

        用戶自定義IP核按照對(duì)Avalon總線操作的不同可分為Avalon Master外設(shè)、Avalon Slaver外設(shè)及AValonStreaming外設(shè)。用戶開(kāi)發(fā)的外設(shè)大多為Avalon Slaver外設(shè),Avalon Master和Avalon Streaming外設(shè)的開(kāi)發(fā)比Avalon Slaver外設(shè)要復(fù)雜,但開(kāi)發(fā)流程相同。一個(gè)典型的Avalon外設(shè)的開(kāi)發(fā)步驟如下:

        (1)規(guī)劃元件的硬件功能。如果采用微控制器來(lái)控制該元件,則規(guī)劃訪問(wèn)該硬件的應(yīng)用程序接口(API);

        (2)在硬件和軟件要求的基礎(chǔ)上,定義一個(gè)恰當(dāng)?shù)腁valon接口(一般為Avalon從端口);

        (3)使用硬件描述語(yǔ)言描述硬件邏輯。一個(gè)典型元件的硬件架構(gòu)一般3部分組成:接口模塊(avalon in—terrace)作為頂層模塊,定義總線接口信號(hào);寄存器文件模塊(register file)完成該元件與外部信號(hào)進(jìn)行通信,提供訪問(wèn)與控制元件的邏輯界面;行為模塊(task logic)實(shí)現(xiàn)元件的硬件功能。片上總線Avalon從端口的信號(hào)都不是必須的,一個(gè)典型的Avalon從端口所包含的信號(hào)如表1所示。

        (4)單獨(dú)驗(yàn)證元件的硬件功能;

        (5)寫(xiě)用于描述寄存器的C頭文件來(lái)為軟件定義硬件寄存器映像;

        (6)寫(xiě)元件的驅(qū)動(dòng)軟件;

        (7)把通過(guò)測(cè)試的源代碼使用元件編輯器封裝硬件HDL和軟件文件,完成元件定制。

        4 TLC5628自定義IP核的開(kāi)發(fā)

        4.1 TLC5628 D/A轉(zhuǎn)換器

        TLC5628是TI公司生產(chǎn)的8位8通道串行D/A轉(zhuǎn)換器,采用5 V單電源供電,輸出電壓范圍可編程。輸出電壓編程范圍由RNG位控制,當(dāng)RNG位為1時(shí),輸出電壓范圍為0~2×Yra;當(dāng)RNG位為O時(shí),輸出電壓范圍為O~Vref。A2AIA0位表示D/A輸出通道選擇,000~111分別對(duì)應(yīng)第1~8通道,D7~DO是輸出數(shù)據(jù)位。TLC5628D/A轉(zhuǎn)換器時(shí)序圖見(jiàn)圖1。

        4.2硬件部分構(gòu)建

        4.2.1接口模塊的設(shè)計(jì)

        根據(jù)TLC5628 D/A的功能描述,該模塊所需的Aval—on總線輸入信號(hào)為chipselect,CLK,address,write,write—data及reset信號(hào),是一個(gè)典型的只向Avalon總線寫(xiě)數(shù)據(jù)的模塊。而模塊輸出則為dae_clk,dac_data,dac_load及dac_ldac信號(hào),分別對(duì)應(yīng)TLC5628 D/A的串行輸入時(shí)鐘,串行輸入數(shù)據(jù),串行載入及更新輸出控制,其對(duì)應(yīng)框圖(也即TLC5628 D/A與Avalon總線的接口圖)如圖2所示,該接口模塊定義了總線接口信號(hào),作為頂層模塊。

        4.2.2寄存器文件模塊

        寄存器文件模塊實(shí)現(xiàn)該元件與外部信號(hào)進(jìn)行通信,提供了訪問(wèn)與控制元件的邏輯界面。

        在寄存器文件中,Avalon總線的地址信號(hào)(address)為2位,address為00表示分頻寄存器,用以產(chǎn)生串行D/A的輸入時(shí)鐘,32位分頻寄存器數(shù)據(jù)位只寫(xiě);address為01表示數(shù)據(jù)寄存器,32位數(shù)據(jù)寄存器數(shù)據(jù)位只可寫(xiě),address為10和11位保留。

        Avalon總線數(shù)據(jù)信號(hào)在chipselect和write信號(hào)的控制下,向寄存器寫(xiě)入分頻數(shù)和數(shù)據(jù)位。當(dāng)向分頻寄存器寫(xiě)入數(shù)據(jù)時(shí),32位數(shù)據(jù)表示分頻數(shù);當(dāng)向數(shù)據(jù)寄存器寫(xiě)入32位數(shù)據(jù)時(shí),保留后12位數(shù)據(jù)(8位數(shù)據(jù)位+RNG位+3位通道選擇位)。該控制過(guò)程由同步有限狀態(tài)機(jī)實(shí)現(xiàn)。

        4.2.3 行為模塊的實(shí)現(xiàn)

        行為模塊實(shí)現(xiàn)元件的硬件功能,接收來(lái)自Avalon總線的數(shù)據(jù),在寫(xiě)使能信號(hào)的控制下,向TLC5628 D/A輸入寄存器寫(xiě)入通道選擇及數(shù)據(jù)位。數(shù)據(jù)的發(fā)送及存儲(chǔ)由同步有限狀態(tài)機(jī)實(shí)現(xiàn)。在寫(xiě)數(shù)據(jù)信號(hào)使能時(shí),輸入數(shù)據(jù)在串行時(shí)鐘的控制下依次寫(xiě)入數(shù)據(jù)寄存器,當(dāng)12位數(shù)據(jù)全部寫(xiě)入后,內(nèi)部標(biāo)志位dac_dat_send_finish置位,數(shù)據(jù)發(fā)送完成,進(jìn)入數(shù)據(jù)鎖存狀態(tài),此時(shí)置位Load信號(hào)(LDAC信號(hào)一直為低),DAC更新輸出數(shù)據(jù)。在QuartusⅡ6.0環(huán)境下,基于EPIC6Q240C8器件的仿真波形如圖3所示。

        4.3軟件設(shè)計(jì)

        軟件設(shè)計(jì)包括寄存器頭文件的設(shè)計(jì)、驅(qū)動(dòng)軟件及測(cè)試程序的設(shè)計(jì)。寄存器頭文件avalon_tlc5628_regs.h定義了對(duì)TLC5628的寄存器進(jìn)行寫(xiě)操作的宏。IORD和IOWR是硬件抽象層(HAL)提供的2個(gè)訪問(wèn)寄存器的C語(yǔ)言宏。下面2行代碼分別是對(duì)分頻寄存器和數(shù)據(jù)寄存器的寫(xiě)操作宏。

        #define IOWR_AVALON_TLC5628_CLOCK_DIVIDER(base.data)IOWR(base,O,data)

        #define IOWR_AVALON_TLC5628_DATA(base.data) IOWR(base,1,data)

        驅(qū)動(dòng)軟件包括avalon_tlc5628.h和avalon_tic5628.c文件。avalon-tic5628.h定義了驅(qū)動(dòng)函數(shù)的原型及常量,avalon_tlc5628.c則實(shí)現(xiàn)驅(qū)動(dòng)函數(shù)的功能。avalon—tlc5628.c中定義了2個(gè)函數(shù),一個(gè)是TLC5628初始化函數(shù)avalon_tic5628_init(),完成TLC5628初始化,設(shè)置串行時(shí)鐘、通道選擇、電壓輸出范圍編程及數(shù)據(jù)初始化;另一個(gè)是TLC5628輸出數(shù)據(jù)更新函數(shù)avalon tlc5628_update_data(),用以改變輸出的通道數(shù)和電壓值。

        測(cè)試程序調(diào)用驅(qū)動(dòng)函數(shù)對(duì)硬件設(shè)計(jì)和軟件設(shè)計(jì)進(jìn)行測(cè)試。如:avalon_tlc5628_init(TLC5628_BASE,250,OxO),設(shè)置TLC5628的串行輸入時(shí)鐘為100 kHz;avalon_tlc5628_update_data(TLC5628_BASE,0x340),設(shè)置TLC5628的第二輸出通道DACB輸出的電壓為2×VREF/4。

        4.4封裝和發(fā)布

        在軟件和硬件設(shè)計(jì)完成后,通過(guò)SoPC Builder提供的“元件編輯器”進(jìn)行封裝。當(dāng)HDL文件加入后,指定接口模塊為頂層模塊,同時(shí)指定端口說(shuō)明中的信號(hào)類型。如CLK被指定為“clk”類型,address被指定為“address”類型,dac_lclk,dac_load,dac_data及dac_ldac被指定為“ex—port”類型。之后,SoPC Builder會(huì)在當(dāng)前目錄下生成tlc5628_avalon_interface子目錄。子目錄中包含class.ptf文件、腳本文件及源代碼文件。這樣,TLC5628 IP核的封裝和發(fā)布就完成,其他用戶也就可以共享TLC5628 IP核。

        5 結(jié) 語(yǔ)

        在SoPC設(shè)計(jì)中,設(shè)計(jì)人員可以靈活方便地加入IP核,減輕工程師開(kāi)發(fā)負(fù)擔(dān),避免重復(fù)勞動(dòng)。本文通過(guò)介紹基于Avalon總線TLC5628自定義IP核的開(kāi)發(fā)詳細(xì)闡述SoPC設(shè)計(jì)環(huán)境下用戶自定義IP核的開(kāi)發(fā)流程,對(duì)于開(kāi)發(fā)較復(fù)雜IP核有一定的借鑒作用。

        91大神蜜桃视频在线观看| 精品一区二区av天堂| 曰本亚洲欧洲色a在线| 特级黄色大片性久久久| 未发育成型小奶头毛片av| 无码人妻丰满熟妇区五十路百度 | 国产亚洲精品综合一区| 久久中文字幕人妻熟av女蜜柚m| 欧洲一区在线观看| 人妻丰满熟妇一二三区| 亚洲av综合色区无码另类小说| 国产精选污视频在线观看| 欧美午夜一区二区福利视频| 尤物蜜芽福利国产污在线观看 | 亚洲综合在线一区二区三区| 亚洲av高清一区二区在线观看| 亚洲无线码一区二区三区| 中文字幕av日韩精品一区二区| 午夜视频网址| 免费福利视频二区三区| 国产麻豆久久av入口| 大又大粗又爽又黄少妇毛片| 亚洲天堂成人在线| 久久99久久99精品免视看国产成人 | 亚洲一区二区三区国产精品 | 国产亚洲一区二区毛片| 中文人妻av久久人妻水蜜桃| 亚洲精品久久久无码av片软件| 亚洲AV秘 无套一区二区三区| 久久综合国产精品一区二区| 男ji大巴进入女人的视频小说| 亚洲av无码精品色午夜蛋壳| 最新国产在线精品91尤物| 无码精品国产午夜| 国产精品人妻熟女男人的天堂| 一本色道无码道dvd在线观看| 成人xx免费无码| 人妻体体内射精一区中文字幕| 成人女同av在线观看网站| 久久综合精品国产一区二区三区无码| 久久中文字幕久久久久|