自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 FPGA功耗估计

1、背景\quad资源、速度、功耗是FPGA设计中的三大关键因素。温度与功耗成正相关性,功耗大必然会导致温度高,高温最常见的问题是系统重启,温度高对FPGA内部的时序不利,导致可靠性下降。2、功耗分类1)芯片静态功耗\quadFPGA在上电后还未配置时,主要由晶体管的泄露电流所消耗的功耗;2)设计静态功耗\quad当FPGA配置完成后,当设计还未启动时,需要维持I/O的静态电流,时钟管理和其它部分电路的静态功耗;3)设计动态功耗\quadFPGA内设计正常启动后,设计的功耗;这部分功耗的多少

2021-11-16 22:38:12 5227 1

转载 verilog整理

链接:http://www.cnblogs.com/xingshansi/p/7039237.html 前言Verilog是硬件描述语言,不算FPGA的核心部分,以前没有接触过,找了本书翻看一下(《Verilog数字系统设计教程第三版》),顺便记录一些基础知识,从第三章开始。 第三章:模块结构、基本数据类型、基本运算符  A-模块的结构0、模块基本定义一个基本的模块就是:module name(in1,in2,...out1,out2,...)//内部逻辑end

2021-08-31 17:11:13 864

原创 XDC约束技巧--CDC

1、CDC定义与分类\quadCDC 是 Clock Domain Crossing 的简称, CDC 时序路径指的是起点和终点由不同时钟驱动的路径。在电路设计中对这些跨时钟域路径往往需要进行特别的处理来避免亚稳态的产生,例如使用简单同步器、 握手电路或是 FIFO 来隔离。2、CDC设计与约束2.1、简单的同步器\quadASYNC_REG约束,把用作简单同步器的多个寄存器放入同一个SLICE,以降低走线延时的不一致和不确定。\quad约束命令如下:\quadset_property ASYN

2021-08-25 22:52:27 992

原创 XDC约束技巧--时钟

1、XDC\quadXDC本质上是tcl语言1) 顺序很重要\quad约束是一条一条执行的,后面输入的约束在有冲突的情况下会覆盖之前的约束(时序例外除外,由优先级决定)2) 时钟域\quad没有声明的情况下认为所有时钟都是同步的。没有时序例外的情况下分析每条跨时钟路径3) 约束\quad时钟约束、I/O约束、时序例外约束2、时钟约束\quadcreate_clock –name clk1 –period 4 [get_ports CKP1]\quadcreate_generate

2021-08-25 22:40:47 2242

原创 FPGA开发之时序收敛10个小技巧

1、好的代码风格1)代码要跟器件结构相关2)避免异步复位,异步复位同步化,全局复位局部化3)层次的边界要加流水寄存\quad例如:BRAM中有两级register,第一级在内部,第二级在外部slice里的寄器。不同功能模块内部的寄存器要求的速度也不一样,不同位置的寄存器速度不一样。如ILOGIC中的寄存器对setup要求最高(寄存器最慢),OLOGIC中的寄存器对setup的要求最低(寄存器最快)。Slice中的寄存器速度最快,所以经常在mem,clock模块输出端增加一个slice的registe

2021-08-25 22:28:59 2574 1

原创 DSP48E1(3)乘法运算实例

1.实现乘法25bit*18bit运算\quad由A端输入24bit数据,D端输入24bit数据,实现预加法。然后与B端输入的18bit数据实现乘法。最后P端输出。调用原语实现。1.1. 参数配置\quadUSE_DPORT = TRUE;\quadUSE_MULT = MULTIPLY;\quadUSE_SIMD = ONE48;乘法必须选择ONE48\quadUSE_PATTERN_DETECT = NO_PATDET;\quadAREG=2;BREG=2;A、B通道选择两级寄存器\q

2021-07-14 18:50:13 2095

原创 DSP48E1(2)加法运算实例

1. 实现48bit加法\quad由A:B组合一个48bit数据与C相加,D端口禁用。\quad调用原语实现。1.1. 参数配置\quadUSE_DPORT = FALSE;\quadUSE_MULT = NONE;乘法器必须禁用\quadUSE_SIMD = ONE48;\quadUSE_PATTERN_DETECT = NO_PATDET;\quadAREG=2;BREG=2;A、B通道选择两级pipeline\quadMREG=0;USE_MULT = NONE时MREG必须等于0

2021-07-14 18:41:33 1337

原创 DSP48E1(1)系统结构

DSP48E1能做哪些事情?1、加法运算1)SIMD$\$1个48bit加法2个24bit加法(并行输出)4个12bit加法(并行输出)2、乘法运算3、模式匹配4、累加运算5、计数器6、

2021-07-14 18:24:06 374

原创 CARRY4

超前进位链(CARRY)常用于加减法运算。超前进位链公式:设:FPGA中有专用的实现进位链的硬件模块CARRY4,其结构如下:接口:S[3:0]:“propagate”信号输入。输入信号为A^B。DI[3:0]:“generate”信号输入。输入信号为A或B,结果都一样。CYINIT:初始化输入。当做减法时,减数需要取反加1将减法操作转为加法操作。CYINIT=1时相当于加1操作。可动态赋值。CIN:用于级联slices生产一个更大的进位链 。O[3:0]:等于Sum[3:0]。C

2021-07-10 16:42:16 1874

原创 FPGA开发--移位寄存器SRL

介绍(针对K7系列)\quadSLICEM可以不用SLICE中的FF生成一个最大深度为32bit的移位寄存器。用这种方法,每个LUT能够延迟串行数据1~32个时钟周期。\quad移位寄存器的输入端D和输出端Q31可以级联成一个更大的移位寄存器。可以将不同的SLICEM组合成一个移位寄存器。\quadLUT的地址A[4:0]可以选择在第几级深度输出数据,深度等于地址数值加一。输出端口为Q6 。\quad每个SLICEM有4个LUT,可以输入8bit位宽的数据。特性1)单时钟沿操作2)时钟使能,高

2021-06-27 00:50:21 1998

原创 vivado时序设计之共享控制信号

\quad共享控制信号这一点充分体现了设计必须考虑到用于底层实现的芯片结构的重要性。在 Xilinx 的芯片上,时钟、置位/复位和时钟使能等信号通称为 Control Set,进入同一个 SLICE 的 Control Set 必须统一。换句话说,不同 Control Set 控制下的 FFs 不能被 Vivado 放进同一个 SLICE。\quad为了提升 SLICE 的利用率,获得更高效的布局方案,提升时序性能,我们必须控制一个设计中 Control Set 的总数,尽量共享控制信号。具体做法包括:

2021-06-08 22:35:38 261

原创 matlab读写xlsx文件

做数据分析时经常需要将分析的结果写入文件保存,这里就说明一下matlab读写xlsx文件的方法。调用函数如下:%写文件;%files 文件路径;%A 数据;%sheet xlsx工作表;%x1Range 工作表的单元格;files = strcat(pwd,'\','xlsWrTest.xlsx'); xlswrite(files,A,sheet,xlRange); %读文件%ndata 读取的数据部分%text 读取的文本部分%alldata 读取ndata+text%files

2021-05-17 11:36:43 9928

原创 ZYNQ开发之系统搭建

ZYNQ工程包括PS、PL两部分,PS指的是嵌入式ARM部分,PL指的是FPGA部分。PS用到的资源需要在PL端例化。首先需要在PL端例化需要的资源1)create block design2)添加ZYNQ核点击‘+’号,搜素zynq双击ZYNQ7 Processing System出现下图3)选择需要例化的资源双击上图出现下图,想例化哪个资源就在里面找到它。这里例化UART和网口,点击UART0进入配置页面。根据电路板原理图选择板级供电电压、UART和网口连接的IO,选择是否需要上

2021-05-09 21:56:19 896

原创 数字信号处理之数字混频

数字混频利用的是三角恒等式原理\qquad cos⁡(α) cos⁡(β)=1/2 cos⁡(α-β)+1/2 cos⁡(α+β)\qquad sin⁡(α) cos⁡(β)=1/2 sin⁡(α-β)+1/2 sin⁡(α+β)混频器结构假设:\qquad α=2πf0 t+θ(t)\qquad β=2πf0 t其中f0为载频,频率很高(GHz级别),θ(t)为基带信号(MHz级别)则:cos⁡(α) cos⁡(β)=1/2 cos⁡(θ(t))+1/2 cos⁡(4

2021-05-09 17:37:04 3098 1

原创 FPGA开发实例之后仿真

FPGA仿真包含前仿真和后仿真,当前仿真没问题时并不能代表布线后也没问题。可以看看后仿真时序如何才能判断是否真的没有问题。下图是一个后仿真的结果,可以看到输出的信号上有很多毛刺,但是否会有影响得综合去判断了。下图也很奇怪,在一个时钟周期内数据总线会多次出现变化。上图数据总线变化的原因是多根总线在不同时刻变化导致的(下图)。所以有的时候用独热码或格雷码还是有必要的。...

2021-04-29 00:40:41 802

原创 ZYNQ开发实例之布局约束

分享一例位置约束实例如下图所示,出现这个警告的意思是在一个bank中时钟管理器不够用需要到其他bank中找一个,但这不是最优的解决方案,如果要这么处理就需要在约束文件中进行约束先分配一下IO对应的时钟管理器。A1分配mmcm1,A2分配PLL,A3分配mmcm2,如下图:可以在属性中获取时钟管理器的坐标:mmcm1的坐标是MMCME2_ADV_X1Y3pll的坐标是PLLE2_ADV_X1Y2mmcm2的坐标是MMCME2_ADV_X1Y2可以在Schematic中找到时钟管理器的网络路径

2021-04-29 00:03:05 1188

原创 ZYNQ芯片底层结构

开发ZYNQ时了解它的底层是有一定帮助的。那么它的底层是啥样呢?1、总览它的每一个bank所包含的元素都是相同的2、bank41)bank中包含1个PLL、1个MMCM、若干IO、IDELAY、ODELAY、IN_FIFO、OUT_FIFO、BUFR、BUFIO、DSP48、SLICE、BRAM、BUFH、BUFG等。2)每个bank都是上下对称的(所含元素相同)。3)每个bank中只有两个时钟管理器,如果想用的更多就需要跨bank了。4)对输入/输出信号处理的元素,如IDELAY2、OD

2021-04-28 00:17:38 1210

原创 APB总线

\quad上篇提到APB总线这里详细说明一下。APB总线适合应用于低性能、低数据带宽场景下。它通常需要桥电路将AMBA总线转为APB总线。以ZYNQ开发为例,结构如图:\quad上图中AXI总线经过AXI APB Bridge转为APB总线。APB的每一个接口都对应一个地址并且可配。PS访问对应地址时就会访问对应接口。它的时序也非常简单:PSEL、PENABLE都有效时代表选中设备此时PADDR已经有效。PWRITE高为写低为读。从机的PREADY信号有效时完成一次传输。1) 写无等待时序

2021-04-26 22:08:27 1278

原创 AMBA_AXI_HP

1、AMBA\quadAMBA(Advanced Microcontroller Bus Architecture)是由ARM公司研发的片上总线协议。AMBA总线包含:1)AHB(Advanced High-performance Bus)\quad应用于高性能、高时钟频率的系统模块,它构成了系统骨干总线。主要特性是突发传输、分割传输、流水线、一个周期内完成总线主设备对总线控制权的交接、单时钟沿操作、更宽的数据总线宽度。2)ASB(Advanced System Bus)\quad是第一代AMBA

2021-04-26 00:39:30 406

原创 脉冲压缩

\quad脉冲压缩技术是匹配滤波理论和相关接收理论的一个很好的实际应用。它的提出很好的解决了这样的一个问题:在发射端发射大时宽、带宽信号,以提高信号的速度测量精度和速度分辨力,而在接收端,将宽脉冲信号压缩为窄脉冲,以提高雷达对目标的距离分辨精度和距离分辨力。它的工作过程是信号与其反褶后的复共轭的卷积。clc;clear all;close all;c = 3e8;num = 500; % 采样点数B = 1e6; % 信号带宽fs = 8*B; % 采样频率ts = 1/fs;

2021-04-22 22:24:40 1554

原创 report_cdc

1、什么是report_cdc\quad时钟域交汇 (Clock Domain Crossings, CDC)”报告,可对设计中的时钟域交汇执行结构分析。此信息可用于识别潜在不安全的 CDC, 此类 CDC 可能导致亚稳态或数据一致性问题。虽然 CDC 报告与“时钟交互 (Clock Interaction)”报告类似, 但 CDC 报告侧重于结构及其时序约束, 不提供有关时序裕量的信息。简单说就是只分析跨时钟域的电路结构是否安全,不分析跨时钟域的时序裕量。2、专业术语安全的(safed):\qu

2021-04-19 22:59:07 509

原创 ASYNC_REG

ASYNC_REG属性通常应用在跨时钟域的数据同步上。它有如下特性:1)在仿真过程中发生时序违规时,寄存器会输出一个’X’,或未知状态(不是0或1)。当发生这种情况时,该元素驱动的任何东西都会在其输入上看到一个’X’,然后进入未知状态,这种情况会在整个设计中传播。这种情况下会导致设计的大部分变的未知,有时无法从这种状态中恢复。被ASYNC_REG约束的寄存器在这种情况下会输出最后的已知状态。2) ASYNC_REG约束的寄存器如同DONT_TOUCH约束的寄存器一样,不会被优化。3) 指定ASYNC

2021-04-18 20:25:10 1374

原创 ZYNQ开发之BootROM加载

1、概述\quad当完成系统复位后开始执行配置程序。CPU0执行BootROM程序,CPU1休眠等待CPU0唤醒。在执行BootROM程序时DAP和TAP JTAG控制器禁用。DDR控制器及其它外设不会被BootROM程序初始化。\quadPL的启动和初始化序列可以与PS启动同时进行,也可以在启动之后进行。如果BootROM需要启动PL,然后在BootROM执行的早期,BootROM将写入devcfg.CTRL [PCFG_PROG_B]位,在开始执行BootROM之前一直等待devcfg.STATU

2021-01-30 19:34:29 989 1

原创 ZYNQ开发之系统启动与复位

1、介绍\quad复位系统包含由硬件、看门狗、JTAG控制器和软件生成的复位。硬件复位包含上电复位PS_POR_B和外部系统复位PS_SRST_B。\quad在PS端有三个看门狗复位。\quadJTAG复位只有在DBUG时候才能生成。\quad软件复位是软件生成的子模块或系统级复位。2、复位逻辑图3、启动流程1)完整复位顺序如上图所示。前两个步骤由外部系统控制,PS逻辑仅在电源接通复位(POR)被释放时才开始响应。当PS运行时,任何类型的复位都可以在POR之后发生。这些重置将在各自的位置插

2021-01-30 19:28:04 5408

原创 ZYNQ开发之上电流程概览

系统启动流程启动的四个流程如下:1)上电\qquad上电后会给内核、bank依次上电;2)复位\qquad上电后需要复位一段时间保证系统稳定;3)BootROM\qquad 执行一次引导程序;4)FSBL\qquad执行二次引导程序;...

2021-01-30 16:16:26 1268

原创 网络通信协议簇简介

1、ICMP\qquadICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。\qquad从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过.

2021-01-23 11:15:55 1128

转载 IP协议详解

4.1 IP即网际协议       TCP/IP的心脏是互联网层。这一层主要是由IP(Internet Protocol)和ICMP(Internet Control Message Protocol)两个协议组成。 ...

2021-01-10 15:09:26 1546

转载 TCP报文首部格式

转载于链接:https://blog.csdn.net/qq_32998153/article/details/79680704        TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能体现在它首部中的各字段的作用。因此,我们需要详细了解一下TCP首部各字段的作用。     &nb

2021-01-05 18:24:54 520

原创 傅里叶变换

前言\qquad几年前跳槽新的行业接触到了信号处理相关算法,当时一直搞不明白傅里叶变换是怎么回事,后来翻阅教材、百度各种资料,终于明白了一点。最近闲来无事写给大家评评,若有错的地方请指正!频率\qquad频率是个什么东西?如果细心观察你会发现频率无处不在。比如:一日三餐,你吃饭的频率是每天三次;每天太阳东升西落,每天太阳升起的频率是一;你每天起床、坐车、吃饭、工作,周而复始,这是你生活的频率。再比如:手机通信,卫星通信,雷达,生活中的电子产品,这一切都可以由频率去表示。\qquad我们可以用频率去表

2020-07-20 15:24:23 2978

原创 串行异步通信接口

1、RS-232点对点模式。电压:\quad发送器:+5v~+15v为逻辑0, -5v~-15v为逻辑1\quad接收器:+3v~+12v与-3v~-12v传输速率:50bps~19200bps传输距离:RS232电平最大15m。15m以上需要加调制解调器机械特性:DB9,DB25.2、RS-422主从一对多模式,最多10个节点。电压:-7v~+7v最小输入阻抗:4k最大传输速率:10Mbps最大传输距离:1200m(100kbps)需要终端匹配电阻3、RS-485主从一对多

2020-07-08 15:42:10 1719

原创 ZYNQ开发之PL-PS中断

1、说明\qquad本文叙述了ZYNQ芯片中断相关内容,并且例举了PL-PS中断实例。参考文献ug585.2、系统中断架构\qquad每个CPU都有一组私有外围中断(PPIs),通过使用banked register进行私有访问。PPIs包括全局定时器、私有看门狗定时器、私有定时器和来自PL的FIQ/IRQ。\qquad软件产生的中断(SGIs)被路由到一个或两个cpu。SGIs是通过写入通用中断控制器(GIC)中的寄存器来生成的。\qquad共享外围中断(SPI)由PS和PL中的各种I/O和内存

2020-06-22 15:08:05 6255 1

原创 FPGA开发实例之时序违规1

1、说明\qquad在用fpga做信号处理的时候用到了开根号运算,我直接调用ip核完成的。编译完成后出现了ip核路径时序违规,以下是解决方法。2、ip核时序违规如图所示\qquad打开第一个违规路径查看详细信息,可以看到信号路径都是CARRY和LUT,即信号路径中包含了很多组合逻辑。\qquad查看ip核发现,此ip是使用logic单元生成的,并且latency参数设置成了3,它为了保证运算速度所以用了大量的组合逻辑。组合逻辑很多时会导致信号延迟较高,所以产生了时序违规。我尝试着将lat

2020-06-17 10:50:48 1406

原创 FPGA开发之综合选项整理

本文介绍了fpga开发工具综合选项的功能与应用,EDA工具版本为vivado17.4\quad\enspace1、 -flatten_hierarchyfull:\quad\enspace综合时将原始设计打平,只保留顶层层次,执行边界优化none:\quad\enspace综合时完全保留原始设计层次,不执行边界优化。综合的输出与原始RTL有相同的层次化结构。rebuilt::\quad\enspace设置后,rebuild允许合成工具将层次结构扁平化。执行综合,然后基于原始RTL重建层次结构

2020-06-16 16:25:35 1430

原创 FPGA开发之上电加载过程

1、说明\quad\enspace此文概述了fpga上电后程序加载流程。参考文件Ug470 fpga configuration2、硬件架构图\quad\enspace以此硬件架构为例。3、加载流程及时序图4、加载过程详解\quad\enspacefpga在上电时自动开始配置流程。具体流程包括三大部分:setup、bitstream loading、startup sequence。4.1 setup1) 设备上电\quad\enspace上电完成后可将PROGRAM_B引脚拉低重

2020-05-30 09:08:20 3554 1

原创 ZYNQ开发之导出内存数据

对于ZYNQ芯片内存数据如何导出问题,这里给出一种方法。1、xilinx SDK内存数据导出可以使用XSCT/XSDB工具导出,如下图:(在线运行后会探出此窗口)选择XSDB工具操作说明:1) connect建立连接2) ta 查找可连接目标3) ta 2 连接到目标24) cd 指定路径5) mrd –bin –file name.bin address len从地址address开始读取长度为len的数据,存储到”指定路径”,文件名为name.bin。2、 注意事项 1

2020-05-21 11:38:13 2770 2

原创 fir滤波器之matlab求系数

matlab基于窗函数设计法求fir滤波器系数步骤如下:1、在command window中输入fdatool,打开设计界面,如下图2、参数配置滤波器类型:可选择低通、高通、带通、带阻。设计方法:选择fir和window。窗选项:可以选择各种窗及阶数。频率选项:Fs采样频率、Fc截止频率。配置完参数后点击Design Filter生成滤波器系数。3、导出系数点击File->Export将系数导出到Workspace中4、窗的时域、频域特性配置完窗选项后点击View会弹出窗的时频

2020-05-16 22:18:59 4580

原创 fir滤波器之系统函数

1、fir滤波器设计的目标是找出系统的传递函数或单位冲击响应。常见的设计方法有窗函数法。

2020-05-16 17:54:05 12001

DSP48E1_mul.rar

dsp48E1乘法例程

2021-09-03

dsp48E1_add.zip

DSP48E1实现加法器原语调用及仿真

2021-07-13

AXI_HP读写代码.zip

简化版的PL端通过AXI_HP总线读写PS端内存的代码

2021-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除