技术
本篇主要针对Zynq UltraScale + MPSoC的DDR接口,从硬件设计的角度进行详细介绍,最后展示一下小编之前自己设计的基于ZU+的外挂8颗DDR4的设计
电平转换在实际电路设计中常常会用到,不同种类逻辑电平之间的转换一般通过特定逻辑功能器件实现(如使用MAX232实现TTL转RS232等等),但随着器件集成度的增加,工艺的提升,现在的控制器使用的逻辑电平电压等级越来越低(好多控制器对外接口都直接输出1.8V或更低了)
赛灵思® PYNQ 框架能在 Zynq® 产品系列中实现对Python 语言及运行时的全面支持与集成。直接在 Zynq SoC 架构上利用 Python 的生产力优势,用户能够充分发挥可编程逻辑和微处理器的长处,更容易为人工智能、机器学习和信息技术应用构建设计。
实验中文件中包含一个矩阵乘法器的实现,实现两个矩阵inA和inB相乘得出结果,并且提供了一个包含了计算结果的testbench文件来与所得结果进行对比验证。
被广泛应用于各种产品,具有开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点。很多新型FPGA利用先进的技术实现低功耗和高性能。他们通过新的制造工艺降低了内核电压,从而扩大电源电压范围并提高电流量。很多FPGA对每个电源轨的供电需求不尽相同
用软件从 C 转化来的 RTL 代码其实并不好理解。今天我们就来谈谈,如何在不改变 RTL 代码的情况下,提升设计性能。本项目所需应用与工具:赛灵思HLS、Plunify Cloud 以及 InTime。
本篇主要介绍逻辑互连中的一些具有特殊功能的互连。这些特殊功能包括总线保持、串联阻尼电阻、热插拔等。
1、总线保持(Bus Hold)
假设初始状态为输入端和输出端均为高电平,反馈电路没有电流流过。如果输入端的驱动源停止驱动,输入端可凭借反馈电路保持高电平,反馈电路上流过的电流为漏电流(IOZ),一般仅为几毫安。
在实际玩Zynq中断之前,先扯一扯中断这个神奇的东西~。实时性是一个嵌入式系统很重要的性能,实时性体现在一个系统对外部事件的响应能力和处理能力上,而CPU对一个事件的响应及处理主要依托于 —— 中断。
本篇主要介绍逻辑互连中的AC耦合电容。
1、AC耦合电容的作用
<li>source和sink端DC level不同,用来隔直流;</li>
<li>信号传输时可能会串扰进去直流分量,所以隔直流使信号眼图更好。</li>
2、AC耦合电容的位置及大小
一般AC耦合电容的位置和容值大小都是由信号的协议或者芯片供应商去提供,对于不同信号和不同芯片,其位置和容值大小都是不一样的。比如PCIE信号要求AC耦合电容靠近通道的发送端,SATA信号要求AC耦合电容靠近连接器处,对于10GBASE-KR信号要求AC耦合电容靠近信号通道的接收端。
一般放在接收端,其原因如下:
FPGA设计的时候,我们需要考虑功耗,功耗自然与温度相关,还需要考虑电源供电电压的稳定性以满足高低温的环境,有没有考虑过,怎么监控FPGA内部的温度和电压变化情况,这对项目的优化和评估用处很大
本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。
下面详细介绍第二部分:不同逻辑电平之间的互连。
1、LVPECL的互连
1.1、LVPECL到CML的连接
一般情况下,两种不同直流电平的信号(即输出信号的直流电平与输入需求的直流电平相差比较大),比较提倡使用AC耦合,这样输出的直流电平与输入的直流电平独立。
<font color="#FF8000">作者:许雪松 ,硬件十万个为什么</font>
公司里做项目,嵌入式系统大大小小,到处都是。因为都是一个系统里的,所以都需要通讯,既然通讯就涉及到协议问题。
谈及协议,很多工程师觉得协议的设计相对简单,主要是报文的设计。大多数时候,协议的应用场景简单,没有复杂的交互。这么做的确也是没什么太大的问题。然而,就是这么简单的场景,仍有一些协议会在实际中发生意想不到的问题。归根结蒂,还是没有把握协议涉及的规律。下面我们简单的聊聊协议设计的规律。
协议设计中面临的问题:
1.设计者大多数情况下,从应用出发,仅仅考虑了基本需求的满足,没有考虑扩展需求的满足;
本篇主要介绍LVDS、CML、LVPECL三种最常用的差分逻辑电平之间的互连。由于篇幅比较长,分为两部分:第一部分是同种逻辑电平之间的互连,第二部分是不同种逻辑电平之间的互连。
下面详细介绍第一部分:同种逻辑电平之间的互连。
CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。 CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。一般而言数据链结层及物理层会用CAN来实作。除了 CANopen 外,也有其他的通讯协定(如EtherCAT)实作 CANopen 的设备子协定。
<font color="#FF8000">作者:Mculover666</font>
今天刚刚到手一块PYNQ-Z2,确认过眼神,是我想要的板子,话不多说,开干。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201812/13964-411…; alt=""></center>
在goggle上搜zcu102 pynq可以找到一些移植方法的信息
0. Prebuilt
<a href="https://download.csdn.net/download/vacajk/10823609" rel="nofollow" target="_blank">PYNQ移植ZCU102编译好的固件</a>
上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序,这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势,PS可以控制PL产生定制化的行为,而不需要去动硬件代码。
这次实验是产生频率和占空比可调的PWM(Pulse Width Modulation)信号,调用8次,产生8路PWM波,并用这些信号去控制8路LED灯,观察实验效果。后面会做一个比较。
用的板子是zc702。
新建一个工程,命名为PWM_AXI_Lite
创建基于AXI总线的PWM波IP
IP设计为一个寄存器负责控制频率,一个寄存器负责控制占空比。