Python 是一门用途广泛、易读、而且容易入门的编程语言。但同时 python 语法也允许我们做一些很奇怪的事情。
1、使用 lambda 表达式重写多行函数
众所周知 python 的 lambda 表达式不支持多行代码。但是可以模拟出多行代码的效果。
def f():
x = 'string'
if x.endswith('g...
技术
神经网络(NN)几乎可以在每个领域帮助我们用创造性的方式解决问题。本文将介绍神经网络的相关知识。读后你将对神经网络有个大概了解,它是如何工作的?如何创建神经网络?
本文涉及以下内容:
神经网络的发展历史
什么是真正的神经网络?
单元/神经元
权重/参数/连接
偏置项
超参数
激活函数
层
神经网络学习时发生了什么?
实现细节(...
本篇主要介绍Xilinx FPGA的电源设计,主要包括电源种类、电压要求、功耗需求,上下电时序要求,常见的电源实现方案等。
1、电压种类及要求
随着FPGA的发展,其电压类型越来越丰富,主要包括以下几种类型:
Processor System电压,主要给Zynq系列SoC中的ARM供电,包括VCC_PSINTFP、VCC_PSINTLP、VCC_PSAUX、...
Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块。
在平时的工作中,Python开发者很容易犯一些小错误,这些错误都很容易避免,本文总结了Python开发者最容易犯的10个错误,一起来看下,不知你中枪了没有。
1.滥用表达式作为函数参数默认值...
作者:Taylor Roorda
与典型的微控制器相比,现场可编程门阵列FPGA是一种能够提供更强性能和灵活性的器件,本文通过解答几个有关FPGA的常见问题——什么是FPGA、为什么我会需要FPGA、如何为FPGA编程——为开发者提供FPGA入门所需的基本概念和知识。
如果您是二元思维的人,那么不要错过第1到4部分内容。在这篇博客中,我将简单介绍我最感兴趣的电子器件:...
该系列文章介绍MIPI系列规范。本篇为第一篇,主要介绍MIPI Alliance及其推出的一系列规范,以及相关的一些应用,以便对MIPI有一个全面的了解。后续会针对每一个部分进行详细介绍。
1、MIPI Overview
MIPI Alliance,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟。...
NingHeChuan
DDS直接数字式频率合成器(Direct Digital Synthesizer)。本文实现一个具有可以频率可调、相位可调的正余弦、方波、三角波的DDS。
DDS的原理如下图,累加器每次累加一个频率控制字,调节频率控制字的数值,可以改变累加器的累加速度,进而可以调节从ROM查找表中读取波形数据的速度。即频率控制字越大,频率越高。相位控制字可以用来调节初始相位...
描述
内核重置应该保持断言状态,直到相关时钟稳定为止。在从重置中取出以太网 IP 核之前,它必须具有稳定的频率而且没有故障。
这适用于 SerDes 时钟和 IP 核时钟。 如果在一个时钟中检测到后续不稳定性,就必须重置 100G 以太网 IP 核。
这种不稳定性的一个实例是 CDR 锁丢失。
用户逻辑应该确定所有需要重置的外部条件(例如:时钟故障、CDR...
很多使用ZCU106/104开发板的小伙伴,发现在官网上可以找到包括IPI,MIG,PCIe等参考设计,但是如何把VCU用起来的流程设计,Target Reference Design(以下简称TRD)不知道哪里去下,那么最新版本的TRD去哪里获得呢?
答案当然是神奇的Xilinx Wiki :)
http://wiki.xilinx.com
在wiki中搜索“...
为了复用现有的MATLAB®代码,LabVIEW Communications System Design Suite (LabVIEW Comms) 新增了MATLAB专用接口的功能。无线原型的开发者可使用已有的MATLAB函数或脚本,将其连接至LabVIEW Comms在Windows处理器上运行的代码部分。MATLAB专用接口完全支持MATLAB工具箱,...
作者:春哥,来源:玩儿转FPGA
vivado自带很多命令帮助编译器更好的实现设计者的想法,用得好会变成开发利器。比如,max_fanout命令,本身是用来约束扇出,减少布线拥塞的常用命令。然而很多读者向我反映,使用这个命令之后发现没有任何事情发生,完全没有任何效果。这里我就带大家理一理这个命令的使用方法。
max_fanout起作用的条件
1. 打算降低扇出的网络必须是reg驱动...
本篇主要介绍Xilinx FPGA PL侧的IO资源,目前主要包括HP、HR、HD三种类型,不同架构、不同封装的FPGA,包含的IO资源种类和数量均不一样,在连接外设时一定要注意,比如3.3V逻辑电平就不能直接连接到HP bank上,其VCCO的电源电压也不能直接接3.3V。
UltraScale architecture-based devices provide various I/O...
电磁频谱是战争领域中争议越来越大的话题。 电子对抗措施日益复杂,探测第五代战斗机变得更加困难,大多数世界主要大国正大力投资到网络战技术,以便未来成为这一领域的主导者。 此外,随着蜂窝电话供应商开始推出5G,汽车制造商推动V2X通信,以及物联网将无线连接推向无数设备,频谱的商业用途呈指数级扩展。
这种演变为设计和测试情报、监视和侦察(ISR)系统的科学家和工程师带来了新的挑战。...
本篇主要介绍UFS的架构、系统模型、信号定义(包括eUFS和UFS Card)等,以对UFS接口有个粗略的了解。下一篇将针对电源、复位、时钟等部分进行详细介绍。
1、UFS介绍
UFS(Universal Flash Storage)是JEDEC发布的新一代通用闪存存储标准,包括主机侧和内存芯片侧的标准。最新的标准包括:
JESD220D: Universal Flash...
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资源,...