日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]轉(zhuǎn)載自:http://blog.csdn.net/lg2lh 我們之前介紹了如何使用Modelsim SE進(jìn)行仿真和利用do文件的仿真方法,但是其中待仿真的模塊是我們自己編寫(xiě)的Verilog模塊,但

轉(zhuǎn)載自:http://blog.csdn.net/lg2lh 我們之前介紹了如何使用Modelsim SE進(jìn)行仿真和利用do文件的仿真方法,但是其中待仿真的模塊是我們自己編寫(xiě)的Verilog模塊,但是在實(shí)際工作中,我們的設(shè)計(jì)中會(huì)經(jīng)常用到FPGA廠商給我們提供的現(xiàn)成模塊—IP核,這些模塊我們看到不到源代碼,只知道IP核的端口信息,當(dāng)我們要仿真的時(shí)候,同樣要向Modelsim提供這些IP核的信息,而FPGA廠商也會(huì)給我們提供相應(yīng)的IP核的編譯庫(kù)文件,我們?nèi)绻O(shè)計(jì)中包含這些IP核,就必須在仿真之前,將這些庫(kù)文件編譯到Moldelsim?的庫(kù)中去。其實(shí)IP核只是我們要添加的其中一種庫(kù)(MegaFunction),除此之外,我們還需要添加lpm庫(kù)(設(shè)計(jì)中如果調(diào)用了lpm原件,需要添加此庫(kù)),還有原語(yǔ)庫(kù)(primitive),器件庫(kù)(我們用的是cyclone),當(dāng)然同一種庫(kù),還會(huì)分Verilog版和VHDL版。這里只介紹Verilog版相關(guān)庫(kù)文件的添加,VHDL版的,方法類似,大家只需更換相應(yīng)的VHDL編譯文件即可。 1.1.1.建立仿真庫(kù)

我們將IP核等相關(guān)庫(kù)文件編譯到Modelsim中后,以后凡是設(shè)計(jì)中調(diào)用到IP核時(shí),我們就不用再重復(fù)添加了。我們看一下如何在Modelsim中查看我們已經(jīng)編譯好的庫(kù),打開(kāi)modelsim,如下圖,會(huì)默認(rèn)彈出名為library的窗口,窗口中的內(nèi)容就有我們已經(jīng)添加的庫(kù),一部分是Modelsim自帶的庫(kù)。

下面我們開(kāi)始準(zhǔn)備添加相關(guān)庫(kù)文件。

第一步,首先在新建一個(gè)文件夾,用來(lái)存放我們編譯后的庫(kù)文件,這里命名為altera_lib,我們這里存放到了“C:modeltech64_10.2c”路徑下,然后在altera_lib下新建四個(gè)文件夾lpm、altera_mf、altera_primitive、cyclone,如下圖,后面我們會(huì)建立四個(gè)對(duì)應(yīng)且相同名稱的庫(kù)。

第二步,建立庫(kù),我們以添加IP核庫(kù)文件(altera_mf)為例進(jìn)行介紹。首先打開(kāi)Modelsim,選擇菜單?File—>New—>Library。這里我們介紹一下“庫(kù)”的概念,庫(kù)實(shí)際就用來(lái)存放編譯結(jié)果的一個(gè)文件夾,他最終都和我們實(shí)際硬盤(pán)上的物理空間的文件夾是一一對(duì)應(yīng)的,在第五章我們提到過(guò)工作庫(kù)(work庫(kù)),存放的是我們自己設(shè)計(jì)文件的編譯結(jié)果。

第三步,彈出新建庫(kù)的窗口,我們選擇第三項(xiàng)“a new library and a logical mapping to it”,即創(chuàng)建一個(gè)新庫(kù),并映射到我們硬盤(pán)的相應(yīng)路徑下。Library Name填寫(xiě)相應(yīng)的庫(kù)名稱“altera_mf”,Library Physical Name中填寫(xiě)我們第一步中新建庫(kù)對(duì)應(yīng)文件夾的存放路徑。這里altera_mf對(duì)應(yīng)文件夾路徑為“C:modeltech64_10.2caltera_libaltera_mf”。然后點(diǎn)擊確定。

第四步,在modelsim的library窗口下,大家可以看到新建的altera_mf庫(kù),不過(guò)此時(shí)庫(kù)文件為空的。如下圖。

第五步,編譯相應(yīng)文件到庫(kù)中,我們這里需要將相關(guān)IP核文件編譯到altera_mf庫(kù)中去。菜單欄選擇compile—>compile…,彈出如下窗口,首先選擇待編譯的庫(kù)library,這里選擇我們剛新建的庫(kù)“altera_mf”,然后找到在quartus安裝目錄下,找到Altera提供的關(guān)于altera IP核的編譯文件altera_mf.v,路徑為“altera13.1quartusedasim_lib”。最后點(diǎn)擊compile,完成編譯后,關(guān)閉。此時(shí)可以看到library窗口下,altera_mf庫(kù)不再是一個(gè)空的庫(kù)。

第六步,重復(fù)2-5步,依次建立lpm、altera_primitive、cyclone三個(gè)庫(kù)。對(duì)應(yīng)的編譯文件依次是220model.v(lpm)、altera_primitives.v(altera_primitive)、cycloneiv_atoms.v(cyclone庫(kù),這里我們只添加了cyclone4的庫(kù)文件)。添加完成后可以在library中看到四個(gè)庫(kù),如下圖。

第七步,找到Modelsim安裝路徑下的modelsim.ini文件,去除文件的只讀屬性,然后打開(kāi), 將上一步中的四個(gè)庫(kù)的名稱及路徑以下圖的方式,添加到57行后。關(guān)閉文件,再設(shè)置為只讀屬性。注意路徑是反斜杠。

至此,我們已經(jīng)將altera相關(guān)的庫(kù)文件添加到了Modelsim SE中了。后面,我們將介紹如何通過(guò)do文件啟動(dòng)仿真。

1.1.2.??原理介紹

??????介紹PLL IP核建立之前,我們先講一下PLL的基本原理。PLL是Phase-Locked Loop的縮寫(xiě),中文含意為鎖相環(huán)。PLL基本上是一個(gè)閉環(huán)的反饋控制系統(tǒng),它可以使PLL輸出與一個(gè)參考信號(hào)保持固定的相位關(guān)系。PLL一般由鑒相器、電荷放大器(Charge Pump)、低通濾波器、(電)壓控振蕩器、以及某種形式的輸出轉(zhuǎn)換器組成。為了使得PLL的輸出頻率是參考時(shí)鐘的倍數(shù)關(guān)系,在PLL的反饋路徑或(和)參考信號(hào)路徑上還可以放置分頻器。PLL的功能示意圖如下圖所示:

首先大家要理解什么是壓控振蕩器(VCO),壓控振蕩器實(shí)際就是一個(gè):頻率—電壓轉(zhuǎn)換器。當(dāng)VCO輸入的電壓變化時(shí),對(duì)應(yīng)輸出的頻率也會(huì)發(fā)生變化。PLL的工作原理就是將VCO輸出的頻率經(jīng)過(guò)分頻器返回到輸入端,將分頻信號(hào)與原始輸入的信號(hào)鑒相,鑒相器輸出又通過(guò)電壓放大器和低通濾波器并轉(zhuǎn)換成電壓,這樣就調(diào)整了VCO的輸入電壓,從而調(diào)整了VCO的輸出頻率,然后這樣循環(huán)調(diào)整,最終將輸出頻率鎖定。

1.1.3.??建立IP核

第一步:按照2.4.2節(jié)的方法新建pll_test工程,這里我們就不重復(fù)了,新建好工程以后。選擇菜單欄Tools—>MegaWizard Plug-In Manager。其中MegaWizard就是Quartus的IP核建立向?qū)Чぞ?,我們通過(guò)這個(gè)工具建立我們需要的IP核。

第二步:彈出如下對(duì)話框,選擇“Create a new custom megafunction variation”創(chuàng)建一個(gè)新的IP核。點(diǎn)擊Next。

第三步:彈出如下對(duì)話框,首先介紹一下IP核搜索欄,我們可以通過(guò)這個(gè)地方快速查找到需要的IP核的位置,我們輸入pll,便可以迅速找到PLL的IP核,ALTPLL,如下圖。這里生成IP核文件,我們選擇為Verilog。

第四步:點(diǎn)擊IP核存放路徑后面的,選擇存放路徑,如下圖,我們存放至src/ip文件夾下,這里必須要在文件名處填寫(xiě)IP核對(duì)應(yīng)輸出文件的名稱,這里我們定義為pll.v。然后點(diǎn)擊“打開(kāi)”,回到第三步窗口,繼續(xù)Next。

第五步:此時(shí)會(huì)彈出PLL IP核的配置窗口。首先設(shè)置器件的速度等級(jí),我們所用器件速度等級(jí)為8。速度等級(jí)數(shù)值越小,對(duì)應(yīng)的FPGA速度越快。然后設(shè)置PLL的輸入頻率,這里我們?cè)O(shè)置為50MHz,其他默認(rèn)。點(diǎn)擊Next。

第六步:彈出如下對(duì)話框,保持默認(rèn)選項(xiàng),即創(chuàng)建一個(gè)異步輸入信號(hào),注意這個(gè)復(fù)位信號(hào)是高電平有效的,創(chuàng)建一個(gè)PLL鎖定locked信號(hào)。繼續(xù)Next。

第七步:一直點(diǎn)擊Next,中間過(guò)程配置保持默認(rèn),直到選項(xiàng)卡為Output Clocks—>clk c0時(shí),表示對(duì)pll輸出時(shí)鐘進(jìn)行配置,clk c0的“use this clock”選項(xiàng)是默認(rèn)選上的。選擇“Enter output clock frequency”,在“Requested Settings”下設(shè)置好期望輸出的時(shí)鐘頻率,這里clk c0設(shè)置為100MHz。然后點(diǎn)擊Next。

第八步:彈出同樣窗口,這里我們需要,手動(dòng)選擇“use this clock”,同樣方法創(chuàng)建clk c1?為40MHz時(shí)鐘,clk c2為10MHz時(shí)鐘。c3、c4不啟用。

第九步:繼續(xù)Next,中間過(guò)程保持默認(rèn),一直到Summary選項(xiàng)下時(shí),可以選擇實(shí)際輸出的文件,這里pll.v是必須的,這個(gè)文件是將來(lái)我們仿真時(shí),IP的編譯文件。其次,我們選擇pll_inst文件,這個(gè)文件為pll的例化文件,我們可以直接從該文件中將pll的例化結(jié)果拷貝到相應(yīng)的應(yīng)用邏輯中。最后點(diǎn)擊Finish。

第十步:調(diào)用IP核,首先新建頂層文件,pll_test.v文件,參考src文件夾下源文件。找到src/ip路徑下pll_inst.v文件,打開(kāi)。將其中的例化例子拷貝至頂層文件中。根據(jù)頂層IO信息調(diào)整pll的例化端口。代碼如下。

1.??module?pll_test

2.??????(

3.???????input????????????????? i_clk??????? ,//模塊輸入時(shí)鐘?,50mhz

4.???????input????????????????? i_rst_n????? ,//復(fù)位信號(hào),低電平有效

5.???????output???????????????? o_clk_100MHz ,????//100MHz?時(shí)鐘輸出?????

6.???????output???????????????? o_clk_10MHz? ,????//40MHz?時(shí)鐘輸出????????????????????

7.???????output???????????????? o_clk_40MHz? ,????//10MHz?時(shí)鐘輸出

8.???????output???????????????? o_led_done????????//LED亮,時(shí)鐘LOCK????????

9.??????);

10.?????wire?????????????????? w_pll_lock?? ;

11.?????pll?? ??? pll_inst (

12.???.areset?????? ??????????????( !i_rst_n????????? ),

13.???.inclk0???????????????????? ( i_clk???????????? ),

14.???.c0???????????????????????? ( o_clk_100MHz????? ),

15.???.c1???????????????????????? ( o_clk_10MHz?????? ),

16.???.c2???????????????????????? ( o_clk_40MHz?????? ),

17.???.locked???????????????????? ( w_pll_lock??????? )

18.?);

19.?assign????? o_led_done? =!w_pll_lock;? ?????????

20.?endmodule

至此,我們完成了整個(gè)IP核建立及調(diào)用過(guò)程,下一節(jié)我們介紹IP核的仿真。

1.1.4.??啟動(dòng)仿真

2.10.1節(jié)中已建立好仿真庫(kù),以后再仿真任何IP核時(shí),都不用再重復(fù)2.10.1節(jié)的操作?,F(xiàn)在,我們只需要簡(jiǎn)單修改一下do文件的內(nèi)容,就可以直接通過(guò)do文件啟動(dòng)仿真了。下面是本節(jié)的sim.do文件內(nèi)容。

21.?vlib?work

22.?vmap?work work

23.?vlog? ../sim/*.v

24.?vlog? ../src/*.v

25.?vlog? ../src/ip/pll.v

26.?vsim?-t ps?-novopt-L lpm? -L altera_mf -L cyclone?? -L altera_primitive?? work.tb_pll_test

可以看出,本節(jié)的sim.do文件的vsim指令后比我們之前實(shí)驗(yàn)的vsim指令多了幾個(gè)選項(xiàng)-L lpm -L altera_mf -L cyclone-L altera_primitive,這幾個(gè)選項(xiàng)實(shí)際就把我們2.10.1節(jié)中建立的4個(gè)庫(kù),添加到我們的仿真中去,-L?表示庫(kù),緊跟著的是相應(yīng)的庫(kù)的名稱。其次-t表示仿真時(shí)間單位,這里我們需要將仿真的時(shí)間單位調(diào)整為ps,否則PLL仿真沒(méi)有波形。需要注意的是在編譯IP核的生成文件時(shí),只編譯pll.v即可,我們之前生成的pll_inst.v文件不要編譯。否則會(huì)報(bào)錯(cuò)。

修改完上述幾項(xiàng)后,我們?cè)匐p擊modelsim_run.bat文件,我們就可以啟動(dòng)仿真,并看到我們的放真波形。

本站聲明: 本文章由作者或相關(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)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

中國(guó),上?!?026年3月26日——低功耗可編程領(lǐng)域的領(lǐng)導(dǎo)者,萊迪思半導(dǎo)體(NASDAQ: LSCC)今日宣布正式加入英偉達(dá)(NVIDIA) Halos AI系統(tǒng)檢測(cè)實(shí)驗(yàn)室生態(tài)體系。該實(shí)驗(yàn)室是首個(gè)獲得美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)認(rèn)...

關(guān)鍵字: 物理人工智能 傳感器 FPGA

在工業(yè)自動(dòng)化的“神經(jīng)網(wǎng)絡(luò)”中,EtherCAT憑借其獨(dú)特的“飛過(guò)處理”機(jī)制,已成為實(shí)時(shí)控制領(lǐng)域的王者。不同于傳統(tǒng)以太網(wǎng)的存儲(chǔ)轉(zhuǎn)發(fā),EtherCAT數(shù)據(jù)幀在經(jīng)過(guò)每個(gè)從站時(shí),硬件直接從中提取數(shù)據(jù)并插入響應(yīng),這種“邊飛邊修”的...

關(guān)鍵字: EtherCAT FPGA 總線

在復(fù)雜的SoC芯片設(shè)計(jì)流程中,硬件與軟件的“割裂”往往是導(dǎo)致項(xiàng)目延期的元兇。當(dāng)RTL代碼還在仿真階段時(shí),軟件團(tuán)隊(duì)只能基于指令集模擬器(ISS)進(jìn)行開(kāi)發(fā),不僅速度慢如蝸牛,且無(wú)法捕捉真實(shí)硬件的時(shí)序細(xì)節(jié)。此時(shí),F(xiàn)PGA原型驗(yàn)...

關(guān)鍵字: SoC 硬件加速 FPGA

在工業(yè)4.0浪潮中,邊緣計(jì)算網(wǎng)關(guān)正成為連接物理世界與數(shù)字世界的核心樞紐。面對(duì)多路傳感器產(chǎn)生的海量數(shù)據(jù)洪流,傳統(tǒng)單芯片架構(gòu)已難以滿足實(shí)時(shí)性與算力的雙重需求。NVIDIA Jetson與FPGA的異構(gòu)組合,通過(guò)"前端FPGA...

關(guān)鍵字: 邊緣計(jì)算 NVIDIA Jetson FPGA

在高速網(wǎng)絡(luò)通信領(lǐng)域,F(xiàn)PGA憑借其并行處理能力成為實(shí)現(xiàn)以太網(wǎng)MAC(媒體訪問(wèn)控制)層的理想平臺(tái)。然而,面對(duì)1G甚至10Gbps的線速流量,傳統(tǒng)的“軟件式”逐包處理早已力不從心。構(gòu)建高效的包處理流水線(Packet Pro...

關(guān)鍵字: 以太網(wǎng) MAC FPGA

在FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理(DSP)算法時(shí),DSP Slice作為專用硬件資源,其利用效率直接影響系統(tǒng)性能與成本。本文聚焦乘加運(yùn)算(MAC)的優(yōu)化實(shí)現(xiàn),分享流水線設(shè)計(jì)與資源復(fù)用的實(shí)用技巧,幫助開(kāi)發(fā)者在有限資源下實(shí)現(xiàn)更高吞...

關(guān)鍵字: FPGA DSP

在異構(gòu)計(jì)算的浪潮中,F(xiàn)PGA憑借其可重構(gòu)特性與高能效比,成為突破算力瓶頸的“利刃”。然而,當(dāng)我們?cè)噲D通過(guò)OpenCL將FPGA納入統(tǒng)一計(jì)算平臺(tái)時(shí),一個(gè)巨大的幽靈始終盤(pán)旋在系統(tǒng)上方——內(nèi)存帶寬瓶頸。PCIe總線的有限帶寬與...

關(guān)鍵字: OpenCL FPGA

將成熟的ASIC設(shè)計(jì)遷移至FPGA平臺(tái),絕非簡(jiǎn)單的“復(fù)制粘貼”。ASIC設(shè)計(jì)追求極致的能效比和定制化物理布局,而FPGA受限于固定的邏輯單元(LUT、FF、DSP、BRAM)架構(gòu),直接移植往往導(dǎo)致資源利用率低下甚至?xí)r序收...

關(guān)鍵字: ASIC FPGA

在高性能FPGA設(shè)計(jì)中,DSP48E2 Slice絕非僅僅是一個(gè)簡(jiǎn)單的乘法單元。若將其僅視為“硬件乘法器”,將極大浪費(fèi)其潛在的算力。作為Xilinx UltraScale+架構(gòu)的核心算術(shù)引擎,DSP48E2集成了預(yù)加器、...

關(guān)鍵字: DSP48E2 FPGA

在浩瀚宇宙中,高能粒子如隱形的子彈,時(shí)刻轟擊著航天器的電子核心。對(duì)于FPGA而言,單粒子翻轉(zhuǎn)(SEU)可能導(dǎo)致邏輯狀態(tài)突變,引發(fā)災(zāi)/難性后果。此時(shí),三模冗余(TMR)技術(shù)便成為守護(hù)系統(tǒng)可靠的“神盾”,它通過(guò)硬件代價(jià)換取極...

關(guān)鍵字: 抗輻射加固設(shè)計(jì) FPGA 三模冗余
關(guān)閉