FPGA基础学习(6) -- 原语】的更多相关文章

目录 1. IBUF和IBUFDS(IO) 2. IDDR(Input/Output Functions) 3. IBUFG和IBUFGDS(IO) 原语,即primitive.不同的厂商,原语不同:同一家的FPGA,不同型号的芯片,可以也不一样:原语类似最底层的描述方法.使用原语的好处,可以直接例化使用,不用定制IP:即可通过复制原语的语句,然后例化IP,就可使用:Xilinx是通过直接修改原语中的参数再例化IP来使用:Xilinx公司的原语分为10类,包括:计算组件,IO端口组件,寄存器/锁…
目录 1. 总览 2. 可配置逻辑单元 2.1 6输入查找表(LUT6) 2.2 选择器(MUX) 2.3 进位链(Carry Chain) 2.4 触发器(Flip-Flop) 参考文献: 一直以来,觉得自己关于FPGA方面,摸不到"低"--对底层架构认识不清,够不着"高"--没真正独立做过NB的应用,如高速.复杂协议或算法.神经网络加速等高大上的应用,所以能力和认识水平都处于中间水平.这段时间做时序优化,感觉心有余而力不足了,可能要触及手动布局布线了,打开Dev…
文章主要是基于学习后的总结. 1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域.假如设计有两个输入时钟,如图1所示,一个时钟给接口1使用,另一给接口2使用,那么我们说这个设计中有两个时钟域. 2. 亚稳态 触发器的建立时间和保持时间在时钟上升沿左右定义了一个时间窗口,如果触发器的数据输入端口上数据在这个时间窗口内发生变化(或者数据更新),那么就会产生时序违规.存在这个时序违规是因为建立时间要求和保持时间要求被违反了,此时触发器内部…
目录 1. 常见问题 2. 常见的复位方式 3. 合理的复位设计 3.1 复位电平 3.2 异步复位同步化 3.3 恰到好处的复位 4. 补充 4.1 所谓的上电初始化 参考文献 一开始接触到FPGA,肯定都知道"复位",即简单又复杂.简单是因为初学时,只需要按照固定的套路--按键开关复位,见寄存器就先低电平复位一次,这样一般情况可以解决99%的问题,甚至简单的设计,就不可能有问题.复杂是因为复位本身是对大规模的硬件单元进行一种操作,必须要结核底层的设计来考虑问题. 1. 常见问题 自…
目录 1. 理论回顾 2. 时间裕量 3. 最大延迟和最小延迟 4. 案例分析 参考文献: 距离上一篇有关时序的理论篇已经有一段时间了(可以参考博文FPGA时序约束--理论篇),实际上此段时间,甚至到今天对FPGA的时序一直还是处于一种"朦胧"的状态,经历了一个阶段的学习和项目时间,稍微有点感触,故借此总结一下. 1. 理论回顾 先来回顾一下有关时序的理论知识,上图是典型的同步时序模型及其时序图,由发起寄存器(rega).组合逻辑.捕获寄存器(regb)及其中间的走线组成. 源时钟cl…
目录 1. 基本结构 2. BRAM与DRAM的比较 3. BRAM的特点 4. Block Memory的使用 4.1 配置为RAM或ROM 4.2. 配置为FIFO 参考文献: 上一篇中提到了SLICEL和SLICEM都可用作ROM,后者还可以作为分布式RAM(Distribute RAM,DRAM).本篇主要总结的是块状Memory(Block Memory),实际上就是FPGA内部独立于逻辑单元的专用存储器,更像是一种硬核. 1. 基本结构 如下图所示,一个Block Memory的大小…
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布线工具进行权衡,获得最优的器件性能,使设计代码最大可能的反映设计者的设计意图. 花些功夫在静态时序分析上既可以保证设计质量,也可以促使设计者再认识自己的代码.这后一点,对于我们这些逻辑设计初学者来说,尤为重要.从门级(在Altera的FPGA器件中是LE 级)再认识自己的代码,可以更深入地体会语言的…
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. 1 配置 在FFT Megacore Function中选择"parameterize",弹出对话框. "Parameters"栏中,选择器件.转换数据的长度.数据精度已经旋转因子的精度.注意旋转因子精度必须小于等于数据精度. "Architecture&q…
ALTERA在LPM(library of parameterized mudules)库中提供了参数可配置的单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO).FIFO主要应用在需要数据缓冲且数据符合先进先出规律的同步或异步场合.LPM中的FIFO包含以下几种: 1.SCFIFO:单时钟FIFO: 2.DCFIFO:双时钟FIFO,数据输入和输出的宽度相同: 3.DCFIFO_MIXED_WIDTHS:双时钟FIFO,输入输出数据位宽可以不同. 配置不细说,直接看时序来理解. 1.…
FPGA学习的一些误区 FPGA入门必看资源 FPGA百度百科 FPGA基础知识及其工作原理 高端设计工具为少有甚是没有硬件设计技术的工程师和科学家提供现场可编程门阵列(FPGA).无论你使用图形化设计程序,ANSIC语言还是VHDL语言,如此复杂的合成工艺会不禁让人去想FPGA真实的运作情况.在这个芯片中的程序在这些可设置硅片间到底是如何工作的.本文会使非数字化设计人员明白FPGA(现场可编程门阵列)的基础知识及其工作原理.此信息在使用高端设计工具时同样十分有用,希望可以为理解这一特别技术提供…
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. 十七篇链接:salesforce 零基础学习(十七)Trigger用法 有的时候对于sObject的trigger处理复杂的情况下,比如一个sObject的before update要实现功能1,2.....n功能情况下,Handler中需要在before update写实现功能1--n的代码.然而…
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月1日开始,在<博客园>平台进行<VR零基础学习开发>系列文章连载,敬请关注. 在此呢,我写下此文,希望能够帮助那些有相同疑惑的朋友. VR到底是什么. VR是Virtual Reality的缩写,中文的意思就是虚拟现实. 虚拟现实(VR)是近几年来国内外科技界关注的一个热点,其发展也是…
IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageControl分页控件.这些控件的基类均是UIControl,而UIControl派生自UIView类,所以每个控件都有很多视图的特性,包括附着于其他视图的能力.所有控件都拥有一套共同的属性和方法. 具体视图关系如下…
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. body:页面的主体标签,页面展现的内容就放置在这里面. script:脚本标签,可以把js脚本代码放置在这个标签内,也可以使用这个标签的src属性引入一个外部标签. title:页面的标题.我们有一个HTML的学习交流群,搜索四八七中间是一七一最后是839,平时提供大家一起学习HTML,每天有免费H…
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中的列表list,其实就是shell中的数组: name_list=[] #定义一个空列表 name_list.append('John') #添加数据 name_list.insert(2,'Jac') #向位置2插入jac name_list[1:] #读取从索引1到结束的所有索引值 name_l…
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分需要保存到以.py结尾的文件,就可以进行测试了.这里主要介绍一些常用的语法,可能并不全面,后期再根据需要添加吧. 1.编程风格    缩进要统一 有种说法:python语言是"靠缩进控制代码的语言",的确如此. 2.注释代码    单行:# 多行:''' 代码: #!usr/bin/env…
酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PHP,HTML,jsp,asp...); 一. CSS的定义 CSS 是指层叠样式表, (Cascading Style Sheets),来定义HTML如何显示的; 二. CSS分为内联样式和外联样式 内联样式,就是写到HTML里面, 一般都是这样来写: <head> <style> .…
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的时候, 会通过SPL注册一个自己的Autoloader, 出于性能的考虑, 对于框架相关的MVC类, Yaf Autoloader只以目录映射的方式尝试一次. 具体的目录映射规则如下: 对于控制器 Controller 默认模块下为{项目路径}/controllers/, 否则为{项目路径}/mod…
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置项都以ap开头. Yaf的核心必不可少的配置项只有一个(其实, 这个也可以有默认参数, 但是作者觉得完全没有配置, 显得太寒酸了). Yaf通过在不同的环境中, 选取不同的配置节, 再结合配置可继承, 来实现一套配置适应多种环境(线上,测试,开发). yaf一个必不可少的配置项,也就是配置应用项目的…
一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一点有所改变,qt引入了canvas画图,我们可以在程序中自定义一个画布来绘制自己想要的图形,然后达到我们自己想要的效果. 二.效果预览 图1 canvas画布 三.源码分析 代码量都是算法,这个我就不解释了(主要是看不懂),控件中就包含了一个Canvas画布,然后在画布的onPaint函数中绘制图形…
一.理解qml模型和视图 qt的发展是迅速的,虽然在每一个release版本中或多或少都有bug,但是作为一个庞大的gui库,no,应该说是一个开发框架开说,qt已经算是做的相当好.qml部分是qt4.7的时候推出的,当时qml只是为了移动端而设计的开发语言,随着it行业的发展,桌面端也产生了一定的需求,这就使得qml也必须支持桌面端的开发.使用qml可以做出绚丽的界面,并把逻辑和界面展示分开,qml和C++就好比html和JavaScript. qt中有大量的model/view类,视图类:Q…
Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都支持回调. Eg:可以一边读取文件,一边执行其它的命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回,这样在执行代码时就没有阻塞或等待文件I/O操作.大大的提高了node.js的性能,处理大量的并发请求.(简单的理解就是同时做两件或者多件事情,减少其等待的时间) 阻塞代码: 1:创建文本和…
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好 安装 à安装node.js 在官网安装自己win版本的node.js的版本,下载,安装完毕后在运行中输入node -v若是出现版本号就证明安装成功. à安装npm(模…
初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NET windows网络框架的主角. C#是一种语言,.net是一个平台.C#不但可以开发基于.net的应用程序,也可以开发基于WinForm的程序.. net 是 Microsoft 的 XML Web 服务平台,XML Web 服务能使应用程序在 Internet 上传输和共享数据. 特点: 强类…
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD的函数,单独做一个添加DVD的函数,如果还要往这个媒体库里添加其他的媒体类,还要再创建另一个添加函数.我们说这样的代码不具备可扩展性.另外,CD和DVD有很多相似之处,它们的成员变量里都有标题,播放时长,评论,等等,我们称这样的程序存在大量的代码复制,代码复制是代码不良的表现.所以我们可以创建一个它…
原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时…
AspectJ基础学习之三HelloWorld(转载) 一.创建项目 我们将project命名为:aspectjDemo.然后我们新建2个package:com.aspectj.demo.aspect 和 com.aspectj.demo.test 前者用来方apsect.后者用来放测试类.如果你仔细的话,你会发现Aspectj的项目上面有个AJ的标志. 二.创建Aspect 首先我们创建HelloWorld.java.他包含main()方法,但是没有方法体,代码如下: package com.…
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可以提供语法检查,以及编译.这里要说一点重要的知识: aspectj不能使用传统的JDK编译,他的编译器扩展自JDK.AJDT提供的编译功能,就为我们省了很多事,当然你也可以用命令行自己去编译(不过我从来没有这么做过). 无论是apsectj的安装,还是AJDT网上还是有很多文章讲的.不会的同学可以自…
AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/,目前最新版本为:1.7.0 RC1.但关于他使用的中文资料少之又少,几乎没有比较完整的中文资料对其做介绍.笔者用Aspectj有段时间了,对其语法还是有些了解.故把自己的经验写出来与大家分享.学习过程主要是从官方网站学习,由于笔者英文水平有限(4级没有过),有理解不到位的地方也请大家多多指正. 二…
Yaf零基础学习总结3-Hello Yaf 上一次我们已经学习了如何安装yaf了,准备工作做好了之后我们来开始实际的编码了,码农都知道一个经典的语句就是“Hello World”了,今天我们开始入手Yaf,目标只要能得到“Hello Yaf”就可以了,不多说,下面开始了.(注:需要读者有一定的MVC知识基础,最好用过一些其他简单的框架) 1.组织目录结构 对于使用过框架的来说这点很好理解,对于没使用过框架的来说建议先别在这死磕,先记着吧,简单点就是对于我们的文件结构做一些规定,让自己和别人都能看…