![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FGPA
文章平均质量分 67
大功率灯泡
主要目的还是方便自己查阅,有疑问请直接评论
展开
-
zynq7010/zynq7020系列FPGA的输入输出延时、建立保持时间(setup/hold)
zynq7010/zynq7020系列FPGA的输入输出延时、建立保持时间(setup/hold)——zynq7000系列的建立保持时间需要从其开关特性手册中查询,本文参考了ds187手册中的相关内容,方便检索查询。0 CLB Switching Characteristics – 逻辑块的开关特性这个是我们一般最关心的FPGA内部寄存器的setup/hold time特性,-2等级的7020来到 0.09/0.14ns.1. dram/d shift reg/ bram /bfifo1.1原创 2021-12-31 12:10:37 · 1836 阅读 · 0 评论 -
verilog一种多位宽的10进制计数器
在涉及到ASCII等编码的时候,往往需要使用十进制计数器来进行测试,下面分享一种简单的测试用的10进制计数器程序:reg[3:0] dec_cnt[3:0];//10进制加法器always @(posedge clk or negedge rstn) begin if(!rstn) begin dec_cnt[0] <= 4'b0; dec_cnt[1] <= 4'b0; dec_cnt[2] <= 4'b0;原创 2021-12-27 22:09:13 · 1219 阅读 · 2 评论 -
关于FPGA中的异步FIFO始终无法用bram而只能用lut ram的问题
关于FPGA中的异步FIFO始终无法用bram而只能用lut ram的问题······最近在写异步FIFO,参考别人的代码后,在FPGA中复现时发现总是无法生成期望的bram,而是花费大量的lut来形成lut ram,造成lut的浪费。······首先提一下,我们知道对于Xilinx 的FPGA在定义的memory之前,可以使用(参考ug901):(* ram_style="block" *) reg [data_size-1:0] myram [2**addr_size-1:0];(* ram原创 2021-12-22 22:34:07 · 2207 阅读 · 0 评论 -
关于FPGA中异步复位同步释放的个人理解
关于FPGA中异步复位同步释放的个人理解1. 异步复位同步释放电路块很多,这里参考其它博客的:https://zhuanlan.zhihu.com/p/142377567verilog代码也很简单:always @ (posedge clk, negedge rst_async_n) if (!rst_async_n) begin rst_s1 <= 1'b0; rst_s2 <= 1'b0; end else begin原创 2021-12-22 21:33:04 · 179 阅读 · 0 评论 -
zynq7020的arm A9核降频实录
zynq arm9 cortex a9 降频原创 2021-12-11 20:31:06 · 6104 阅读 · 6 评论 -
verilog:一种可选位宽的BCD到二进制和二进制到BCD串行转换实现
verilog:一种可选位宽的BCD到二进制和二进制到BCD串行转换实现··················FGPA中关于lcd显示、串口数据收发等涉及到bcd码和二进制之间的转换,往往LCD、uart的速率不是很高,因此可以使用串行方式转换以实现资源的节约。·················前面分享过BCD转二进制和二进制转BCD的相关可综合verilog代码,但是是固定位宽的,每次需要修改,本文分享一下可变为位宽的实现。bcd–>bin//SIZE_bcd == 40bit的bcd码原创 2021-11-17 13:03:09 · 601 阅读 · 0 评论 -
详细教程:vivado2019.2 & vitis2019.2下,zynq7000系列FPGA固化PL程序到外挂flash和SD卡
详细教程:vivado2019.2 & vitis2019.2下,zynq7000系列FPGA固化PL程序到外挂flash和SD卡0.简介xilinx的zynq系列FPGA既包含了传统的FPGA部分,又嵌入了arm的硬核,分别称为PL(Programmable Logic)和PS (Processing System)。PL部分以前在ISE,现在在vivado上编程配置,包括通用的组合逻辑资源、软IP、硬IP核(包括arm核的基本配置与调用在内),使用语言就是硬件描述语言、原理图文件、IP配置;原创 2021-11-08 23:27:16 · 10396 阅读 · 5 评论 -
verilog:一种资源节约型的BCD码转二进制码模块
verilog:一种资源节约型的BCD码转二进制码模块上一篇文章分享了一种资源节约型(时间换资源)的二进制转BCD码的verilog代码写法(加3左移),本篇则介绍一种BCD码转换成2进制码的可综合verilog。任务描述首先,假设有一个40bit的BCD码data_bcd[39:0] ,并任意设data_bcd = 40’h1234567980 ,现在要把它转换成32bit的二进制数data_bin[31:0],有data_bin = 32’d1234567890。原理方法首先最容易想到的:(原创 2021-11-07 20:23:55 · 1060 阅读 · 0 评论 -
二进制转换成BCD的原理与verilog实现 --加3左移
二进制转换成BCD的原理与verilog实现 --加3左移FPGA中的lcd显示、串口收发等应用会涉及到二进制和BCD码之间的转换,常见的有3种方法:除法取模运算、查找表、加3左移。 大位宽下,取模除法运算耗费大量lut资源,查找表也不方便,常用一种加3左移的方法。加3左移相当于左移后再加6,基本过程有很多人描述过了,可以参考下面的博客,其过程介绍得很清楚。https://www.cnblogs.com/SummerSunnyDay/p/5013835.html我这里着重补充一下为什么通过这种有条原创 2021-11-03 19:17:17 · 2142 阅读 · 0 评论 -
FPGA中用verilog比较有符号数(signed)大小时注意事项
FPGA中用verilog比较有符号数(signed)大小时注意事项前面调试FPGA应用,在有一段有符号数大小比较时遇到了问题,这里记录一下问题和解决办法。代码简化为如下://////////////////临时测试:demo0module test( output reg [2:0] led ); parameter lev0=16'd100; parameter lev1=16'd300; parameter lev2=16'd500; wire signed [15:0原创 2021-10-27 11:27:47 · 8324 阅读 · 0 评论 -
FPGA中一种乘加运算的资源优化写法注意事项
FPGA中一种乘加运算的资源优化写法注意事项最近在FPGA里面做小波变换提升算法,由于是多条流水线进行,里面会多次用到乘加的运算结构,最后导致工程占用资源刚刚不够用(105%),很是苦闷,在此记录一下资源优化的一种案例(quartus ii 17.1)。这是原始算法中的一次分解步骤(中间拎出来的,可能没有实际意义,只适用于分析结构与资源):demo0://////////////////临时测试:demo0module test( input clk50M, input原创 2021-10-22 17:28:17 · 710 阅读 · 1 评论 -
关于FPGA的memory数据类型reg[15:0] a[2047:0]综合生成lut还是block ram/ m9k的问题
关于FPGA的memory数据reg[15:0] a[2047:0]综合生成lut还是m9k的问题使用FPGA来综合较大深度的(>1000)ram时需要特别注意其行为描述的语法,因为一旦使用不当,就会造成消耗资源严重超标,从而不满足设计要求。首先,FPGA内部的ram主要是两种,一种是分布式ram,即lut和周围的DFF,另一种是专用集成块储存器(vivado叫block ram, quartus ii叫 M9K,M144K等)。分布式ram的常见用法就是用reg定义的小量寄存器数据如 reg原创 2021-10-20 16:42:07 · 3629 阅读 · 0 评论 -
关于vitis2019.2固化程序到SD卡和qspi flash的补充
记录一下最近在调试zynq7020时遇到的关于固化程序的问题与要点 我前期利用zynq7020的板子做了一个简单的lcd显示界面,用来显示三串数字和单位,方便后面测量信号时进行上电调试,程序调好了,通过jtag下载也没问题,到最后一步固化程序到SD卡中时遇到了问题,最后几经波折解决了,特此记录。场景说明: 1.开发环境: vivado2019.2 和 vitis2019.2 2.所需功能只使用了PL部分的资源,且PL部分为.v文件和rom ip.遇到的问题: 1. 在原工程中引原创 2021-10-12 23:48:31 · 1337 阅读 · 0 评论 -
verilog利用状态机产生01011011101111...序列
verilog产生01011011101111…序列模块//function modulemodule test0 ( input clk, input rst, output q);parameter S0=1'b0, S1=1'b1;reg state;reg [7:0] run,des;always@(posedge clk) if(rst) begin run <= 0; des <= 0;原创 2021-08-13 14:45:39 · 776 阅读 · 0 评论 -
关于FPGA被乘数为定点数的乘法的3种写法:乘法、移位和位拼接
FPGA中大位宽数的乘法比较耗费资源,且不利于时序收敛。这里仅仅讨论:变量×常数.利用分配律,乘法可以被写为加法,如 b=a×6 = a×4 + a×2 .在二进制中,4和2都是可以通过移位来进行的,在verilog中还可以通过位拼接符号来进行操作。所以,总能写成:b = a× (c0 ×1 +C1× 2 + c2× 4 + c3 × 8+…)这样,常数乘法就写成加法了,而加的每一项只需要通过移位就能实现。实际上,除数为常数的除法也能这么表示,如b=a÷6 =a×(1/6),而,1/6原创 2021-08-13 16:13:36 · 4107 阅读 · 2 评论 -
Quartus II cyclone 系列fpga程序下载到flash中
Quartus II cyclone 系列fpga程序下载到flash中一、转换sof下载文件成jic文件1.quartus 下 file -> converting programming file ,进入转换工具2.programing file type 选择 jic3.选择板载 flash设备 (configuration device):例如我的 是25P16芯片,对应EPS16 ;有的是25P40,对应 eps40。选择不对下载不会成功4.flash loader 添加设备 ,原创 2020-05-18 10:14:41 · 2400 阅读 · 1 评论 -
cyclone IV 系列轻量级FPGA 芯片ep4ce6e22c8 引脚分布图
这里写自定义目录标题简介EP4CE6E22C8 IO分布BANK IO分布简介EP4CE6E22C8作为可以手动焊接的一款轻量级cyclone IV系列芯片,百度了一大圈都只有一个用户手册,找不到引脚分布及引脚属性资料。我索性从quartus ii中直接截图下来,供以后设计PCB参考使用。EP4CE6E22C8 IO分布字有点小,放大看吧。BANK IO分布除去电源、地等,各个bank可用普通io情况...原创 2020-09-07 10:58:42 · 19938 阅读 · 14 评论 -
Vivado远程编译并下载程序到本地xilinx开发板
Vivado远程编译并下载程序到本地xilinx开发板关键词: vivado 远程烧写 frp FPGA xilinx 云服务器需求分析: 项目需要,最近需要把FPGA程序从altera移植到xilinx平台,开发环境要从quartus ii换到vivado。现在有条件, 1.寝室有一台安装了vivado2019.2软件的PC(win10,性能较好、综合编译快), 2.实验室未安装vivado软件的笔记本(win10,用了三四年,安装了各种杂七杂八原创 2021-03-13 18:21:00 · 8092 阅读 · 6 评论 -
quartus II 远程编译并下载程序到本地
简介 以前Altera的高端fpga芯片总是被xilinx的暴打,现在有intel的加持,新一代的stratix 10器件已经上了14nm,一片器件集成多达三四百亿的晶体管,速度也号称最快,能怼到1Ghz。 被英特尔公司收购的Altera家的FPGA编程用的是quartus II,经过优化后的quartus ii编译综合速度相比xilinx的vivado快了不是一点半点。 我的上篇文章介绍了vivado的远程编译下载,本篇介绍quartus II的远程编译下载。需求 寝室台式机编译一个项目原创 2021-03-24 19:04:37 · 2029 阅读 · 3 评论 -
Verilog的always块内的常见问题:边沿电平、同步异步、阻塞非阻塞
verilog的always块内的边沿电平、同步异步、阻塞非阻塞问题,往往令初学者头大,下面我记录一下上述三种条件不同情况下的verilog代码描述、综合结果和资源占用情况,以供参考。平台1:xilinx工具: vivado 2019.2芯片选型:zynq-7020(ps:zynq-700 为lut6)1.多边沿触发问题Q1:一个always块内是如何实现异步复位的?code case 1.1:module block(clk,clk1,rstn,A, B,C);input clk,clk原创 2021-04-30 00:01:23 · 4709 阅读 · 2 评论 -
超棒的免费FPGA时序分析课程--基于xilinx、vivado
超棒的免费FPGA时序分析课程–基于xilinx k7、vivado 2018这里分享尤凯文老师在B站上的FPGA时序分析教程,非常不错,免费更新的课程干货满满。链接一:前10讲(专题)https://www.bilibili.com/video/BV197411G7zS?p=10&share_source=copy_web涉及内容包括:建立保持时间时序分析、IO时序约束之input delay分析(主要是源同步方式、以及引入PLL移相)。链接二:第11讲https://www.bi原创 2021-07-19 12:19:24 · 519 阅读 · 0 评论