chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用FPGA內(nèi)部的ROM以及程序?qū)υ揜OM的數(shù)據(jù)讀操作

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-08 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者: ALINX

適用于板卡型號(hào):
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實(shí)驗(yàn)Vivado工程為“rom_test”

FPGA本身是SRAM架構(gòu)的,斷電之后,程序就消失,那么如何利用FPGA實(shí)現(xiàn)一個(gè)ROM呢,我們可以利用FPGA內(nèi)部的RAM資源實(shí)現(xiàn)ROM,但不是真正意義上的ROM,而是每次上電都會(huì)把初始化的值先寫入RAM。本實(shí)驗(yàn)將為大家介紹如何使用FPGA內(nèi)部的ROM以及程序?qū)υ揜OM的數(shù)據(jù)讀操作。

1.實(shí)驗(yàn)原理

Xilinx在VIVADO里為我們已經(jīng)提供了ROM的IP核, 我們只需通過(guò)IP核例化一個(gè)ROM,根據(jù)ROM的讀時(shí)序來(lái)讀取ROM中存儲(chǔ)的數(shù)據(jù)。實(shí)驗(yàn)中會(huì)通過(guò)VIVADO集成的在線邏輯分析儀ila,我們可以觀察ROM的讀時(shí)序和從ROM中讀取的數(shù)據(jù)。

2. 程序設(shè)計(jì)

2.1 創(chuàng)建ROM初始化文件

既然是ROM,那么我們就必須提前給它準(zhǔn)備好數(shù)據(jù),然后在FPGA實(shí)際運(yùn)行時(shí),我們直接讀取這些ROM中預(yù)存儲(chǔ)好的數(shù)據(jù)就行。Xilinx FPGA的片內(nèi)ROM支持初始化數(shù)據(jù)配置。如下圖所示,我們可以創(chuàng)建一個(gè)名為rom_init.coe的文件,注意后綴一定是“.coe”,前面的名稱當(dāng)然可以隨意起。

pIYBAGAJlkSADj6fAAAXhmyP0T4901.png

ROM初始化文件的內(nèi)容格式很簡(jiǎn)單, 如下圖所示。第一行為定義數(shù)據(jù)格式, 16代表ROM的數(shù)據(jù)格式為16進(jìn)制。從第3行開(kāi)始到第34行,是這個(gè)32*8bit大小ROM的初始化數(shù)據(jù)。每行數(shù)字后面用逗號(hào),最后一行數(shù)字結(jié)束用分號(hào)。

pIYBAGAJloGAAPqdAABmGOBr0NA634.jpg

rom_init.coe編寫完成后保存一下, 接下去我們開(kāi)始設(shè)計(jì)和配置ROM IP核。

2.2 添加ROM IP核

在添加ROM IP之前先新建一個(gè)rom_test的工程, 然后在工程中添加ROM IP,方法如下:

2.2.1 點(diǎn)擊下圖中IP Catalog,在右側(cè)彈出的界面中搜索rom,找到Block Memory Generator,雙擊打開(kāi)。

o4YBAGAJlsKACHUcAACIrr-GvG0236.jpg

2.2.2 將Component Name改為rom_ip,在Basic欄目下,將Memory Type改為Single Prot ROM。

pIYBAGAJlwmAWbGhAACSuvD2380169.jpg

2.2.3 切換到Port A Options欄目下,將ROM位寬Port A Width改為8,將ROM深度Port A Depth改為32,使能管腳Enable Port Type改為Always,并取消Primitives Output Register

o4YBAGAJl0eAAWVBAAB8UIy6iWc134.jpg

2.2.4 切換到Other Options欄目下,勾選Load Init File,點(diǎn)擊Browse,選中之前制作好的.coe文件。

pIYBAGAJl7uAPgKHAABmm59nQ1c005.jpg

2.2.5 點(diǎn)擊ok,點(diǎn)擊Generate生成ip核。

pIYBAGAJl_qAZK3jAABTQh9aB0g294.jpg

3. ROM測(cè)試程序編寫

ROM的程序設(shè)計(jì)非常簡(jiǎn)單, 在程序中我們只要每個(gè)時(shí)鐘改變ROM的地址, ROM就會(huì)輸出當(dāng)前地址的內(nèi)部存儲(chǔ)數(shù)據(jù),例化ila,用于觀察地址和數(shù)據(jù)的變化。ROM IP的實(shí)例化及程序設(shè)計(jì)如下:

`timescale1ns/1ps module rom_test( input sys_clk, //25MHz時(shí)鐘 input rst_n //復(fù)位,低電平有效 ); wire[7:0] rom_data; //ROM讀出數(shù)據(jù) reg [4:0] rom_addr;//ROM輸入地址 //產(chǎn)生ROM地址讀取數(shù)據(jù) always@(posedge sys_clk ornegedge rst_n) begin if(!rst_n) rom_addr <=10'd0; else rom_addr <= rom_addr+1'b1; end //實(shí)例化ROM rom_ip rom_ip_inst ( .clka (sys_clk ),//inoput clka .addra (rom_addr ),//input [4:0] addra .douta (rom_data )//output [7:0] douta ); //實(shí)例化邏輯分析儀 ila_0 ila_m0 ( .clk (sys_clk), .probe0 (rom_addr), .probe1 (rom_data) ); endmodule

綁定引腳
##################Compress Bitstream############################
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]set_property PACKAGE_PIN AB11 [get_ports sys_clk]set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]create_clock -period 40.000 -name sys_clk -waveform {0.000 20.000} [get_ports sys_clk]set_property IOSTANDARD LVCMOS33 [get_ports {rst_n}]set_property PACKAGE_PIN W13 [get_ports {rst_n}]

4. 仿真

仿真結(jié)果如下,符合預(yù)期,與RAM的讀取數(shù)據(jù)一樣,數(shù)據(jù)也是滯后于地址一個(gè)周期。

5. 板上驗(yàn)證

以地址0為觸發(fā)條件,可以看到讀取的數(shù)據(jù)與仿真一致。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1664

    文章

    22503

    瀏覽量

    639272
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RW612 ROM 引導(dǎo)加載程序卡在 ISP 模式測(cè)試

    ) 指向包含所有零的位置 - 引導(dǎo)數(shù)據(jù)結(jié)構(gòu)未通過(guò)鏈接器正確放置在閃存中 - ROM 引導(dǎo)加載程序驗(yàn)證引導(dǎo)結(jié)構(gòu),但在驗(yàn)證期間拒絕映像 階段 關(guān)鍵技術(shù)細(xì)節(jié): - 內(nèi)存布局:FCB@0x400
    發(fā)表于 04-15 10:13

    TS80C31X2:8位CMOS無(wú)ROM微控制器的卓越之選

    ROM版本。它保留了TSC80C31的所有特性,擁有128字節(jié)的內(nèi)部RAM、5源4優(yōu)先級(jí)中斷系統(tǒng)、片上振蕩器和兩個(gè)定時(shí)器/計(jì)數(shù)器。此外,還具備雙數(shù)據(jù)
    的頭像 發(fā)表于 04-08 15:20 ?159次閱讀

    探索TS80C31X2:8位CMOS無(wú)ROM微控制器的卓越性能

    單片機(jī)的高性能、無(wú)ROM版本。它保留了TSC80C31的所有特性,擁有128字節(jié)的內(nèi)部RAM、5源4優(yōu)先級(jí)中斷系統(tǒng)、片內(nèi)振蕩器以及兩個(gè)定時(shí)
    的頭像 發(fā)表于 04-08 15:20 ?177次閱讀

    深度解析Z90255 ROM與Z90251 OTP電視控制器:功能、特性與應(yīng)用

    ROM和OTP版本,它們擁有32 KB的程序內(nèi)存。Z90251是一次性可編程(OTP)控制器,主要用于開(kāi)發(fā)特定電視應(yīng)用的代碼或原型,以及進(jìn)行
    的頭像 發(fā)表于 04-04 14:05 ?592次閱讀

    Z86C02/E02/L02微控制器:高性價(jià)比的512字節(jié)ROM CMOS解決方案

    Z86C02/E02/L02微控制器:高性價(jià)比的512字節(jié)ROM CMOS解決方案 在電子設(shè)計(jì)領(lǐng)域,尋找一款既經(jīng)濟(jì)實(shí)惠又功能強(qiáng)大的微控制器是許多工程師的追求。Zilog的Z86C02/E02/L02
    的頭像 發(fā)表于 04-04 14:05 ?889次閱讀

    詳細(xì)解釋Keil-MDK中Code、RO-data、RW-data、ZI-data的含義

    ,這就是把RW-data與ZI-data區(qū)別存儲(chǔ)的原因,因?yàn)樵赗AM創(chuàng)建數(shù)據(jù)的時(shí)候,默認(rèn)值為0,但如果有的數(shù)據(jù)要求初值非0,那就需要使用ROM記錄初始值,運(yùn)行時(shí)再?gòu)?fù)制到RAM中。
    發(fā)表于 01-21 07:19

    單片機(jī)里的程序運(yùn)行方式

    :它是單片機(jī)內(nèi)部的核心部件,決定了單片機(jī)的主要功能特性,由運(yùn)算器和控制器兩大部分組成。 存儲(chǔ)器:8051單片機(jī)在系統(tǒng)結(jié)構(gòu)上采用了哈佛型,將程序數(shù)據(jù)分別存放在兩個(gè)存儲(chǔ)器內(nèi),一個(gè)稱為程序
    發(fā)表于 01-16 06:57

    ram ip核的使用

    決定的。 ram 主要用來(lái)存放程序程序執(zhí)行過(guò)程中產(chǎn)生的中間數(shù)據(jù)、 運(yùn)算結(jié)果等。 rom為只讀存儲(chǔ)器,只能讀取數(shù)據(jù)而不能向里面寫入
    發(fā)表于 10-23 07:33

    怎么像kell一樣設(shè)置rom下載起始地址?

    如題,怎么像kell一樣設(shè)置rom下載起始地址?
    發(fā)表于 10-10 07:21

    中微愛(ài)芯2K FLASH ROM的AD型8位微控制器代理供應(yīng)

    ROM 空間:2K * 16 位。 ? RAM 空間:128字節(jié)。 ? 8層堆棧緩存器 ? 4個(gè)中斷源 ? 3個(gè)內(nèi)部中斷源:T0、TC0、ADC ? 1個(gè)外部中斷源:INT0 ? I/O引腳配置
    發(fā)表于 07-19 17:11

    【RK3568+PG2L50H開(kāi)發(fā)板實(shí)驗(yàn)例程】FPGA部分 | ROM、RAM、FIFO 的使用

    和功能均一致,不會(huì)像 PLL 那樣有動(dòng)態(tài)配置以及內(nèi)部反饋選項(xiàng)的選擇等之間的差異,所以是 RAM、ROM、FIFO 是通用的。 2.1. RAM 介紹 RAM 即隨機(jī)存取存儲(chǔ)器。它可以在運(yùn)行過(guò)程中把
    發(fā)表于 07-10 10:37

    LMK03318如何使用TICS將程序燒錄進(jìn)ROM

    請(qǐng)問(wèn) LMK03318芯片如何用TICS PRO燒錄進(jìn)芯片內(nèi)部ROM?并且上電時(shí)鐘就工作,有輸出(就是上電程序自啟動(dòng)),急!?。?
    發(fā)表于 07-07 14:35

    基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    本文的目的是在一個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)通過(guò)python或者M(jìn)ATLAB訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,將訓(xùn)練好的模型的權(quán)重和偏置文件以TXT文件格式導(dǎo)出,然后通過(guò)python程序將txt文件轉(zhuǎn)化為coe文件,(coe
    的頭像 發(fā)表于 06-03 15:51 ?1506次閱讀
    基于<b class='flag-5'>FPGA</b>搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    飛凌嵌入式ElfBoard ELF 1板卡-uboot啟動(dòng)流程分析之boot ROM階段

    將uboot代碼從啟動(dòng)介質(zhì)取出,加載到內(nèi)存中去執(zhí)行。那么就需要某個(gè)程序來(lái)做這些工作。i.MX6ULL內(nèi)部有一塊ROM,存儲(chǔ)著一段代碼,這部分代碼是SOC設(shè)計(jì)時(shí)實(shí)現(xiàn)的,上電后會(huì)首先運(yùn)行,uboot的引導(dǎo)
    發(fā)表于 05-28 10:01

    求助,關(guān)于FX3 ROM引導(dǎo)加載程序系統(tǒng)重啟問(wèn)題求解

    加載程序。 問(wèn)題是否與已知勘誤表問(wèn)題(FX3 自供電時(shí),USB 啟動(dòng)模式下 USB 枚舉失?。┯嘘P(guān),因?yàn)?USB 端口/電路板在系統(tǒng)重置期間不會(huì)完全斷電? 如果是這樣,那么就沒(méi)有辦法解決這個(gè)問(wèn)題,讓 ROM 引導(dǎo)加載
    發(fā)表于 05-13 06:06