时钟同步

FFT算法的一种FPGA实现

邮差的信 提交于 2019-11-28 02:38:08
http://hi.baidu.com/hieda/blog/item/6afab113b8985127dc540179.html 1 引言   OFDM(正交频分复用)是一种多载波数字调制技术,被公认为是一种实现高速双向无线数据通信的良好方法。在OFDM系统中,各子载波上数据的调制和解调是采用FFT(快速傅里叶变换)算法来实现的。因此在OFDM系统中,FFT的实现方案是一个关键因素。其运算精度和速度必须能够达到系统指标。对于一个有512个子载波,子载波带宽20 kHz的OFDM系统中,要求在50 μs内完成512点的FFT运算。   硬件实现FFT算法的主要方案有:DSP(通用数字信号处理器);FFT专用芯片;FPGA(现场可编程门阵列)。DSP具有纯软件实现的灵活性,适合用于流程复杂的算法,例如在通信系统中的信道编、解码,QAM映射等算法。如果在DSP中完成FFT运算,不仅要占用大量D SP的运算时间,使整个系统的数据吞吐率降低,也无法发挥DSP软件实现的灵活性。因此,前端的FFT运算应由ASIC或FPGA完成。采用专用的FFT处理芯片,虽然速度能达到要求,但其可扩展性差。FPGA具有硬件结构可重构的特点。适合于算法结构固定、运算量大的前端数字信号处理。新近推出的FPGA产品都采用多层布线结构,更低的核心电压,更丰富的IO管脚,容量可达到100 k个逻辑单元(LES)

FPGA中竞争冒险问题的研究

有些话、适合烂在心里 提交于 2019-11-28 02:37:42
http://hi.baidu.com/hieda/blog/item/17544029a34a52fd98250a6b.html 什么是竞争冒险?请看: 组合逻辑电路中竞争冒险的分析 1 引言 现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能。 FPGA可以替代其他PLD或者各种中小规模数字逻辑芯片在数字系统中广泛应用,也是实现具有不同逻辑功能ASIC的有效办法。FPGA是进行原型设计最理想的载体,原型机的最初框架和实现通过PFGA来验证,可以降低成本、缩短开发周期。利用FPGA的可重配置功能,可以在使用过程中,在不改变所设计的设备的硬件电路情况下,改变设备的功能。但和所有的数字电路一样,FPGA电路中也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和逻辑紊乱。在此详细论述了解决此问题的多种方法。 2 FPGA的功能和结构特点 2.1 FPGA的功能 FPGA的功能由逻辑结构的配置数据决定,在工作时,这些配置数据存放在片内的SRAM或者熔丝图上。使用SRAM的FPGA器件,在工作前需要从芯片外部加载配置数据,这些配置数据可以存放在片外的EPROM或其他存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能。 图1 实际逻辑电路 图2 LUT的实现方式 2.2

SPI协议简介

时光怂恿深爱的人放手 提交于 2019-11-28 02:37:38
http://hi.baidu.com/hieda/blog/item/2dcb1f3845b9582097ddd8da.html SPI协议简介 (下面内容摘自互联网) 一 SPI协议概括 二 SPI协议举例 三 SPI协议心得 一 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO – 主设备数据输出,从设备数据输入 (2)SDI – 主设备数据输入,从设备数据输出 (3)SCLK – 时钟信号,由主设备产生 (4)CS – 从设备使能信号,由主设备控制

FPGA时钟问题的探讨汇总

こ雲淡風輕ζ 提交于 2019-11-28 02:37:29
http://hi.baidu.com/hieda/blog/item/5e59b2fc08de6bfefc037f04.html   无沦是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度、电压或制造工艺的偏差情况下将导致错误的行为,并且调试困难、花销很大。 在设计PLD/FPGA时通常采用几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合。 1. 全局时钟 2. 门控时钟 3. 多级逻辑时钟 4. 行波时钟 5. 多时钟系统 1.全局时钟 对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在PLD/FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。PLD/FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。 图1 示出全局时钟的实例。图1 定时波形示出触发器的数据输入D[1..3]应遵守 建立时间和保持时间 的约束条件。建立和保持时间的数值在PLD数据手册中给出,也可用软件的定时分析器计算出来。如果在应用中不能满足建立和保持时间的要求

一位前辈的工作经验

时光怂恿深爱的人放手 提交于 2019-11-28 02:36:02
http://www.cnblogs.com/jianyungsun/archive/2010/12/07/1899533.html 在公司里的几个月,做的项目其实不多,但是收获还是有一些,我觉得收获最大的是 设计 理念的改变,这也是我这段 时间 最想总结的,我会在后面逐渐阐述。 如对此文有疑问或想给作者提 建议 请给作者发email: wangdian@tom.com 1/时序是设计出来的 我的boss有在华为及峻龙工作的背景,自然就给我们讲了一些华为及altera做逻辑的一些东西,而我们的项目规范,也基本上是按华为的那一套去做。在工作这几个月中,给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的,更不是湊出来的。 在我们公司,每一个项目都有很严格的评审,只有评审通过了,才能做下一步的工作。以做逻辑为例,并不是一上来就开始写代码,而是要先写总体设计方案和逻辑详细设计方案,要等这些方案评审通过,认为可行了,才能进行编码,一般来说这部分工作所占的时间要远大于编码的时间。 总体方案主要是涉及模块划分,一级模块和二级模块的接口信号和时序(我们要求把接口信号的时序波形描述出来)以及将来如何测试设计。在这一级方案中,要保证在今后的设计中时序要收敛到一级模块(最后是在二级模块中)。什么意思呢?我们在做详细设计的时候,对于一些信号的时序肯定会做一些调整的

FPGA面试宝典

情到浓时终转凉″ 提交于 2019-11-28 02:35:45
http://www.cnblogs.com/qiweiwang/archive/2010/10/23/1859546.html   这段时间去面试了几家公司,发现比较大的公司相对于重视基础问题。这里边又有几个问题特别的突出。他们是:同步时钟设计、亚稳态、异步FIFO。可以说,这些个问题要是弄清楚了,就至少满足了技术方面1/3的要求,另外的2/3是什么,我就说不清楚了。又有人发了竞争冒险毛刺的问题,不过,对于采用同步设计方法的系统,这些问题一般不会遇到。下面就谈谈我对这些问题的看法,要是你觉得看这些东西觉得类似一堆狗屎,那么恭喜你,你面试成功的机会增加了1/3;要是你你觉得阿,什么样的牛人拉了一堆牛屎,那么不好意思,还是再去补补课把。这里推荐一本《数字设计——原理和实践》(John F.Wakerly)的书,仔细看一遍吧。   同步时钟设计   简单说就是一个系统中(或系统中的一部分)都采用同一个时钟触发。系统中的(D)触发器全部都连接到一个时钟,而且只控制触发器的同步端(输入,同步置位,同步复位)。这样的系统是相对于异步系统而言的,异步系统并不是不同的触发器时钟端连接到不同的时钟信号的系统(一般的这样叫做跨时钟系统,是相对几个较小的同步系统的组合),而是更本没有了时钟的概念,依靠和触发器构造一样的反馈电路组成。相对于异步系统,同步系统更好设计(异步设计则象一个魔术

性能最大化ΔΣ 转换器

自作多情 提交于 2019-11-28 02:34:57
http://hi.baidu.com/hieda/blog/item/4a7f2382ca9f70a60cf4d21d.html 作者:德州仪器公司 Russell Anderson 数据转换器分辨率和速度一直处于不断改进中。我仍然记得大概25年前在Tektronix参加的一个会议上,集体讨论了数据转换器的未来发展方向。我甚至不敢想象分辨率能够从 16 位提高到 24 位。但是,ΔΣ 转换器的架构却能够实现如此激动人心的分辨率突破。 ΔΣ 转换器能够实现 24 位的转换结果。虽然这听起来让人振奋,但是为了达到最佳效果,我们仍然需要正确选择许多参数。随着抽样、调制时钟和 PGA 的调整,相同数据速率在性能方面会有所不同。在优化数据转换结果时,对于这些方方面面做到完全了解并非易事。另外一些问题还包括输入阻抗、滤波器响应、抗混淆,以及长期漂移。 ΔΣ 转换器介绍 ΔΣ 转换器的优势就在于它把大部分转换过程转移到了数字域。这使得它能够把高性能模拟与数字处理融合在一起。模拟元件采用单个比较器、积分器和1位的DAC。由于1位DAC只有两个输出,因此它在整个电压范围内均是线性化的。这种高水平的线性化是 ΔΣ 转换器实现高精确度的原因之一。最终的绝对精度主要取决于基准电压的精度。 ΔΣ 调制器 图1:ΔΣ调制器 让我们看一个简单的 ΔΣ 调制器中的波形(参见图1)。其中输入信号X1比例为1/4

异步FIFO结构及FPGA设计 ---跨时钟域设计

心已入冬 提交于 2019-11-28 02:34:21
http://hi.baidu.com/hieda/blog/item/e8f8752465afb337c895593c.html 异步FIFO 结构及FPGA 设计 吴自信,张嗣忠. 单片机及嵌入式系统应用,2000 摘要 :首先介绍异步FIFO的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法;在传统设计的基础上提出一种新颖的电路结构并对其进行综合仿真和FPGA实现。 1、异步FIFO介绍 在现代的集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步 FIFO(First In First Out)是解决这个问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟系统之间快速而方便地传输实时数据。在网络接口、图像处理等方面, 异步FIFO得到了广泛的应用。 异步FIFO是一种先进先出的电路,使用在需要产时数据接口的部分,用来存储、缓冲在两个异步时钟之间的数据传输。在异步电路中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为零。如何设计一个高可靠性、高速的异步FIFO电路便成为一个难点。本文介绍解决这一问题的一种方法。 由图1可以看出:整个系统分为两个完全独立的时钟域——读时钟域和写时间域;FIFO的存储介质为一块双端口RAM,可以同时进行读写操作。在写时钟域部分

centos ntp时钟同步

给你一囗甜甜゛ 提交于 2019-11-27 10:02:07
该笔记主要用于记录ntp的服务器地址或简单的使用方法。 很多时候我们在安装好系统后,如果不注意查看会发现本机时间和实际时间会有差异,特别在线上或实验的时候也会因为时区不一致而无法完成。所以这里简单记录一下。 1.安装ntp服务 yum install ntp -y ###安装服务 systemctl start ntpd #####启动服务 systemctl enable ntpd #####开机启动 2.设置时区为shagnhai即CST时间 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 3.配置ntp时钟同步 ntpdate asia.pool.ntp.org 阿里云 ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com Windows 系统上自带的俩个: time.windows.com 和 time.nist.gov Mac OS X 上自带的俩个: time.apple.com 和 time.asia.apple.com 中国国家授时中心 NTP服务器地址是: ntp.ntsc.ac.cn 这些时钟同步服务器地址从网上收集的应该够用了。

Zookeeper Watcher和选举机制

♀尐吖头ヾ 提交于 2019-11-27 07:36:47
Watcher 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。 7.1什么是Watcher接口 同一个事件类型在不同的通知状态中代表的含义有所不同,表7-3列举了常见的通知状态和事件类型。 表7-3 Watcher通知状态与事件类型一览 KeeperState EventType 触发条件 说明 None (-1) 客户端与服务端成功建立连接 SyncConnected (0) NodeCreated (1) Watcher监听的对应数据节点被创建 NodeDeleted (2) Watcher监听的对应数据节点被删除 此时客户端和服务器处于连接状态 NodeDataChanged (3) Watcher监听的对应数据节点的数据内容发生变更 NodeChildChanged (4) Wather监听的对应数据节点的子节点列表发生变更 Disconnected (0) None (-1) 客户端与ZooKeeper服务器断开连接 此时客户端和服务器处于断开连接状态 Expired (-112) Node (-1) 会话超时 此时客户端会话失效