fpga

FPGA之道(8)时钟处理单元

谁说我不能喝 提交于 2020-02-10 16:31:55
文章目录 前言 背景 PLL Xilinx公司的锁相环结构简介 Altera公司的锁相环结构简介 DCM 前言 2020年2月10日15:02:18 这个时间的FPGA发展可以说已经很成熟了,Xilinx早已推出了ZYNQ系列,并推出了新工具VITIS 2019.2,当然Vivado并没有淘汰也几乎不可能淘汰,VITIS 2019.2自然也内含了Vivado 2019.2. 对于FPGA中的时钟处理单元,或者说时钟管理单元,在7系列FPGA中,有我们最常见的MMCM以及PLL,这在FPGA工程中,建立时钟IP核时可以清晰的看到。 至于更早期的时钟处理单元,有DCM、PLL等,叫法不同 ,下面根据《FPGA之道》这本书上的描述简单介绍一下。 背景 在实际的使用中,经常会碰到外部送给我们的时钟信号在频率或者相位上并不满足直接使用的要求,而内部时序逻辑又只能对时钟信号进行整数倍的分频,并且不能保证产生新时钟信号的相位稳定性,所以这个时候就需要用到时钟处理单元。 时钟处理单元可以对时钟信号进行高精度的倍频、分频和相位调整,因此对时序逻辑的设计非常重要。FPGA中的时钟处理单元共有两种:PLL和DCM,分别介绍如下: PLL PLL,英文全称:Phase Locked Loop,翻译成中文即锁相环。因为PLL调整输入时钟信号频率和相位的原理中利用了模拟电路的知识。因此一般来说

fpga该驱动器调试dev_dbg 无输出

一曲冷凌霜 提交于 2020-02-09 03:15:00
近期需要调试fpga驾驶,整个是非常蛋疼。dev_dbg 我想用这个作为没有成功调试输出,它已被彻底打垮! 反射... 现在基于以下设置是不相关的打印,和网上说的有些出入,问题还得研究下。 驱动程序调用dev_dbg的地方 打卡debug功能 printk.c的console默认级别也改动为8了 device.h文件 #insmod 3s3gs.ko 3s3gs Ethernet Driver, V0.11 FPGA id 23310001 FPGA Version: 0.9b022, TimeCode: 2014-02-12 probe 3s3gs done 通过insmod载入驱动,显示! 运行dmesg也没有相关信息出现。真的邪门了! 版权声明:本文博客原创文章。博客,未经同意,不得转载。 来源: https://www.cnblogs.com/zfyouxi/p/4632507.html

FPGA开发过程

旧巷老猫 提交于 2020-02-08 17:59:08
编码习惯和工程管理习惯;比如目录 design和sim文件夹 声明模块时,输入变量一定是wire变量; 沿触发的逻辑里边一定都用<=非阻塞赋值 Sim中的文件是不可综合的模块,是行为级模块; 在sim文件中,destbench文件开头声明:`timescale 1ns/100ps 1ns是单位 100ps是精度; #10.1 的精度是可以识别的,如果是#10.11那麽0.01就不行了,因为精度是100ps Initial // 初始化使用顺序执行,只能对寄存器模块赋值 来源: CSDN 作者: 开发联盟 链接: https://blog.csdn.net/weixin_40673765/article/details/104224540

什么是ASIC芯片?与CPU、GPU、FPGA相比如何?

◇◆丶佛笑我妖孽 提交于 2020-02-07 15:11:52
http://www.elecfans.com/d/672204.html 继4月初 联发科 宣布扩大 ASIC 产品阵线,推出业内首个7nm 56G PAM4 SerDes IP之后,4月24日,在联发科深圳办公室,联发科举行了一场小型的媒体会,联发科副总经理暨智能设备事业群总经理 游人杰及联发科智能显示暨客制化芯片事业部行销处处长彭建凯首次揭秘了联发科的ASIC业务。 什么是ASIC芯片? 近年随着以 比特币 为代表的虚拟货币市场的火爆,催生了一大批生产“挖掘”虚拟货币设备的“矿机”厂商,其中最为知名的要属比特大陆了。而比特大陆之所以能够在矿机市场异军突起,则主要得益于其自主设计的针对比特币矿机的ASIC芯片。因为相对于 CPU 、 GPU 来说,采用专用的ASIC芯片来“挖矿”更具效率。以比特大陆的Antminer S9矿机为例,其内部集成了189个 ASIC芯片(BM1387),而且采用的是台积电16nm FinFET制程。同样,目前主流的矿机厂商都采用的是定制的ASIC芯片。这也使得ASIC芯片开始被大众所熟知。但是ASIC芯片并不仅仅能被用于“挖矿”,还被用于包括人工智能在内等众多领域。 那么什么才是ASIC芯片?它与我们常见的CPU、GPU等通用型芯片相比又有何不同? 早在1981年3月,Sinclair公司推出了一款8位个人电脑ZX81

FPGA、单片机、DSP、ASIC的区别

吃可爱长大的小学妹 提交于 2020-02-07 14:17:27
https://zhuanlan.zhihu.com/p/21357765 ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路,相对来说更接近FPGA,甚至在某些地方,ASIC就是个大概念,FPGA属于ASIC之下的一部分。 FPGA基本就是高端的CPLD,两者非常接近。我现在用的是ALTERA DE2开发板的CYCLONE系列FPGA。这种器件是用逻辑门来表述性能的。本身他就是一堆的逻辑门,通过硬件描述语言,比如verilogHDL把它转成电路连接,从最基本的逻辑门层面上连接成电路(参见数字电路书上那些全加器触发器什么的)。应该说,虽然看起来像一块CPU,其实是完全硬件实现的。后来因为写代码麻烦,对控制部分比较薄弱,本来跟其他CPU配合使用,即麻烦的算法CPU提交给FPGA,FPGA算完把结果再返回给CPU。可是这样外围电路就变得麻烦。于是提出了SOC设计方法,就是直接在FPGA里写一个CPU出来,既然FPGA万能,做个CPU自然毫无压力。这其中还有软核和硬核的区别,不过除了性能,使用方法大同小异。所谓IP核,就是把各种专用集成电路用硬件描述语言描述,然后烧到FPGA里形成专门的电路,这样就不必另外搭芯片了

ZYNQ7000 通过FPGA Manager加载比特流

冷暖自知 提交于 2020-02-06 17:09:08
参考: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager https://blog.csdn.net/weixin_40604731/article/details/100690049 前言 实际项目中,往往存在PL端设计不断迭代的过程。 一种是可以不断生成新的fsbl合成BOOT.BIN文件,拷贝到SD卡,但涉及到每次需要插拔SD卡,比较难受。 有么有可以直接download到linux,通过linux的驱动层去更新PL端呢? xilinx提供了FPGA manager(流程暂未验证)。 流程 以上。 来源: https://www.cnblogs.com/kingstacker/p/12269049.html

FPGA之静态数码管显示

一曲冷凌霜 提交于 2020-02-06 07:54:26
数码管显示0~F,每隔0.5秒变换一次 数码管连接方式不同分为 共阴极 数码管和 共阳极 数码管。 数码管引脚: 上图两个com引脚实际是连在一起的,其他引脚的公共端,称为 位选 ,位选的高低电平决定改数码管能否点亮,其他管脚为 段选 信号,决定数码管上哪个二极管发光。 共阴极数码管 连接方式 共阳极数码管连接方式: 共阳八段极数码管真值表 数码管原理图 以第五个数码管为例,LEDSEG CH6通过470R的电阻连接到Q6三极管的基极,第五个数码管的位选SEL5连接到Q6三极管的集电极,Q6三极管的发射极;连接电源。所以在代码中,只需将LEDSEG CH6(代码意义的位选)赋值为0(低电平),则数码管真正的选段就连通电源了,此数码管位共阳极数码管。在数码管电路图中,六个数码管公用八个段选信号,段选信号与FPGA管脚连接。所以,静态显示的时候,六个数码管显示的一样。 本次设计的系统框图 顶层模块原理图 顶层模块设计 module seg_led_static_top ( input sys_clk , //系统时钟 input sys_rst_n , //系统复位信号(低有效) output [ 5 : 0 ] sel , //数码管位选 output [ 7 : 0 ] seg_led //数码管段选 ) ; //parameter define parameter TIME

FPGA学习中的小知识点与感悟

你离开我真会死。 提交于 2020-02-05 12:39:10
1.verilog语言中操作数使用补码的形式处理数据,reg型数据可以赋正值,也可以赋负值。但当一个reg型数据是一个表达式中的操作数时,它的值被当作是无符号值,即正值,记得注意转换。 2.verilog语言算数运算中**代表指数运算,eg:2**M代表2 M 。 3."按位异或"运算符^,"按位同或"运算符^~ 。 4.可以用触发器打拍子,一方面实现信号同步,以后好处理,一方面对于亚稳态的有效减少。 5.之前数据结构学的知识不止可以用在软件语言上,这些逻辑结构是客观存在的,算法是客观存在的。不管是硬件语言还是软件语言,只要能设计合适的存储结构即可,比如C++中对于队列思想的实现,可以用数组,也可用链表,同样,在硬件中可以用一个寄存器组来实现FIFO队列。 6.为了实现信号的高速处理,尽量把大任务分解成小任务,利用乒乓操作,流水线设计,串并行转换等(本质上是速度面积的互换)。 来源: https://www.cnblogs.com/IC-lin/p/12263108.html

5 FPGA时序约束理论篇之两种时序例外

僤鯓⒐⒋嵵緔 提交于 2020-02-05 08:56:36
两种时序例外 多周期路径   上面我们讲的是时钟周期约束,默认按照单周期关系来分析数据路径,即数据的发起沿和捕获沿是最邻近的一对时钟沿。如下图所示。   默认情况下,保持时间的检查是以建立时间的检查为前提,即总是在建立时间的前一个时钟周期确定保持时间检查。这个也不难理解,上面的图中,数据在时刻1的边沿被发起,建立时间的检查是在时刻2进行,而保持时间的检查是在时刻1(如果这里不能理解,再回头看我们讲保持时间章节的内容),因此保持时间的检查是在建立时间检查的前一个时钟沿。   但在实际的工程中,经常会碰到数据被发起后,由于路径过长或者逻辑延迟过长要经过多个时钟周期才能到达捕获寄存器;又或者在数据发起的几个周期后,后续逻辑才能使用。这时如果按照单周期路径进行时序检查,就会报出时序违规。因此就需要我们这一节所讲的多周期路径了。 多周期约束的语句是: set_multicycle_path <num_cycles> [-setup|-hold] [-start|-end][-from <startpoints>] [-to <endpoints>] [-through <pins|cells|nets>] 参数 含义 num_cycles [-setup -hold] 建立/保持时间的周期个数 [-start -end] 参数时钟选取 -from 发起点 -to 捕获点 -through

Xilinx FPGA 架构简介

99封情书 提交于 2020-02-05 03:23:05
Xilinx FPGA 架构简介 作者:AirCity 2020.2.4 Aircity007@sina.com 本文所有权归作者Aircity所有 直接用一张图来说明Xilinx FPGA都包含哪些核心内容: LUT,Look up table的简称,本质上是一个RAM,目前FGPA中多使用4输入的LUT,每一个LUT可以看成一个有4位地址线的16x1 RAM(16个1bit存储空间)。HDL语言描述了一个逻辑电路后,软件会自动计算所有可能的运算结果,并把结果写入到RAM中,这样每输入一个信号就相当于输入一个地址进行查表,找出地址响应内容。 由于制造工艺所限,FPGA都有漏电流存在,漏电流受内核VCCINT影响很大,大约与其立方成正比。如果VCCINT提升5%,静态功耗会增加15%之多。因此要控制好VCCINT的纹波水平。 FPGA与CPLD的区别 FPGA CPLD SRAM工艺,基于LUT结构 EEPROM工艺,乘积项结构 基本单元为CLB,颗粒度小,延迟与系统布局有关 基本单元是LCM(可编程逻辑宏单元),颗粒度大,特点是延迟相等 适用于数据密集型场合,完成复杂时序逻辑,需要大量触发器 适用于控制密集型场合,输入较多,复杂,完成组合逻辑。 来源: CSDN 作者: AirCity123 链接: https://blog.csdn.net/AirCity123/article