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

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

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

MAX.II的UFM模塊使用實(shí)例

工程師 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:h1654155205.5246 ? 2019-03-06 18:20 ? 次閱讀

查看MAX II器件的Chip Planner:

其左下角這塊黑色區(qū)域是用戶不可用資源區(qū),而在這片不可用區(qū)域里有一塊綠色的方塊是可用的。這塊不可用的黑色區(qū)域叫做CFM block(配置Flash存儲(chǔ)區(qū)),而那個(gè)綠色方塊叫做UFM(用戶可用的Flash存儲(chǔ)區(qū))。對(duì)于后者是我們今天討論的重點(diǎn),先看以下官方對(duì)此存儲(chǔ)區(qū)作用的描述:

MAX II devices feature a single UFM block, which can be used like a serial EEPROM for storing non-volatile information up to 8,192 bits. The UFM block connects to the logic array through the MultiTrack interconnect,allowing any LE to interface to the UFM block. Figure 2–15 shows the UFM block and interface signals. The logic array is used to create customer interface or protocol logic to interface the UFM block data outside of the device. The UFM block offers the following features:

■ Non-volatile storage up to 16-bit wide and 8,192 total bits

■ Two sectors for partitioned sector erase

■ Built-in internal oscillator that optionally drives logic array

■ Program, erase, and busy signals

■ Auto-increment addressing

■ Serial interface to logic array with programmable interface

MAX.II的UFM模塊使用實(shí)例

也就是說,MAX II其實(shí)是內(nèi)嵌了一塊8Kbit的Flash。這個(gè)Flash原則上是不占用MAX II的其它可用邏輯資源的,不過這有個(gè)大前提:用戶讀寫這塊存儲(chǔ)區(qū)使用altera本身的串行接口(遵循特定的通信協(xié)議)。但是這個(gè)協(xié)議也太繁瑣了(個(gè)人感覺),因此,對(duì)于這塊存儲(chǔ)區(qū)讀寫接口altera提供了三種通用的接口供用戶選擇。

I2C

■ SPI

■ Parallel

■ None (Altera Serial Interface)

最后一種就是不需要占用器件額外邏輯資源的接口,上面三種是需要消耗器件邏輯資源的接口。筆者添加了一個(gè)并行接口做測(cè)試,占用了EMP240內(nèi)部86個(gè)LEs,對(duì)于資源比較緊張的應(yīng)用還是很劃不來(lái)的。

更多詳細(xì)的關(guān)于UFM的信息請(qǐng)大家參考altera提供的MAX II datasheet。下面介紹一個(gè)使用并行接口讀寫UFM的實(shí)例,以及功能仿真。

新建一個(gè)工程,名為ufmtest,頂層模塊ufmtest.v,代碼如下:

module ufmtest(

databus,addr,

nerase,nread,nwrite,

data_valid,nbusy

);

inout[15:0] databus; //Flash數(shù)據(jù)總線

input[8:0] addr; //Flash地址總線

input nerase; //擦除Flash某一扇區(qū)信號(hào)

input nread; //讀Flash信號(hào)

input nwrite; //寫Flash信號(hào)

output data_valid; //Flash數(shù)據(jù)輸出有效信號(hào)

output nbusy; //Flash忙信號(hào)

assign databus = nwrite ? dataout:16‘hzzzz; //寫信號(hào)有效時(shí),F(xiàn)lash數(shù)據(jù)總線作為輸入

assign datain = databus; //寫入Flash數(shù)據(jù)總線連接

wire[15:0] datain; //Flash寫入數(shù)據(jù)

wire[15:0] dataout; //Flash讀出數(shù)據(jù)

//例化UFM(Flash)模塊

para_ufm para_ufm_inst (

.addr ( addr ),

.datain ( datain ),

.nerase ( nerase),

.nread ( nread ),

.nwrite ( nwrite),

.data_valid ( data_valid ),

.dataout ( dataout ),

.nbusy ( nbusy )

);

endmodule

但是在例化UFM模塊之前,大家需要先在MegaWizard Plug-In Manager里添加一個(gè)Flash模塊。步驟如下:

1,點(diǎn)擊菜單欄里的ToolsàMegaWizard Plug-In Manager。彈出如下,點(diǎn)擊next。

MAX.II的UFM模塊使用實(shí)例

2,接著選擇Memory Compiler下的Flash Memory,然后在What name do you want for the output file?下路徑的最后添加輸出文件名為para_ufm,點(diǎn)擊next.

MAX.II的UFM模塊使用實(shí)例

3,接下來(lái)一路Next,需要更改設(shè)置的地方如下(我也不多廢話,大家一看都明白):

MAX.II的UFM模塊使用實(shí)例

MAX.II的UFM模塊使用實(shí)例

完成上面步驟以后編譯工程,編寫testbench如下:

`timescale 1ns/1ns

module tb_ufmtest();

//inout

wire[15:0] databus; //Flash數(shù)據(jù)總線

//input

wire data_valid; //Flash數(shù)據(jù)輸出有效信號(hào)

wire nbusy; //Flash忙信號(hào)

//output

reg[8:0] addr; //Flash地址總線

reg nerase; //擦除Flash某一扇區(qū)信號(hào)

reg nread; //讀Flash信號(hào)

reg nwrite; //寫Flash信號(hào)

reg[15:0] databus_r; //測(cè)試模塊數(shù)據(jù)總線寄存器

reg[15:0] rdback_data; //測(cè)試模塊數(shù)據(jù)總線數(shù)據(jù)回讀寄存器

assign databus = nwrite ? 16’hzzzz:databus_r;

ufmtest ufmtest(

.databus(databus),

.addr(addr),

.nerase(nerase),

.nread(nread),

.nwrite(nwrite),

.data_valid(data_valid),

.nbusy(nbusy)

);

parameter DELAY_600US = 600_000, //600us延時(shí)

DELAY_2US = 2_000, //2us延時(shí)

DELAY_5US = 5_000; //5us延時(shí)

initial begin

nerase = 1;

nread = 1;

nwrite = 1;

addr = 0;

databus_r = 0;

#DELAY_600US; //0地址寫入數(shù)據(jù)99

databus_r = 99;

addr = 9‘d0;

nwrite = 0;

#DELAY_5US;

nwrite = 1;

@ (posedge nbusy);

#DELAY_5US; //0地址讀出數(shù)據(jù),保存到寄存器rdback_data中

databus_r = 16’hff;

addr = 9‘d0;

nread = 0;

#DELAY_5US;

nread = 1;

@ (posedge data_valid);

rdback_data = databus;

#DELAY_600US;

$stop;

end

endmodule

仿真波形如下:

MAX.II的UFM模塊使用實(shí)例

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

    關(guān)注

    7

    文章

    2725

    瀏覽量

    47610
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MAX44290ANT+T和MAX44290ANT+TG7有什么區(qū)別呢?

    MAX44290ANT+T和MAX44290ANT+TG7請(qǐng)問有什么區(qū)別呢? 是否有文件呢 謝謝
    發(fā)表于 12-19 07:17

    BOOSTXL-EDUMKII教育BoosterPack插件模塊Mark II用戶指南

    電子發(fā)燒友網(wǎng)站提供《BOOSTXL-EDUMKII教育BoosterPack插件模塊Mark II用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:39 ?0次下載
    BOOSTXL-EDUMKII教育BoosterPack插件<b class='flag-5'>模塊</b>Mark <b class='flag-5'>II</b>用戶指南

    詳解MySQL多實(shí)例部署

    詳解MySQL多實(shí)例部署
    的頭像 發(fā)表于 11-11 11:10 ?300次閱讀

    LORA模塊在農(nóng)業(yè)中的應(yīng)用實(shí)例

    隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,LORA(Long Range,長(zhǎng)距離無(wú)線通信技術(shù))模塊因其低功耗、遠(yuǎn)距離傳輸?shù)葍?yōu)勢(shì),在農(nóng)業(yè)領(lǐng)域得到了廣泛應(yīng)用。 1. 智能灌溉系統(tǒng) 應(yīng)用背景: 農(nóng)業(yè)灌溉是農(nóng)業(yè)生產(chǎn)中的重要環(huán)節(jié)
    的頭像 發(fā)表于 11-01 09:25 ?906次閱讀

    在Keystone II器件上使用Arm ROM引導(dǎo)加載程序

    電子發(fā)燒友網(wǎng)站提供《在Keystone II器件上使用Arm ROM引導(dǎo)加載程序.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 12:33 ?0次下載
    在Keystone <b class='flag-5'>II</b>器件上使用Arm ROM引導(dǎo)加載程序

    廣成科技USBCAN-II C+型CAN盒是什么

    USBCAN-II C+是沈陽(yáng)廣成科技有限公司出品的一種集成2個(gè)CAN通道的CAN盒工具,你也可以叫它CAN卡、CAN分析儀、USBCAN分析儀。相對(duì)于前身USBCAN-II C分析儀,USBCAN-II C+的外殼由金屬轉(zhuǎn)變?yōu)?/div>
    的頭像 發(fā)表于 08-30 11:47 ?738次閱讀

    廣成科技USBCAN II C+可用的GCANtools功能

    USBCAN II C+是沈陽(yáng)廣成科技有限公司出品的一種雙通道CAN分析儀工具,其搭配的軟件主要廣成科技自己家的GCANTOOLS以及其他廠家的CANPro、CANTEST。相比于USBCAN II
    的頭像 發(fā)表于 08-30 11:45 ?673次閱讀

    MAX30102模塊在F407VET6的板子上不能用的原因?

    MAX30102模塊在F407VET6的板子上不能用
    發(fā)表于 05-31 07:24

    MAX13085EESA+與MAX13485EESA+的差異在什么地方?

    MAX13085EESA+與MAX13485EESA+,這兩款同系列的8SO芯片的差異在什么地方,是否可以互相替代
    發(fā)表于 05-23 08:10

    鴻蒙開發(fā)接口Ability框架:【@ohos.wantAgent (WantAgent模塊)】

    WantAgent模塊提供了觸發(fā)、取消、比較WantAgent實(shí)例和獲取bundle名稱的能力,包括創(chuàng)建WantAgent實(shí)例、獲取實(shí)例的用戶ID、獲取want信息等。
    的頭像 發(fā)表于 05-13 17:35 ?899次閱讀
    鴻蒙開發(fā)接口Ability框架:【@ohos.wantAgent (WantAgent<b class='flag-5'>模塊</b>)】

    哪吒汽車攜暢銷車型NETA V-II驚艷亮相曼谷國(guó)際車展

    哪吒汽車攜暢銷車型NETA V-II驚艷亮相曼谷國(guó)際車展
    的頭像 發(fā)表于 03-28 10:11 ?415次閱讀
    哪吒汽車攜暢銷車型NETA V-<b class='flag-5'>II</b>驚艷亮相曼谷國(guó)際車展

    max6675測(cè)溫不準(zhǔn)的原因?如何解決?

    */void MAX6675_Init(void){GPIO_Init();//片選引腳初始化MX_SPI2_Init();//spi總線初始化} /** @briefmax6675模塊讀寫一個(gè)字
    發(fā)表于 03-18 07:51

    max2121射頻芯片配置問題

    有沒有max2121射頻芯片寄存器配置實(shí)例啊,為什么我配置完測(cè)試不到信號(hào)
    發(fā)表于 03-07 17:44

    verilog的135個(gè)經(jīng)典實(shí)例

    verilog的135個(gè)經(jīng)典實(shí)例
    發(fā)表于 02-02 10:17 ?14次下載

    二級(jí)電源和II級(jí)電源的區(qū)別

    二級(jí)電源和II級(jí)電源的區(qū)別 隨著電力需求的不斷增長(zhǎng),人們對(duì)電源的要求也越來(lái)越高。二級(jí)電源和II級(jí)電源是兩種常見的電源等級(jí),它們?cè)谝恍╆P(guān)鍵的技術(shù)規(guī)范上存在一些區(qū)別。 首先,我們來(lái)了解一下二級(jí)電源和II
    的頭像 發(fā)表于 01-19 13:51 ?2218次閱讀