
FPGA/DSP
文章平均质量分 59
达则兼济天下SEU
这个作者很懒,什么都没留下…
展开
-
Verilog运算符优先级
如图:原创 2022-03-03 14:56:13 · 685 阅读 · 0 评论 -
关于genvar及generate用法的总结【Verilog】
Abtractgenerate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复。这些语句可以包括模块实例引用的语句、连续赋值语句、always语句、initial语句和门级实例引用语句等。细化时间是指仿真开始前的一个阶段,此时所有的设计模块已经被链接到一起,并完成层次的引用。Introduction1.generate语法定义genvar,作为generate种的循环变量。generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。begin必须转载 2022-03-01 20:53:29 · 15337 阅读 · 1 评论 -
Verilog中begin···end语句执行顺序,阻塞赋值与非阻塞赋值,always和assign,wire和reg
Verilog中分阻塞赋值和非阻塞赋值两种,组合逻辑多用阻塞赋值,此时使用begin···end语句,将一条执行完再执行下一句,即顺序执行。而时序逻辑多是并行执行,多用非阻塞赋值,begin···end语句的作用只是相当于函数的花括号,将一段语句划分成块,但是在块里语句依然是并行执行的,在一个模块完成时会同时执行,所以在非阻塞赋值中begin···end语句并非顺序执行的。...原创 2022-02-18 16:01:45 · 4470 阅读 · 0 评论 -
VHDL基本语法
VHDL程序一般是由以下五部分组成的:1、库(Library) 2、包(Package) 3、实体(Entity) 4、结构体(Architecture) 5、配置(Configuration)其中,实体和结构体两大部分组成程序设计的最基本单元。1、引用库library IEEE; //表示打开IEEE库,因为IEEE库不属于VHDL的标准库,所以使用库的内容要先声明use ieee.numeric_std.all; //USE和ALL是关键词,表示允许使用I...原创 2021-06-07 15:28:22 · 1113 阅读 · 1 评论 -
Xilinx PLL与MMCM区别(待续)
1、DCM实际上就是一个DLL,可以对输入时钟进行相位移动,补偿,产生倍频和分频时钟,但是5以及以后的产品不用了。2、PLL相对于DCM,除了不能相移时钟,其它的都一样,但是PLL产生时钟的频率比DCM更加精准,而且时钟的jitter也更好。3、MMCM实际上就是PLL+DCM相移功能的结合体。7系列的FPGA还会在临近I/O部分放置一些PLL,专门给MIG来产生DDR时钟。...原创 2021-02-08 10:28:19 · 2354 阅读 · 0 评论 -
Vivado IP的两种综合方式:Global 和 Out-Of-Context
在最新的Vivado的版本中,定制IP的时候,会有一个综合方式的选择,如下图所示。可以看到一种叫做”Global”,一种叫”Out-Of-Context (OOC)”。从字面意思上来理解,”Out-Of-Context”是“脱离上下文”的意思。”Global”即全局。Global synthesis如果选择的是全局综合选项,那IP生成的文件将会和其他的用户文件一起进行综合,这也就意味着,每一次用户文件被修改后,IP都会跟着一起综合一遍。Out-Of-Context (OOC)OOC选项是转载 2020-10-19 11:37:38 · 1923 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(3):使用IP核
IP核(IP Core)Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。方式一:使用Verilog调用IP核这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v顶层模块。(过程参考上篇文档)添加IP核点击Flow Navigator中的IP Catalog。.转载 2020-09-08 20:16:32 · 3083 阅读 · 0 评论 -
xilinx Vivado的使用详细介绍(2):综合、实现、管脚约束、产生比特流文件、烧写程序、硬件验证
IO口配置(I/O Planning)/编辑约束文件(Edit Constraints Sets)做好的模块,在烧写进板子之前,需要设置输入输出信号与板子上IO口的对应关系。IO口设置有两种方法,第一种是直接创建并编辑约束文件,第二种是在图形界面进行设置。编辑约束文件操作和上一步添加Verilog设计文件、仿真文件基本一致,唯一的区别是选择Add or Create Simulation Sources。新建一个名为Zedboard_pin的约束文件。打开Zedboard_p..转载 2020-09-02 10:43:10 · 14797 阅读 · 2 评论 -
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真
新建工程打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程。点击Next;输入工程名称和路径。选择RTL Project,勾选Do not specify sources at this time(这样可以跳过添加源文件的步骤,源文件可以后面再添加)。直接选择Boards,然后选择Zedboard Zynq Evaluation and Development Kit 硬件...转载 2020-08-28 19:14:13 · 10061 阅读 · 0 评论 -
Lattice Diamond 的学习之新建工程
1)、打开软件 在软件打开后的初始布局会有一个Start page 可以创建、打开、导入一个ISPLEVER 工程。转载 2020-08-14 08:56:54 · 825 阅读 · 0 评论 -
FPGA物理约束
IO约束,如位置和IO标准引脚分配命令Set_property PACKAGE_PIN <pin name> [get_ports <port>]驱动能力设置Set_property DRIVE <2 4 5 8 12 16 24> [get_ports <port>]电气标准Set_property IOSTANDARD <IO standard> [get_ports <port>]引脚抖动Set_p原创 2020-08-11 19:44:01 · 3916 阅读 · 0 评论 -
Xilinx 7系FPGA LVDS使用要注意了,供电不能搞错
最近新做了一块板子,用到Spartan 7芯片对前级视频源叠加OSD菜单,前级会将HMDI转成LVDS送给FPGA处理,在原理图设计阶段没有仔细阅读fpga手册,导致LVDS BANK供电错误,应该接2.5V,实际接3.3V,且BANK供电没有用磁珠隔开,整板3.3V铺在一个平面,导致fpga lvds无法工作。搜集了相关资料,这里做下小结,避免后续再犯类似错误。-----------------------------------------------------------------------原创 2020-08-11 19:29:57 · 24408 阅读 · 10 评论 -
lattice DDR3 IP核使用调试分享
本文以一个案例的形式来介绍lattice DDR3 IP核的生成及调用过程,同时介绍各个接口信号的功能作用:一、建立Lattice工程1、首先,新建一个工程“lattice_ddr3”:其中器件选择的是ECP5U系列LFE5U-45F-CABGA381芯片,Lattice的工程后缀是.ldf文件。进入工程界面后,添加模块文件:右键点击Input Files --A...原创 2020-01-20 16:06:58 · 2529 阅读 · 0 评论 -
Quartus II SignalTap使用
首先说一下SignalTap和ModuleSim的区别,很显然这是两个不同的东西,SignalTap是集成于Quartus II的,是通过JTAG来抓取实际信号用于分析的,而ModuleSim则是独立于Quartus II,是用于进行功能仿真的一个软件。一般的话,用ModuleSim进行功能仿真肯定是第一步,功能验证正确之后,再将代码烧写到板子里去,查看运行结果,这时候我们就需要用到Signal...原创 2019-12-18 13:48:28 · 5737 阅读 · 0 评论 -
FPGA实现任意分频 为所欲为——教你什么才是真正的任意分频
一、为啥要说任意分频也许FPGA中的第一个实验应该是分频实验,而不是流水灯,或者LCD1602的"Hello World"显示,因为分频的思想在FPGA中极为重要。当初安排流水灯,只是为了能让大家看到效果,来激发您的兴趣(MCU的学习也是如此)。在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。有些教科书中也会讲到任意分频(半分频,任意分数分频)原理,用的是相位与的...转载 2019-12-17 10:54:45 · 1108 阅读 · 0 评论 -
Quartus ii调试工具之SignalProbe
下图是quartusii handbook 给出的6个片上调试工具,列出了各自的用途。其中SignalProbe是Quartus ii提供的一个通过外部设备探测FPGA内部信号的一个工具,即把FPGA内部需要探测的信号连接到没有用到的IO管脚输出,这样在外部用示波器等工具就能观察到该信号的情况。相比于直接在工程中设置输出引脚,SignalProbe不会改变原有的设计,只是用了多余的引...转载 2019-12-16 13:14:52 · 1207 阅读 · 1 评论 -
制约FPGA发展的关键技术-EDA 及国内主要FPGA厂商
被誉为可编程的“万能芯片”的FPGA,其技术门槛之高,在芯片领域几乎是无出其右的。其中,在制约FPGA发展的众多因素中,最关键的便是EDA软件工具。发展FPGA必须在硬件和软件两方面共同发展,如果国内芯片制程工艺达不到要求,FPGA产业很难达到最先进的水平。FPGA,是通过可编程互连连接的可配置逻辑块(CLB) 矩阵构成的可编程半导体器件。FPGA需要配套软件将用户设计烧录到芯片上才能实现相应...转载 2019-12-13 18:59:10 · 1036 阅读 · 0 评论 -
Altera FPGA开发过程中sof、pof、jic文件的区别
QuartusII下载文件有这三种:sof、pof、jic,这三个文件的区别是什么呢?见下:sof和pof是bin文件,调试时下载到FPGA的RAM里面,掉电丢失,再次上电需要重新烧过;sof是通过JTAG下载到RAM里的,pof是通过AS接口下载的。pof属于主动方式:上电主动将程序读入FPGA芯片jic属于被动方式:上电由FPGA主动读取jic是Prom文件,是会写在EPC...转载 2019-11-26 11:20:06 · 4146 阅读 · 0 评论 -
FPGA与DSP简单比较
两者的优势不一样。在硬件层面,DSP是ASIC,如同CPU GPU一样,适宜于量产降低成本,缺点是(硬件)设计一旦确定,便不易于修改。而FPGA较灵活,可以通过硬件描述语言进行快速设计和改进,但成本较高,传统上讲用于ASIC的prototype设计。另外,在软件层面上,给DSP写程序和给多核CPU写程序,给GPU写程序,没有太大区别,DSP有完善的C语言编译器。而FPGA没有“软件设计”这个概...转载 2019-11-21 10:11:18 · 3417 阅读 · 0 评论 -
Vivado下IBERT使用指南
来源:https://www.cnblogs.com/chengqi521/p/7867066.html、https://blog.youkuaiyun.com/qq_22279697/article/details/80763018、https://blog.youkuaiyun.com/hhpingyear/article/details/96750849 1.Ibert回环测试问题 2.IBERT回环测试...转载 2019-11-13 14:51:56 · 7698 阅读 · 1 评论 -
FPGA中IBERT 核的应用
摘要IBERT即集成式比特误码率测试仪,是Xilinx专门用于具有高速串行接口的FPGA芯片的调试和交互式配置工具。文中介绍了IBTERT基本功能、实现原理,并结合实例阐述用IBTERT调试FPGA时的具体方法和调试步骤。关键词 误码率测试仪;高速串行接口;眼图 随着高速数字系统的发展,高速串行数据被广泛使用,内嵌高速串行接口的FPGA也得到大量应用,相应的高速串行信号质量的测试也...转载 2019-11-11 13:13:16 · 1875 阅读 · 0 评论 -
Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟篇
xilinx的7系列FPGA根据不同的器件类型,集成了GTP、GTX、GTH以及GTZ四种串行高速收发器,四种收发器主要区别是支持的线速率不同,图一可以说明在7系列里面器件类型和支持的收发器类型以及最大的收发器数量。 图一 Xilinx的7系列FPGA随着集成度的提高,其高速串行收发器不再独占一个单独的参考时钟,而是以Quad来对串行高速收发器进行分组,四个串行高速收发器和一个CO...转载 2018-05-23 18:33:23 · 733 阅读 · 0 评论