FPGA时序约束2 上一篇已经简单的介绍了时序,本文将会以一个ADC实例简单粗暴的进行分析;现有一块ADC连接到FPGA上,需要在FPGA上实现高速数据的读取,那么第一步自然就是完成可靠的硬件连线,其中需要注意的是:1. 注意信号的完整性,尽可能的避免边沿退化;这两区分两个概念: i. 高速信号,指的是信号翻转,由高电平到低电平或者反之所耗得时间非常小;可能一个1MHz的TT
FPGA设计-时序约束1 最近都在做ARM的方面学习工作,感觉有必要记录下来之前FPGA的工作,好记性也不如烂笔头;说起FPGA,断断续续的也用过4,5年了,中间接触过DSP,就是因为没有记录文档资料,目前几乎快忘光了;FPGA方面的心得,将会由以下几个方面进行总结:1. FPGA时序约束以及高速ADC约束实例2. TDC进位延时链设计以及研究3. TDC的精度以及自动校正算法的实现
ping-pong操作 下图给出了pingpang的基本原理框图,从图上可以看出使用pingpang的主要作用 就是使用多个低速的数据预处理模块处理高速的输入数据流。这样做可以提高系统的数据吞吐量(如果不使用乒乓的话数据预处理模块会成为设计中限制系统数据吞 吐量的瓶颈),同时增加了数据缓冲延迟。另一个解释:所谓ping-pong buffer,也就是定义两个buffer,当
指针 说在前面的话不得不说,看了太多的人在各种地方讨论指针……越发看下去,越发觉得简单的事情被搞那么复杂,真是够了,求求你们,放开那个变量,让我来!以下讨论均以ARM环境下使用C语言进行嵌入式软件开发为背景。感谢网友的批评指正。1、从变量的三要素开始谈起 为了把复杂的事情说简单,我们抛开指针先从变量谈起。(好吧,不知道这个笑话是不是够冷)一个变量(V
时间触发调度器 /********************************************************************************//******************************数据结构******************************************/typedef tWord unsigned int;typedef tB
题目:多功能按键设计。利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按。 题目:多功能按键设计。利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按。 ============================================================================ 用户基本操作定义: 1。短按操作:按键按下,按下时间<1s,属于一次短按操作 2。长按操作:按键按下,按下时间>1s,属于一
马潮按键扫描状态机思想10ms执行一次 #define key_input PIND.7 // 按键输入口#define key_state_0 0#define key_state_1 1#define key_state_2 2char read_key(void){ st
基于状态机思想的按键扫描程序支持单按,连续按,长按模式。 typedef enum { ButtonsStateUp = 0, ButtonsStateDownJitter , ButtonsStateDown , ButtonsStateUpJitter} EnumButtonsState;typedef unsigned char uint8;typedef unsigned lon
YModem协议 YModem协议: YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。 下面先看下YModem协议传输的完整的握手过程:先看下图SENDER:发送方。RECEIVER:接收方。第一步先由接收方,发送一个字符'C'发送方收到'C'后,发送第
swim swd jtag LED状态说明闪烁红色:ST-LINK/V2连接到计算机后,第一次USB枚举过程红色:ST-LINK/V2与计算机已建立连接闪烁绿色/红色:目标板和计算机在进行数据交换绿色:通讯完成橙色(红色+绿色):通讯失败---------------------------------------------------------------------------------
line_fit #include #include #include #define POINTS_NUM 6typedef struct { double x; double y;}typePoints;typePoints points[POINTS_NUM] = { { 0 , 0.002 }, { 0.1 , 0.082 }, { 0.2 ,
DMA理解 单片机的DMA使用心得本人也是最近才深入了解一下DMA,前期使用单片机的时候基本上没有用到。一是不需要用到,二是心理上觉得DMA比较困难,所以不使用。在学习的过程中有一些心得体会,与大家分享一下。首先介绍一下啥子是DMA,说的通俗易懂一点就是一个搬运工。既然是搬运工,就有几个需要注意的问题。1. 从哪里搬运到哪里 一般是特殊寄存器到RAM(我们自己定义的数组里面),或
ping-pong操作 1 什么是pingpong? pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率。2 什么时候需要pingpong?在两个模块间交换数据时,上一级处理的结果不能马上被下一级所处理完成,这样上一级必须等待下一级处理完成才可以送新的数据,这样就会对性能产生很大的损失。引入pingpong后我们可以不去等待下一级处理结束,而是将结果保
// 递推平均滤波法(又称滑动平均滤波法) // 递推平均滤波法(又称滑动平均滤波法)#define FILTER_N 12int filter_buf[FILTER_N + 1];int Filter() {int i;int filter_sum = 0;filter_buf[FILTER_N] = Get_AD(); //AD转换的值赋给数组最后一个值for(i = 0; i {filter_b
ccitt crc16 CCITT CRC-16计算原理与实现 (2010-04-01 13:18:52)转载▼标签: 杂谈 CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件,以及解压一个ZIP文件时
ccs5命令行编译 Code Composer Studio提供了几个命令行工具,用户可以使用这些工具创建工程,编译工程,导入工程文件到本地工作空间。使用这些工具,用户可以在不启动CCS图形界面的情况下对工程进行操作,简化工程文件的版本维护,方便自动化测试等。创建工程的格式:eclipsec –noSplash -data -application com.ti.ccstudio.apps.projec
dsp 定标 一 DSP定点算数运算1 数的定标在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。在字长固定的前提下,所需要达到的精度越高,那么所能表示的浮点数的范围就会越小。如无特别说明,本书均以16位字长为例。DSP芯片的数以2的补码形式表示。每
uc/os ii 处理全局变量的方法 以下是如何定义全局变量。众所周知,全局变量应该是得到内存分配且可以被其他模块通过C语言中extern关键字调用的变量。因此,必须在 .C 和 .H文件中定义。这种重复的定义很容易导致错误。以下讨论的方法只需用在头文件中定义一次。虽然有点不易懂,但用户一旦掌握,使用起来却很灵活。表1.2中的定义出现在定义所有全局变量的.H头文件中。 程序清单 定义全局宏