技术

1. 连续赋值语句(Continuous Assignments) 连续赋值语句是Verilog数据流建模的基本语句,用于对线网进行赋值,等价于门级描述,是从更高的抽象角度来对电路进行描述。连续赋值语句必须以关键词assign开始。 连续复制的主要特点是: 连续赋值语句的左值可以是一下类型之一: ①标量线网 ②向量线网 ③矩阵中的一个元素(该矩阵可以是标量线网类型的,...
一、简介 RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。 RapidIO协议由逻辑层、传输层和物理层构成。...
作者:高志凯 一次常规调试中发现上电后交换机多个口同时打流会导致卡死的现象,最后一步步分析问题出现的原因是位宽不够导致的溢出。这让我回想起团队已经量产的某款芯片,也是因为某个寄存器位宽设置过小的原因,导致组播组设置的时候不能超过31,否则就会溢出,只能想办法通过软件来解决这个问题。这次出现问题的交换机是基于共享缓存的架构,希望后面引以为戒,设计每个小的寄存器时都要考虑全面。 背景...
作者:dongdongnihao_ 来源:CSDN 在高速的同步电路设计中,时序决定了一切,要求所有时序路径都必须在约束限制的时钟周期内,这成为设计人员最大的难题,因此,首先确定和分析基本时序路径有助于设计者快速,准确地计算时序裕量,使系统稳定工作,XILINX公司提倡的几种常用基本路径。 (1)Clock-to-Setup路径: clock-to-...
作者:鹏哥DIY 来源:CSDN 在ZYNQ进阶之路1 中我们讲解了PL端LED流水灯的工程的建立,编码,综合和下载!本节主题,PL端PWM输出设计,讲解怎么用ZYNQ PL端简单实现2通道PWM波输出,其中工程创建过程以及综合生成bit文件过程不再累述! 首先,PWM需要调节的参数有1、频率,2、占空比, 其中频率,和占空比的调节实际是调节计数值,其PWM模块代码如下所示...
作者:豌豆花下猫” 来源:Python猫(微信号:python_cat)” 1、来自C语言的%方式 print('%s %s' % ('Hello', 'world')) >>> Hello world %号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。上例的%s是一个占位符,它仅代表一段字符串,并不是拼接的实际内容。...
作者:bleauchat 在设计仿真激励文件时,为了满足和外部芯片接口的时序要求,经常会用到延时赋值语句,由于不同的延时赋值语句在仿真过程中行为不同,会产生不同的激励输出,如果不认真区分不同表达式引起的差异,就可能产生错误的激励,无法保证仿真结果的正确,本文就是区分各种延时赋值语句的差异,并给出比较结果。 1:阻塞式左延时赋值语句 举例说明如下: module...
由于ZYNQ架构和常用接口IP核经常出现 AXI协议,赛灵思的协议手册讲解时序比较分散。所以笔者收藏AXI协议的几种时序,方便编程。 1、AXI_LITE协议: ( 1) 读地址通道, 包含ARVALID, ARADDR, ARREADY信号; ( 2) 读数据通道, 包含RVALID, RDATA, RREADY, RRESP信号; ( 3) 写地址通道,...
作者:鹏哥DIY 来源:CSDN 对ZYNQ的学习的渴望由来已久,前不久买了一个基于xc7z010的开发板,现在将自己的学习的进阶之路记录在此,希望能给想要入门的ZYNQ学习者一点帮助,本人也刚开始学习,能力有限,其中若有不足之处希望大家多多交流,以便共同进步! xilinx ZYNQ-7000系列芯片将处理器的软件可编程能力与FPGA的硬件可编程能力实现了完美结合,...
引子 谈到视频的编解码,我们会自然地想到H.264、HEVC/H.265这些权威的视频编解码标准;谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好;即使有兴趣读了标准和相关技术,面对更多的是各种数学公式和术语,如协方差、傅立叶变换、高频、滤波等等,需要花更多时间去理解。通常更为实际的做法是,我们只要调研如何应用这些标准,如何做好软硬件编码方案的选型,...
作者:豌豆花下猫” 来源:Python猫(微信号:python_cat)” (一) 最近,我突然想到一个问题:相比其它语言,有哪些概念或习惯叫法是 Python 特有的? 在朋友圈提出这个问题后,我得到最多的回复是——Pythonic 。这个回复一点都不意外,名字中自带 Python 的,当然是特有的啦,与它相似的,还有 Pythonista 。 这两个词是啥意思呢?...
1)使用Vivado 工具生成 .hdf文件,比如ZU9_cpu.hdf 2)使用SDK工具生成FSBL。FSBL的作用主要是初始化PLL,DDR,MIO管脚分配,烧写FPGA,运行uboot等。核心代码代码位于psu_init.c中。 3)生成uboot 4)使用bootgen工具生成BOOT.BIN文件,bootgen需要使用.bif文件做输入。bif指导那个文件用作输入,...
今天,我们聊聊双核通信。双核通信的基础是已经建立好了双核工程,且配置完成。两个CPU之间传递数据,采用了共享内存,共享内存设置在OCM(On Chip Memory)内。 在没有做其他设置的情况下,ZYNQ上电后地址空间分别如下图所示: OCM共256KB按照64KB分为4块,其中前三块在SDK中表述为RAM0占192KB处于地址空间的最开头和DDR共用地址空间,...
作者: OpenSLee,来源:FPGA开源工作室 典型的时序模型由发起寄存器、组合逻辑和捕获寄存器3部分组成,如图1所示形成了三条时钟路径:原时钟路径(Source Clock path)、数据时钟路径(Data path)、目的时钟路径(Destination Clock path)。 图1 时序模型1 1、建立时间(setup)和保持时间(hold) 如图1所示,...
作者:romme 来源:FPGA干货架 DDR对于做项目来说,是必不可少的。一般用于数据缓存和平滑带宽。今天介绍下Xilinx DDR控制器MIG IP核的例化及仿真。 FPGA芯片:XC7K325T(KC705) 开发工具:Vivado 2014.4 1、IP Catalog中搜索MIG,点击相应IP进入如下配置界面。 (1)DDR控制器的个数,...
话不多说,进入今天的主题:生成zynq裸核启动文件。 1. 首先在vivado SDK中分别建立两个工程 注意:如上图所示, Core0 工程建立时选择ps7_cortexa9_0, Core1 工程建立时选择ps7_cortexa9_1 完成后如下图所示: 2. 配置Core1即从核中的BSP文件 在下图中画圈处,配置...
作者:豌豆花下猫” 来源:Python猫(微信号:python_cat)” Python 中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。 本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:   •  该方法用于获取一个对象的字节大小(bytes)...
PIPE 接口上的数据在 Gen3 的速度下被加密。当调试 PCIe 问题时,能在 PCIe 链接上查看各个包会很有帮助。 若要实现此目的,用户需拥有协议链接分析器。由于其成本较高,能接触到此等设备的用户不多。随协议链接分析器提供的包分析工具很广泛,可对链接流量进行深入分析。 赛灵思 UltraScale+ 器件的 PCIe® Express Gen3 IP 集成块有一个功能,...
作者:殷建飞 本文是昨天发的文章《龙芯杯CPU设计竞赛与ZYNQ设计流程介绍》接续部分。重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种。 部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能...
作者:雪湖科技 梅碧峰 引言:在这篇文章里你可以了解到广告推荐算法Wide and deep模型的相关知识和搭建方法,还能了解到模型优化和评估的方式。我还为你准备了将模型部署到赛灵思 FPGA上做硬件加速的方法,希望对你有帮助。阅读这篇文章你可能需要20分钟的时间。 早上起床打开音乐APP,会有今日歌单为你推荐一些歌曲。地铁上闲来无事,刷一刷抖音等短视频,让枯燥的时光变得有趣。...
作者:默宸,来源:FPGA技术联盟 01、ARM中断体系 ① ARM体系中,在存储地址的低位,固化了一个32字节的硬件中断向量表。 ② 异常中断发生时,程序计数器PC所指的位置不同,异常中断就不同。中断结束后,中断不同,返回地址也不同。但是,对于系统复位中断,不需要返回,因为整个应用系统就是从复位中断中开始的。 数据访问终止:数据访问的地址不存在,...
作者: OpenSLee,来源:FPGA开源工作室 若要查看跨时钟域路径分析报告,可选择以下内容之一来查看: A, Reports > Timing > Report Clock Interaction B, Flow Navigator > Synthesis > Report Clock Interaction C, Flow...
随着开源的MCU源代码越来越多,也逐渐的影响着嵌入式系统开发的思路,出现了两种以前不常见的设计思路。第一,原本需要购买一颗MCU芯片的设计,现在直接考虑购买一颗带有MCU硬核的FPGA(如ZYNQ系列FPGA)替代,既有MCU的功能,又有接口可编程的能力,更加的灵活;第二种思路是设计中原本需要写复杂控制逻辑的Verilog模块,现在直接考虑替换为一颗或者多颗开源的MCU IP核,...
作者:Wilson Qiu,Xilinx工程师 ZYNQ对Memory的操作 参考工程见“ZYBO_Memory_GPIO_Interrupt_demo.xpr”。 ZYNQ有专用的DDR Controller接口,如果外部硬件连接了DDR器件,于是在ZYNQ Processing System中正确配置了相应的信号和参数后,DDR就可以成为ZYNQ的内存,...
来源:硬件助手 本文主要介绍JTAG总线的引脚定义、接口标准、边界扫描和TAP控制器。 JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟...
作者:Wilson Qiu,Xilinx工程师 常用外设设计 使用UART与ZYBO进行通信 ZYNQ学习过程中一个重要环节是进行调试,当然在SDK中进行调试时,设置断点进行单步调试非常高效。但是ZYNQ中毕竟涉及到FPGA的硬件部分,于是如果可以通过UART与ZYNQ器件进行双向的通信会使得调试非常方便。 Step1: 确认ZYBO板上硬件连接。...
作者:柏 佳,魏 鑫,朱 广,成都理工大学信息科学与技术学院,来源:2019年电子技术应用第8期 摘要: 随着人们安防意识的不断增强和智能技术的持续发展,针对用户对安全系数高的智能电子锁的需求,使用FPGA蓝牙通信技术设计了基于FPGA蓝牙通信技术的智能电子锁系统。通过手机APP直接控制电子锁,对电子锁进行双重加密处理,具有开锁、修改密码,管理员控制用户开锁信息表,...
本文主要介绍I2C总线的读写操作流程。 I2C总线的操作包括读和写,具体的操作流程如下: 1、主机发送数据(I2C写)流程 I2C主机给从机写数据的操作流程如下: Master发起START; Master发送I2C ADDR(7bit)和W操作0(1bit),等待ACK; Slave发送ACK(ACK=0); Master发送reg addr(8bit),等待ACK(...
作者: OpenSLee,来源:FPGA开源工作室 时钟网络反映了时钟从时钟引脚进入FPGA后在FPGA内部的传播路径。 报告时钟网络命令可以从以下位置运行: A,Vivado®IDE中的Flow Navigator; B,Tcl命令:report_clock_networks -name {network_1} 报告时钟网络提供设计中时钟树的树视图。 见图1。...
Zynq UltraScale+ MPSoC的PS有以下主要特点: 一个四核64位ARM Cortex-A53处理器,带L1和L2级缓存和ECC功能,可单独上电和关电; Cache一致性互联单元为PS和PL提供双向Cache一致性保证; SMMU(系统内存管理)单元用于PS和PL虚拟内存管理; 双核ARM Cortex-R5F处理器(带浮点扩展),...
本文只涉及各种傅利叶之间的概念关系,不考虑数学严谨性。 一张图理解各种傅利叶 from Understanding Digital Signal Processing. Richard G. Lyous a为连续时间非周期信号的傅利叶变换,频谱为连续非周期谱;(CFT) b为连续时间周期信号的傅利叶级数,频谱为离散非周期谱;(FS)...
作者: OpenSLee,来源:FPGA开源工作室 1 I/O延迟约束介绍 要在设计中精确建模外部时序,必须为输入和输出端口提供时序信息。Xilinx Vivado集成设计环境(IDE)仅在FPGA边界内识别时序,因此必须使用以下命令指定超出这些边界的延迟值: 1,set_input_delay 2,set_output_delay 2 输入延迟(Input Delay)...
本文主要介绍I2C总线相关的一些基本概念、通信流程、同步和仲裁、模式切换等。 I2C总线是PHILIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线仲裁和高低速器件同步功能的高性能串行总线。 I2C物理上包括2条双向串行线,一条数据线SDA,一条时钟线SCL。均为OD结构,需要外部上拉,具体选取可参见之前的文章《硬件电路设计之“上下拉电阻”》。 SDA传输数据是大端传输(...
ZYNQ概述 ZYNQ内部包含PS和PL两部分,PS中包含以下4个主要功能模块: Application processor unit (APU) Memory interfaces I/O peripherals (IOP) Interconnect ZYNQ内部的总体框架如所示,PS中包含2个ARM Cortex-9的内核,一些基本的外设扩展口以及Memory接口。...
作者:安平博,赛灵思电子科技(北京)有限公司 高级研发工程师,来源:AI加速 linux驱动是连接软件和硬件的一个中间介质,实现了对硬件的配置和控制。进一步将硬件抽象化,为软件操作硬件提供了简单的接口。不论硬件的具体形式如何,linux驱动都将其映射到一个文件,软件端对硬件的读写操作等都被抽象成文件操作了。本篇从hello world开始,简要介绍驱动的基本结构,...
作者: lee,来源:FPGA开源工作室 1. 时钟介绍 在数字设计中,时钟代表从寄存器(register)到寄存器可靠传输数据的时间基准。Xilinx Vivado集成设计环境(IDE)时序引擎使用ClocK特征计算时序路径要求,并通过松弛计算报告设计时序裕度(Slack)。 时钟必须正确定义,以获得最佳的时序路径。以下特性定义了时钟: 1,...
随着5G通信、自动驾驶及物联网等新兴应用的发展,图像处理、AI算法加速、软件无线电等复杂多任务设计越来越挑战嵌入式平台的处理能力。专用标准产品只能为设计人员提供无法扩展的固定解决方案。这样,为了让设计更灵活就必须添加相应器件,因而不可避免地会拉高BOM成本和功耗成本。Xilinx的ZYNQ-7000 SoC系列作为ARM和FPGA全可编程的SOC,以其灵活的设计方式和优异的性能功耗比,...
作者:电子工程师小李 1)锁存器 锁存器(latch)是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。 简单地说,锁存器有两个输入,一个是有效信号EN,一个是输入数据信号DATA_IN,有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程。 2)触发器...
作者:安平博,赛灵思电子科技(北京)有限公司 高级研发工程师,来源:AI加速 本文介绍稀疏LSTM的硬件架构,一种是细粒度稀疏化,权重参数分布随机,另外一种是bank-balance稀疏化。 1. 文章结构 Long-short term memory,简称LSTM,被广泛的应用于语音识别、机器翻译、手写识别等。LSTM涉及到大量的矩阵乘法和向量乘法运算,...
作者:陈 辰,严 伟,夏 珺,柴志雷,来源:2019年电子技术应用第8期 摘要: 针对当前深度学习目标检测算法计算复杂度高和内存需求大等问题,设计并实现了一种基于FPGA的深度学习目标检测系统。设计对应YOLOv2-Tiny目标检测算法的硬件加速器,对加速器各模块的处理时延建模,给出卷积计算模块的详细设计。实验结果表明,与CPU相比,CPU+FPGA的异构系统是双核ARM-A9能效的67....
FPGA 是一堆晶体管,你可以把它们连接(wire up)起来做出任何你想要的电路。它就像一个纳米级面包板。使用 FPGA 就像芯片流片,但是你只需要买这一张芯片就可以搭建不一样的设计,作为交换,你需要付出一些效率上的代价。 从字面上讲这种说法并不对,因为你并不需要重连(rewire)FPGA,它实际上是一个通过路由网络(routing network)连接的查找表 2D 网格,...
作者:Ricky Su 现有参考资料 VCU TRD 2018.1, UG1250 UG252 gstreamer: https://gstreamer.freedesktop.org/ 逻辑设计 1. 通过 Vivado 内置的 ZCU106 模板建立一个新工程 2. 添加 PS: ZYNQ UltraScale+ MPSoC 3. 添加...
文章来源:AI加速微信公众号(微信号:AIspeedup) Zynq器件将arm和FPGA结合,利用了两者各自的优势,arm可以实现灵活的控制,而FPGA部分可以实现算法加速,这大大扩展了zynq的应用。比如深度学习加速,图像处理等等。PL侧表示FPGA的逻辑部分,PS侧为arm端以及一些AXI接口控制部分,二者实际上通过AXI接口实现通信和互联。...
在正式开始之前,我们先看看一位FPGA工程师的工作日常: 开始设计代码 开始写第一个always代码 发现要增加一个信号,因此写第二个always,设计这个新增的信号 回到第一个always上,继续完善这个代码 开始写第三个always代码 感觉第一个always有情况没考虑到 一阵重新思考 回去修改第一个always的代码 写完后,得了,不检查代码了,仿真再说吧。...
本文介绍两种LVDS数传接口:GMSL和FPD Link,这两种接口在汽车视频传输方面的应用是比较广泛的,尤其是Camera和处理器之间的链路,通过STP或者同轴电缆能使整个链路达到15m。 1、FPD Link Flat Panel Display Link(FPD Link)最早是National Semi提出来的一种处理器和LCD Panels之间的高速数字接口,...
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号 卷积占据了CNN网络中绝大部分运算,进行乘法运算通常都是使用FPGA中的DSP,这样算力就受到了器件中DSP资源的限制。比如在zynq7000器件中,DSP资源就较少,神经网络的性能就无法得到提升。利用xilinx器件中LUT的结构特征,设计出的乘法器不但能灵活适应数据位宽,而且能最大限度降低LUT资源使用。...
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号 随着机器学习算法的研究,其变得越来越复杂和多样性。计算密集性对计算资源和存储以及带宽提出了更高的要求,复杂性更要求硬件要有很好的灵活性。CPU是一个标量处理单元,对于处理过程复杂的算法很灵活,比如决策树和大量的图像或者机器学习算法。GPU和DSP集成了大量的运算单元,能够并行处理大量计算,但是功耗较大。FPGA具有并行计算优点...
作者:西电ISN国家重点实验室网络与交换团队博士生刘欢,来源:网络交换FPGA微信公众号 1、引言 以交换机设计为例。在交换机设计前期,转发表项是固化在交换机内部的(给FPGA片内BRAM初始值),但是在测试过程中,往往需要对表项进行修改,如果直接修改BRAM的coe文件,则需要重新综合、实现、生成bit文件,其中,综合与实现耗时十分严重,设计规模越大,消耗的时间越长,...
本文主要介绍基于zynq的IIC的驱动架构,通过代码编写来深入了解IIC驱动的内容和机制。 1. IIC驱动架构 IIC驱动包含两部分:IIC总线驱动和设备驱动。总线驱动是对硬件设备适配器端的实现,主要包含i2c_adapter,i2c_algorithm和控制i2c适配器产生通信信号的函数。I2c_adapter和一套i2c读写algorithm绑定,...
作者:默宸 来源:FPGA技术联盟 看电路图画波形 本文转载自CSDN李锐博恩Reborn某校招题目,仅仅给出下面电路图,要求画出Q1,Q2以及Q3的波形,并描述电路功能。 可以看出,这个电路很简单,或许你会纠结于初值是什么,可是仔细想想,该电路其实和初值没有关系,第一个触发器的输入是第二个以及第三个触发器的输出的反馈,是Q1与Q2的或非,只要触发器复位有初值即可,...