资源描述:
《MAXII的UFM模块使用实例.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MAXII的UFM查看MAXII器件的ChipPlanner:其左下角这块黑色区域是用户不可用资源区,而在这片不可用区域里有一块绿色的方块是可用的。这块不可用的黑色区域叫做CFMblock(配置Flash存储区),而那个绿色方块叫做UFM(用户可用的Flash存储区)。对于后者是我们今天讨论的重点,先看以下官方对此存储区作用的描述:MAXIIdevicesfeatureasingleUFMblock,whichcanbeusedlikeaserialEEPROMforstoringnon-volatileinformationupt
2、o8,192bits.TheUFMblockconnectstothelogicarraythroughtheMultiTrackinterconnect,allowinganyLEtointerfacetotheUFMblock.Figure2–15showstheUFMblockandinterfacesignals.ThelogicarrayisusedtocreatecustomerinterfaceorprotocollogictointerfacetheUFMblockdataoutsideofthedevice.The
3、UFMblockoffersthefollowingfeatures:■Non-volatilestorageupto16-bitwideand8,192totalbits■Twosectorsforpartitionedsectorerase■Built-ininternaloscillatorthatoptionallydriveslogicarray■Program,erase,andbusysignals■Auto-incrementaddressing■Serialinterfacetologicarraywithprog
4、rammableinterface也就是说,MAXII其实是内嵌了一块8Kbit的Flash。这个Flash原则上是不占用MAXII的其它可用逻辑资源的,不过这有个大前提:用户读写这块存储区使用altera本身的串行接口(遵循特定的通信协议)。但是这个协议也太繁琐了(个人感觉),因此,对于这块存储区读写接口altera提供了三种通用的接口供用户选择。■I2C■SPI■Parallel■None(AlteraSerialInterface)最后一种就是不需要占用器件额外逻辑资源的接口,上面三种是需要消耗器件逻辑资源的接口。笔者添加了一
5、个并行接口做测试,占用了EMP240内部86个LEs,对于资源比较紧张的应用还是很划不来的。更多详细的关于UFM的信息请大家参考altera提供的MAXIIdatasheet。下面介绍一个使用并行接口读写UFM的实例,以及功能仿真。新建一个工程,名为ufmtest,顶层模块ufmtest.v,代码如下:moduleufmtest(databus,addr,nerase,nread,nwrite,data_valid,nbusy);inout[15:0]databus;//Flash数据总线input[8:0]addr;//Flash
6、地址总线inputnerase;//擦除Flash某一扇区信号inputnread;//读Flash信号inputnwrite;//写Flash信号outputdata_valid;//Flash数据输出有效信号outputnbusy;//Flash忙信号assigndatabus=nwrite?dataout:16'hzzzz;//写信号有效时,Flash数据总线作为输入assigndatain=databus;//写入Flash数据总线连接wire[15:0]datain;//Flash写入数据wire[15:0]dataout
7、;//Flash读出数据//例化UFM(Flash)模块para_ufmpara_ufm_inst(.addr(addr),.datain(datain),.nerase(nerase),.nread(nread),.nwrite(nwrite),.data_valid(data_valid),.dataout(dataout),.nbusy(nbusy));endmodule但是在例化UFM模块之前,大家需要先在MegaWizardPlug-InManager里添加一个Flash模块。步骤如下:1,点击菜单栏里的ToolsàMeg
8、aWizardPlug-InManager。弹出如下,点击next。2,接着选择MemoryCompiler下的FlashMemory,然后在Whatnamedoyouwantfortheoutputfile?下路径的最后添加输出文件