让没有晶振的生活成为可能——UFM.[CPLD]

j

传闻说CPLD有个缺陷,就是内部没有存储模块,所以不能对RAM,ROM等操作,但其实,CPLD内部有8192bits的UFM—Usr Flash Memory,很容易就可以实现RAM、ROM 的功能,能满足一时的需要。

如上图所示,MAX II 芯片Chip Planner:

左下角这块黑色区域是用户不可用资源区,而在这片不可用区域里有一块绿色的方块是可用的。这块不可用的黑色区域叫做CFM block(配置Flash存储区),而那个绿色方块叫做UFM(用户可用的Flash存储区)。

二、 特性(官方描述)

Each UFM array is organized as two separate sectors with 4,096 bits per sector. Each sector can be erased independently 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

UFM Block 官方资料 input output 介绍

MAX II UFM.pdf 第三页

 

以下是我觉得重要的几个IO:

 

三、 Oscillator

如上所示,可见MAX II系列CPLD,MAX II其实是内嵌了一块8Kbit 的Flash。

用户Flash存储器可用来存放ASSP和其它易失器件所需的初始化数据。用户Flash存储器替代了板子上小型的串行或并行可擦除可编程只读存储器(EEPROM)器件,从而减少了部件数量,降低了板子的成本。

这个Flash原则上是不占用MAX II的其它可用逻辑资源的,不过这有个大前提:用户读写这块存储区使用altera本身的串行接口(遵循特定的通信协议)。

下面是网上的人的一段评论:

“UFM中的OSCar产生13.33~22.22MHz的频率,经过4分频后,可以作为ARCLK或DRCLK的输入,或者可以通过接口输出到CPLD外部或引入逻辑阵列中,作为CPLD的工作时钟,4分频后为3.3MHz~5.5MHz,可以满足一般应用,虽然不能替代外部精准的晶振,不过在要求不高的场合还是可以使用,这样省下了外部晶振,节省成本。”

实际测试中,发现对Oscillator的控制有2种方法,直接Oscillator使能拉高或者Oscena Osc连接成反馈电路,具体在下面描述。

 

四、Altera UFM IP

在Quartus II 对于这块存储区读写接口altera提供了四种通用的接口供用户选择。

  • I2C
  • SPI
  • Parallel
  • None (Altera Serial Interface)

最后一种就是不需要占用器件额外逻辑资源的接口,上面三种是需要消耗器件逻辑资源的接口,在此我选择Parallel 并行传输模式,一是简单,而是高速,没必要去写SPI、I2C这些在verilog中书写复杂的协议。

五、Parallel 并行接口访问UFM ,并实现Water_LED

1. 新建工程
2. 在MegaWizard Plug-In Manager添加FLASH模块
(1) 编写Water_LED的mif文件,存取在UFM中读取以实现流水灯的功能

 

(2) Tool—Megawizard Plug-In Manager

 

(3)接着选择Memory Compiler下的Flash Memory,然后在What name do you want for the output file?下路径的最后添加输出文件名为UFM,点击next。

 

(4)选择并行Paralell只读模式

 

(5)选择:

<1>晶振Oscillator:5.56MHZ或者3.33MHZ(再次测试我用的是5.56MHZ)

<2>擦除Flash的时间:默认500000ns

<3>Flash编程时间:默认1600ns

<4>在memory加入Water_LED.mif

 

3. 编写UFM_Test.v程序

程序见文件UFM_Water_LED

UFM的读取基本时序为:

(1) nread 1->0;

(2) 判断data_valid是否变高,变高则锁存数据do;否则等待;

(3) addr增1;

(4) nread 0->1;

(5)  重复以上操作

UFM接口模块实际上是在nread信号的上升沿锁存地址数据,在nread的下降沿开始读过程

 

4.分配引脚

set_location_assignment PIN_37 -to Water_Led[7]

set_location_assignment PIN_38 -to Water_Led[6]

set_location_assignment PIN_39 -to Water_Led[5]

set_location_assignment PIN_40 -to Water_Led[4]

set_location_assignment PIN_41 -to Water_Led[3]

set_location_assignment PIN_42 -to Water_Led[2]

set_location_assignment PIN_43 -to Water_Led[1]

set_location_assignment PIN_44 -to Water_Led[0]

set_location_assignment PIN_71 -to clk_out

 

5.编译工程

如上图,真个工程只用了89个LE,以及UFM,没有占用其他让那个存储空间,没有使用晶振时钟,所有功能都在UFM内部实现。

 

6.JTAG下载

 

7.效果

8个LED灯 向左向右循环流动,但并没有用外部时钟。在Oscena Osc反馈电路回避直接Oscena快一倍的流动速度,原因是最后发现恰好倍频了。

 

六、发现的问题
1. UFM Oscillator

保证UFM内部晶振有2个办法:

一、给外部时钟源

二、时钟输入Oscena、输出osc直接接成反馈电路,不需要外部时钟振荡

 

三、直接把Oscena拉高

 

结论:

<1>经过再三测试,选择了第二种模式,可以省去晶振,但与Altera上的pdf讲的不一样,出来的并不是3.3MHZ~~5.5MHZ而是10MHZ左右的时钟振荡

<2>Oscena 实际上就是Osc enable ,就是Osc时钟输出的使能,官方资料说:

“内部振荡器有一路输入OSC_ENA 和一路输出OSC。输入引脚OSC_ENA用于激活内部振荡器。激活后,输出上将产生频率为3.3 MHz 到5.5 MHz 的信号。如果振荡器使能信号OSC_ENA 被驱动为低电平,振荡器输出保持低电平不变。”

这样直接给1,实际始终出来的是5.15MHZ,和官方资料吻合。

一开始我都是直接用上面第二种反馈的方法的,但比官方说的倍频,现在想想可能就是刚好使能和osc的结合,恰好高低重返变换了一次,出现了二倍频吧,官方没有这种说法,我只能意会,不能言传,但出现官方的倍频确是有事实,而且貌似更稳定一点,又是一片新大陆。好玩!

 

2.IP核Flash与
Oscillator共用

 

实际工作发现这样不行,一直想不通,最后发现,Flash 和Qscillator两个IP核都是处理UFM内部模块的,可能在时序上有重合,不能同时驱动UFM,就像在verilog中,不同的进程中不能同时最同一个变量赋值,否则会出错

七、感受以及总结

每次编译CPLD 的工程的时候,最后都有,一直都看到,但是一直都不知道这是什么东西,现在终于明白了,以前一直没听说过,Google一下,网上还真有几个人在玩这个,不过仅仅是去teachbench一下。“哥伦布发现”,实际感受一下,原来那么好玩。

不管是CPU还是什么东西,只要是处理器之类的东西,一般工作都是需要晶振来保证工作的,但CPLD内部神奇的UFM,原来那么好玩,让不可能变成了可能,让没有晶振的生活成为一种可能,在不需要时钟高度的精度和高速的时钟的情况下,可以省略去外部时钟,直接用内部时钟,不然,老是让传说中的UFM在神秘之中,未免浪费人才了。

利用Oscena反馈Osc,会出现官方5.5MHZ 的二倍频10MHZ,这个不错,官方没有这样的说法!

本人本次纯属兴趣,顺便搞清楚这一块,看看不可能有可能,可能在表达上不是那么的准确,但我提供的这是一种新思想,对不懂UFM 的人或许有帮助,虽然在实际应用中我们并不会用的太多,但是,物尽其所用吧。

时间: 2025-01-30 16:24:07

让没有晶振的生活成为可能——UFM.[CPLD]的相关文章

红外解码-大神求助,请帮将下面的51程序12M晶振控制的程序调成22.1184M晶振控制的程序

问题描述 大神求助,请帮将下面的51程序12M晶振控制的程序调成22.1184M晶振控制的程序 /*----------------------------------------------- ???????????????÷ ------------------------------------------------*/ #include //°ü???·????????°??é?????è?????????·????°ü???????????????÷???¨?? sbit SSR=P

晶振电路原理

    在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振.由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路.这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,也就是晶振电路. 目录 晶振电路的作用 晶振电路的原理 晶振电路中常见问题 晶振电路的作用 电容大小没有固定值.一般二

avr晶振问题,外接12M怎么选择8M

问题描述 avr晶振问题,外接12M怎么选择8M 我的avr16片子外接12M晶振,能选择外部8M晶振吗?怎么设置熔丝位,对了,选择外部晶振定时不准,是什么问题 解决方案 可以啊,是你的程序问题 解决方案二: 可以啊,是你的程序问题

晶振波形、MIPI波形

/********************************************************************************** * 晶振波形.MIPI波形 * 声明: * 有时候我们在做东西的时候,需要根据一些波形是否存在.电压是否标准等来判断一些事情. * * 2016-1-20 深圳 南山平山村 曾剑锋 ***************************************************************************

电脑主板故障修理

  电脑主板故障修理方法: 在日常生活中,遇到主板的故障并不少见,常见主板故障大致有以下几种: 一.是加电之后无法通过自检.电脑无法正常启动; 二.是主板上的接口损坏,导致在检测硬盘.光驱等时出现错误; 三.是BIOS无法自动保存等.很多时候,由于散热不良等因素,还很有可能导致南北桥芯片烧毁,造成主板完全报废. 一.查板方法: 1.观察法:有无烧糊.烧断.起泡.板面断线.插口锈蚀. 2.表测法:+5V.GND电阻是否是太小(在50欧姆以下). 3.通电检查:对明确已坏板,可略调高电压0.5-1V

鲜为人知的U盘常识

    什么是U盘 U盘,全称"USB闪存盘",英文名"USB flash disk".它是一个USB接口的无需物理驱动器的微型高容量移动存储产品,可以通过USB接口与电脑连接,实现即插即用.U盘的称呼最早来源于朗科公司生产的一种新型存储设备,名曰"优盘",使用USB接口进行连接.USB接口就连到电脑的主机后,U盘的资料可与电脑交换.而之后生产的类似技术的设备由于朗科已进行专利注册,而不能再称之为"优盘",而改称谐音的&quo

《谈学单片机有前途还是嵌入式系统有前途》一文吴坚鸿回复整理

六月初吴坚鸿发表了<吴坚鸿谈学单片机有前途还是嵌入式系统有前途>一文,后被andy1989转发至博客中,在发烧友中引起了很大的反响.对于论坛上很多发烧友的评论,吴坚鸿一一作了答复,吴先生对于每个发烧友的评论都很认真的回复了,因此小编整理出来,供更多的发烧友们学习!稍稍啰嗦一下,吴坚鸿的回复可以解决很多单片机学者的疑问,如果有耐心看完的话,对大家会有极大的帮助的!     谢谢版主的关注,没想到有那么多朋友关注,让我的虚荣心一下子得到极大的满足.我决心对每个贴都回复.无论有多忙,每天坚持抽一点时

对讲机 百度百科

原文:http://baike.baidu.com/view/34537.htm?wtp=tt 对讲机的英文名称是 two way radio,它是一种双向移动通信工具,在不需要任何网络支持的情况下,就可以通话,没有话费产生,适用于相对固定且频繁通话的场合.对讲机目前有三大类:模拟对讲机.数字对讲机.IP对讲机. 中文名 对讲机 外文名 two way radio 类    型 移动通信工具 特    点 双向 诞生地点 Westinghouse的实验室 发明人 John Kermode 目录

魅族的明天,是智能音箱吗?

     如果明天的这个时候,魅族众望所归地推出一款无线音箱.到时候估计就算黄章本人,也不敢像老罗那样言之凿凿道--"我就是爱音乐,别叫我停下来". 资深煤油都知道,魅族当年就是靠做音频起家的.好比苹果做手机前累积多年的图像技术,给iPhone奠定拍照天下第一的江湖地位一样:魅族出音箱,外界是有理由期待的. 但在这年头情怀也需要人买单,魅族怎么选择我们还不得而知. 为音乐而生? 魅族的产品都带着深深的黄章烙印.因此如果说"黄章才是这个时代真正的工匠",很多人都不会反