1、冒泡排序
2、计算x的n次方的方法
3、计算aa + bb + c*c + ……
4、计算阶乘 n!
5、列出当前目录下的所有文件和目录名
6、把一个list中所有的字符串变成小写:
7、输出某个路径下的所有文件和文件夹的路径
8、输出某个路径及其子目录下的所有文件路径
9、输出某个路径及其子目录下所有以...
技术
本文主要介绍Zynq UltraScale + MPSoC系列芯片的USB3.0/2.0接口硬件设计。
ZU+系列MPSoC要实现USB3.0/2.0的全部功能,需要同时使用MIO和GTR。因为GTR接口中的USB接口只支持USB3.0,对USB2.0的支持需要通过MIO接口外接USB PHY实现。
ZU+系列MPSoC包括两个USB接口,根据实际需要可以进行如下表所示的配置...
无线工程师经常希望使用无线信号实现从概念到原型。诸如USRP(通用软件无线电外设)设备的软件无线电(SDR)提供了满足该需求的灵活解决方案。由于当今的应用需要更高的带宽和更短的延迟,因此需要在SDR的FPGA上实现更多的信号处理。但编程FPGA的无线工程师经常面临下列挑战:
1 FPGA与输入/输出(如RF信号或主机CPU)之间的接口困难
2 不熟悉用于算法实现的编程样式,及
3...
作者:OpenS_Lee
1 背景知识
在2010年4月硅谷举行的嵌入式系统大会上,赛灵思发布了可扩展处理平台的架构详情,这款基于无处不在的ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力要求。赛灵思可扩展处理平台芯片硬件的核心本质就是将通用基础双ARM Cortex-A9 MP Core处理器系统作为“主系统”,结合低功耗28nm工艺技术,以实现高度的灵活性、...
如何存储关键数据的方法,属于规模测试验证的手段,但对于Verilog的调试过程还不够直观,因为无法确切地了解Verilog代码仿真中各个关联信号是如何作用的。Verilog的确可以像C/C++一样启动调试模式,针对每行代码进行调试。但请注意,由于Verilog是并行执行的,而仿真是采用delta时间逐步并行推进的,采用代码调试较为困难,所以常常需要存储全部或部分仿真数据,这就是波形文件。...
本篇主要介绍PCIe总线的AC耦合电容、总线的去加重等高速信号调整技术。
AC耦合电容可以参考之前的文章《逻辑电平之差分互连AC耦合电容(7)》,本文主要针对PCIe接口介绍AC耦合电容的实际使用。
信号调整相关资料可以参考之前的文章《高速信号调整技术》,本文主要针对PCIe介绍其使用的具体的调整技术。
1、AC耦合电容
一般使用AC耦合电容是为了提供直流偏压。...
描述
本设计咨询主要介绍一个错误的时钟偏移计算导致错误时序收敛的问题。
出现问题的情况:
这可能会影响使用生成时钟的设计,其具有以下特征:
使用 Vivado 2018.2.x 及更早版本。
用户生成的时钟没有使用‘-master_clock’定义
在同一时钟网络的并行分支上的层级引脚上创建的主时钟或生成的时钟连接至上述用户生成的时钟源引脚
在上述情况下,...
作者:李 森,李 波,闫中江,杨 懋;来源:2018年电子技术应用第12期
摘要: 近年来,Ad Hoc网络在无线通信领域发展迅猛。它是一种不依赖预设通信设施的新型组网技术,具有很高的灵活性与独立性,适用于许多网络设备临时架设困难的场景。DSR协议是Ad Hoc网络的一种按需路由控制协议,也是Ad Hoc网络中最有发展潜力的路由协议。DSR协议的核心是用于各节点之间相互通信的路由表项管理。...
本篇主要介绍PCIe总线的复位方式。
PCIe总线规定了两个复位方式:Conventional Reset和FLR(Function Level Reset),而Conventional Reset又可以进一步分为两大类:Fundamental Reset和Non-Fundamental Reset。Fundamental Reset方式包括Cold和Warm Reset方式,...
PS/PL Interfaces
Zynq在PS和PL之间有9个AXI接口。 在PL方面,有4x AXI Master HP(高性能)端口,2x AXI GP(通用)端口,2x AXI Slave GP端口和1x AXI Master ACP端口。 PS中还有连接到PL的GPIO控制器。
有四个pynq类用于管理Zynq PS(包括PS DRAM)和PL接口之间的数据移动...
本片主要介绍PCIe总线的电源管理,主要包括不同板卡的功耗、板卡的能耗等级等。
1、功耗等级
根据《PCIx系列之“PCIe总线信号介绍”》,PCIe接口的电源包括+12V、+3.3V、+3.3Vaux三种。根据功耗的不同,三种电压的供电能力不同,PCIe卡可以分为以下几种:
10W,直接通过金手指提供;
25W,直接通过金手指提供;
75W,直接通过金手指提供;
150W,...
Marc Stackler, Teledyne e2v半导体亚太区产品应用工程师
多年来,数字收发机被应用在多种类型的应用中,包括地面蜂窝网络、卫星通信和基于雷达的监视、地球观测和监控。它们的性能直接影响新的5G移动网络的效率和系统成本。
过去,收发机的系统工程师在这些应用中使用中频架构。现在,高速数据转换器的最新发展,使新型基于射频采样的架构成为可能。和过去的方案相比,...
本篇主要介绍PCIe总线相关的信号。
PCIe总线相关的信号主要分为以下几类:
辅助信号线
数据线
电源
1、Auxiliary Signals
The auxiliary signals are provided on the connector to assist with certain system level functionality or...
作者:Mculover666
1.实验目的
用HDL语言+Vivado创建一个挂载在AXI总线上的自定义IP核
2.实验步骤
2.1.创建一个新的项目
2.2.调用Create and Package IP Wizard,创建一个新的AXI-Lite从机ip
选择Tools->Create and Package IP
编辑创建的IP...
本篇主要针对Zynq UltraScale + MPSoC的DDR接口,从硬件设计的角度进行详细介绍,最后展示一下小编之前自己设计的基于ZU+的外挂8颗DDR4的设计。
目前比较常用的DDR是DDR4和DDR3,其他系列相对使用较少一些,本文主要以DDR4进行介绍。
1、选型
根据ZU+系列芯片的数据手册、TRM、pg150等文档,DDR可以挂载在PS侧,也可以挂载在PL侧,...
教程介绍
本教程旨在指导用户通过 Plunify Cloud 的云服务器,来使用 InTime 软件优化 FPGA 设计。如果您首次使用 InTime,请免费申请该软件的本地试用。
本教程涵盖 "Hot Start" 配方、"InTime Default" 配方,以及 "Extra Opt Exploration" 配方。配方的流程以及它们的设置如下所示。
配方 1 :...
1、逻辑电平转换概述
电平转换在实际电路设计中常常会用到,不同种类逻辑电平之间的转换一般通过特定逻辑功能器件实现(如使用MAX232实现TTL转RS232等等),但随着器件集成度的增加,工艺的提升,现在的控制器使用的逻辑电平电压等级越来越低(好多控制器对外接口都直接输出1.8V或更低了),而同种逻辑电平、不同电压等级之间的转换就变得更为常见了。
TI的逻辑器件列表
2...
作者:Giulio Corradi 博士
赛灵思® PYNQ 框架能在 Zynq® 产品系列中实现对Python 语言及运行时的全面支持与集成。直接在 Zynq SoC 架构上利用 Python 的生产力优势,用户能够充分发挥可编程逻辑和微处理器的长处,更容易为人工智能、机器学习和信息技术应用构建设计。
摘要
从工程设计、科研、数据科学、机器学习、信息技术到人工智能,Python...
在逻辑电平互连的过程中,经常会出现电流倒灌的现象。本篇从IO口的结构出发,分析电流倒灌的原因及解决措施。
1、IO口结构
IO口根据接口类型的不同,分为高阻、三态、推挽、开漏等,但除了功能性区别外,几乎所有IO口都会存在如下结构所示的四个二极管。
D1在大多数CMOS集成电路中起着防静电功能,同时辅助起着输入端限幅作用。但是在ABT、LVT、LVC和AHC/...
作者:Mculover666
1.实验目的
通过例程探索Vivado HLS设计流
用图形用户界面和TCL脚本两种方式创建Vivado HLS项目
用各种HLS指令综合接口
优化Vivado HLS设计来满足各种约束
用不用的指令来探索多个HLS解决方案
2.实验内容
实验中文件中包含一个矩阵乘法器的实现,实现两个矩阵inA和inB相乘得出结果,...
被广泛应用于各种产品,具有开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点。很多新型FPGA利用先进的技术实现低功耗和高性能。他们通过新的制造工艺降低了内核电压,从而扩大电源电压范围并提高电流量。很多FPGA对每个电源轨的供电需求不尽相同,而这些不同的电源有不同的电压输出和时序要求以及不同的噪声灵敏度要求。电源模块是满足这些供电需求的理想选择。
一个电源模块包括控制器、FET、...
用软件从 C 转化来的 RTL 代码其实并不好理解。今天我们就来谈谈,如何在不改变 RTL 代码的情况下,提升设计性能。
本项目所需应用与工具:赛灵思HLS、Plunify Cloud 以及 InTime。
前言
高层次的设计可以让设计以更简洁的方法捕捉,从而让错误更少,调试更轻松。然而,这种方法最受诟病的是对性能的牺牲。在复杂的 FPGA 设计上实现高性能,往往需要手动优化...
本篇主要介绍逻辑互连中的一些具有特殊功能的互连。这些特殊功能包括总线保持、串联阻尼电阻、热插拔等。
1、总线保持(Bus Hold)
假设初始状态为输入端和输出端均为高电平,反馈电路没有电流流过。如果输入端的驱动源停止驱动,输入端可凭借反馈电路保持高电平,反馈电路上流过的电流为漏电流(IOZ),一般仅为几毫安。
输入端可由内部反馈电路保持输入端最后的确定状态,...
作者:Mculover666
在实际玩Zynq中断之前,先扯一扯中断这个神奇的东西~
实时性是一个嵌入式系统很重要的性能,实时性体现在一个系统对外部事件的响应能力和处理能力上,而CPU对一个事件的响应及处理主要依托于 —— 中断。
通俗的来说,中断的一个基本过程就是:当一个事件发生时(比如按键按下),产生一个可以发送到CPU的中断信号(上升沿或下降沿无所谓,是个信号就行),...
本篇主要介绍逻辑互连中的AC耦合电容。
1、AC耦合电容的作用
source和sink端DC level不同,用来隔直流;
信号传输时可能会串扰进去直流分量,所以隔直流使信号眼图更好。
2、AC耦合电容的位置及大小
一般AC耦合电容的位置和容值大小都是由信号的协议或者芯片供应商去提供,对于不同信号和不同芯片,其位置和容值大小都是不一样的。...
作者:做但不能忘思考,来源:FPGA2嵌入式
FPGA设计的时候,我们需要考虑功耗,功耗自然与温度相关,还需要考虑电源供电电压的稳定性以满足高低温的环境,有没有考虑过,怎么监控FPGA内部的温度和电压变化情况,这对项目的优化和评估用处很大,Xilinx的7系列内部集成ADC有这个功能,Altera的MAX系列内部集成ADC也有这个功能(如下图),现在以Xilinx来学习这个技能...
作者:廖海鹏,卿粼波,滕奇志,何小海,邓媛媛,来源:2018年电子技术应用第12期
摘要: 由于极化码被指出在二进制离散无记忆信道中具有实现其极限容量的理论性能,近年来极化码在通信领域的贡献日渐凸显。极化码的译码系统可采用软件或者硬件方式实现,其中使用软件方式时译码效率受限于CPU的串行处理模式,因此在具有并行工作模式的FPGA上进行极化码的译码实现对于通信系统来说具有非常大的意义。...
本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。
下面详细介绍第二部分:不同逻辑电平之间的互连。
1、LVPECL的互连
1.1、LVPECL到CML的连接
一般情况下,两种不同直流电平的信号(即输出信号的直流电平与输入需求的直流电平相差比较大),比较提倡使用AC耦合,这样输出的直流电平与输入的直流电平独立。
1.1.1、直流匹配...
作者:许雪松 ,硬件十万个为什么
公司里做项目,嵌入式系统大大小小,到处都是。因为都是一个系统里的,所以都需要通讯,既然通讯就涉及到协议问题。
谈及协议,很多工程师觉得协议的设计相对简单,主要是报文的设计。大多数时候,协议的应用场景简单,没有复杂的交互。这么做的确也是没什么太大的问题。然而,就是这么简单的场景,仍有一些协议会在实际中发生意想不到的问题。归根结蒂,...
本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。由于篇幅比较长,分为两部分:第一部分是同种逻辑电平之间的互连,第二部分是不同种逻辑电平之间的互连。
下面详细介绍第一部分:同种逻辑电平之间的互连。
输入...
CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。 CANopen 支援网络管理、...
作者:Mculover666
今天刚刚到手一块PYNQ-Z2,确认过眼神,是我想要的板子,话不多说,开干。
PYNQ项目是一个支持Xilinx Zynq器件的开源软件框架,目的在于借助Python降低Zynq嵌入式系统开发门槛,有丰富的组件:
可编程逻辑的控制
Jupyter Notebook接口
预安装的Python库
网络/USB/UART接口
要使用Pynq,...
在goggle上搜zcu102 pynq可以找到一些移植方法的信息
0. Prebuilt
PYNQ移植ZCU102编译好的固件
1. 生成镜像
git clone
$ git clone https://github.com/Xilinx/PYNQ.git
$ cd PYNQ
$ git checkout v2.3
$ git checkout -b...
上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序,这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势,PS可以控制PL产生定制化的行为,而不需要去动硬件代码。
这次实验是产生频率和占空比可调的PWM(Pulse Width Modulation)信号,调用8次,产生8路PWM波,并用这些信号去控制8路LED灯,观察实验效果。后面会做一个比较...
在开发PL时一般都会用到分频或倍频,对晶振产生的时钟进行分频或倍频处理,产生系统时钟和复位信号,下面就介绍一下在vivado2017.3中进行PL开发时调用IP的方法。
首先打开vivado2017.3新建一个RTL项目。
点击Flow navigator的IP Catalog 选项,如下图所示:
在搜索框中输入clock;
如图;依次展开,...
一. 概述
Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs资源。
在用Vivado建立工程的时候选择器件的时候就可以看到这些资源的多少。如下图所示。
这里面的LUT资源是所有的LUT资源,...
本篇主要介绍TTL/CMOS电平的互连、OC/OD的互连,其余单端逻辑电平的互连可参考相关器件规范、电平规范。
1、TTL/CMOS互连
常用的TTL和CMOS电平主要是5V TTL、5V CMOS、3.3VTTL、3.3V CMOS、3.3V/5V Tol(输入时3.3V逻辑电平,但是可以接受5V的信号输入)等,随着处理器电压越来越低,现在1.8V...
本培训视频介绍了 AWS F1 硬件平台的技术规格。观看此视频,以了解 AWS FPGA 中的各个区域,了解AWS F1 Shell 并查看重要的性能注意事项。
QNX版本:QNX6.6
宿主系统:Windows
交互系统:Debin
开发板:MIZ702 完全兼容ZedBoard
开发流程:
1、打开QNX Momentics IDE开发环境,File->QNX Source Package and BSP->Next->选择从官网下的BSP压缩包一路Next Finish。
2、...
前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。
具体做法是创建一个基于AXI总线的加法器模块,在Vivado里将AXI总线添加到debug信号里,实际上是用逻辑分析仪探测信号,...
本篇主要介绍常用的差分逻辑电平,包括LVDS、xECL、CML、HCSL/LPHCSL、TMDS等。
1、LVDS电平
LVDS器件是近年来National Semiconductor公司发展的一种高速传输芯片,它的传输机制是把TTL逻辑电平转换成低电压差分信号,以便于高速传输。与传统的ECL逻辑相比,它采用CMOS工艺,它的电压摆幅更低,只有400mV,ECL为800mV,...
建立时间,保持时间
为了确保寄存器在时钟沿稳定采集数据,那么必须要满足寄存器的建立,保持时间要求。
建立时间要求:在寄存器有效时钟沿之前至少Tsetup时间,数据必须到达且稳定。如下图所示。
保持时间要求:在数据采集有效时钟沿之后,数据必须维持最短Thold时间不变。如下图所示。
建立时间裕量计算
同步时序电路如下图所示。这里对后面一个寄存器进行建立时间裕量分析...
作者:XCZ,来源:硬件助手微信公众号
本篇主要针对CMOS电平,详细介绍一下CMOS的闩锁效应。
1、Latch up
闩锁效应是指CMOS电路中固有的寄生可控硅结构(双极晶体管)被触发导通,在电源和地之间存在一个低阻抗大电流通路,导致电路无法正常工作,甚至烧毁电路。
Latch up是指CMOS晶片中,在电源VDD和地线GND(VSS)...
作者:肉娃娃
原语,即primitive。不同的厂商,原语不同;同一家的FPGA,不同型号的芯片,可以也不一样;原语类似最底层的描述方法。使用原语的好处,可以直接例化使用,不用定制IP;即可通过复制原语的语句,然后例化IP,就可使用;Xilinx是通过直接修改原语中的参数再例化IP来使用;Xilinx公司的原语分为10类,包括:计算组件,IO端口组件,寄存器/锁存器,时钟组件,处理器组件,...
前言(本文基于赛灵思官方HLS文档UG871中的7.1节):
在使用高层次综合,创造高质量的RTL设计时,一个重要部分就是对C代码进行优化。
Vivado HLS拥有自动优化的功能,试图最小化loop和function的latency,为了实现这一点,软件会在loop和function上并行执行尽可能多的操作(比如说,在function级别上,...
Zynq™-7000 All Programmable SoC在单个器件上实现了ARM处理功能与FPGA逻辑独特的组合,因此需要双重的配置过程,同时需要考虑处理器系统和可编程逻辑。工程师会发现,其配置顺序与传统的赛灵思FPGA稍有差别。尽管如此,方法仍是相似的,生成引导镜像和完成配置存储器编程的难度不大。
虽然标准的FPGA配置实践一般只需要FPGA bit文件,...
作者:圆宵,来源:FPGA那点事儿
随着视频应用场景和内容越来越丰富,对网络传输,存储,和AI智能分析带来了越来越高的需求和挑战。以一路FHD@60fps视频为例,其RAWDATA的带宽约为3Gbps;到了4K@60fps,带宽大约为12Gbps;到8K,带宽更是会到48Gbps。这样大的数据量,如果不进行压缩是没有办法进行传输和存储的。因此,从早年的MPEG2,到当下被广泛采用的H....
上一期,我们重点学习了ZYNQ的PL开发,本期我们侧重于进行PS开发的学习。我们将在 VIVADO 开发环境下搭建 ARM+FPGA 的系统架构,并在 SDK 中编译软件实现软硬件联合开发。
本部分的学习,我们依旧借助得力的助手与伙伴——PYNQ_z2来完成。
一. 实验目的
1. 点亮开发板右下角三个灯
2. 输出“Hello,World!”
二....
作者:XCZ ,来源:硬件助手微信公众号
本篇主要介绍常用的单端逻辑电平,包括TTL、CMOS、SSTL、HSTL、POD12等。
1、TTL电平
下面以一个三输入的TTL与非门介绍TTL电平的原理。
三输入TTL与非门
当输入全1时,uI=3.6V,VT1处于倒置工作状态(集电结正偏,发射结反偏),uB1=0.7V×3=2.1V(后级电路决定的),...
作者:Evening
Xilinx每一个FPGA都有一个独特的ID,也就是Device DNA,这个ID相当于我们的身份证,在FPGA芯片生产的时候就已经写死在芯片的eFuse寄存器中,具有不可修改的属性,因为使用的是熔断技术。值得说明的是,在7系列及以前,这个ID都是57bit的,但是在Xilinx的Ultraslace架构下是96bit...