技术
在开发PL时一般都会用到分频或倍频,对晶振产生的时钟进行分频或倍频处理,产生系统时钟和复位信号,下面就介绍一下在vivado2017.3中进行PL开发时调用IP的方法。
首先打开vivado2017.3新建一个RTL项目。
<strong>一. 概述</strong>
Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs资源。
本篇主要介绍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 CMOS等低电压的逻辑电平也越来越普及了。
本培训视频介绍了 AWS F1 硬件平台的技术规格。观看此视频,以了解 AWS FPGA 中的各个区域,了解AWS F1 Shell 并查看重要的性能注意事项。
<iframe src='//players.brightcove.net/17209957001/SywTPUVC_default/index.html?videoId=5583255356001' allowfullscreen frameborder=0 width="600" height="338"></iframe>
前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。
具体做法是创建一个基于AXI总线的加法器模块,在Vivado里将AXI总线添加到debug信号里,实际上是用逻辑分析仪探测信号,在SDK端通过debug方式依次写入两个加数,由PL计算出和,我们读出这个和打印到串口,这样AXI总线的读和写就都能观察到了。
板子使用的是zc702。
在观察信号之前我们有必要简单了解AXI是个什么:
本篇主要介绍常用的差分逻辑电平,包括LVDS、xECL、CML、HCSL/LPHCSL、TMDS等。
1、LVDS电平
LVDS器件是近年来National Semiconductor公司发展的一种高速传输芯片,它的传输机制是把TTL逻辑电平转换成低电压差分信号,以便于高速传输。与传统的ECL逻辑相比,它采用CMOS工艺,它的电压摆幅更低,只有400mV,ECL为800mV,动态功耗更小,(输出电流3~5mA)只有ECL电路的1/7(相同的数据传输量),低EMI,价格更低,因而具有很大的优势,从97-98年首先在欧洲开始得到应用。
ANSI/TIA/EIA-644是由TR30.2制定的,这个标准定义了收发器的输入输出阻抗,但是这仅仅是一个电气特性标准。其并不包括功能性和协议规格,完全是应用独立的。
<font color="#FF8000">作者:XCZ,来源:硬件助手微信公众号</font>
本篇主要针对CMOS电平,详细介绍一下CMOS的闩锁效应。
<strong>1、Latch up</strong>
闩锁效应是指CMOS电路中固有的寄生可控硅结构(双极晶体管)被触发导通,在电源和地之间存在一个低阻抗大电流通路,导致电路无法正常工作,甚至烧毁电路。
<li>Latch up是指CMOS晶片中,在电源VDD和地线GND(VSS)之间由于寄生的PNP和NPN双极性BJT相互影响而产生的一低阻抗通路,它的存在会使VDD和GND之间产生大电流;</li>
前言(本文基于赛灵思官方HLS文档UG871中的7.1节):
在使用高层次综合,创造高质量的RTL设计时,一个重要部分就是对C代码进行优化。
Vivado HLS拥有自动优化的功能,试图最小化loop和function的latency,为了实现这一点,软件会在loop和function上并行执行尽可能多的操作(比如说,在function级别上,高级综合总是试图并行执行function)。
除了这些自动优化,我们可以手动进行程序优化,即用在不同的solution中添加不同的directive的方法,进行优化和性能对比。其中,对同一个工程,可以建立多个不同的solution(解决方案),为不同的solution添加directive可以达到如下目的:
Zynq™-7000 All Programmable SoC在单个器件上实现了ARM处理功能与FPGA逻辑独特的组合,因此需要双重的配置过程,同时需要考虑处理器系统和可编程逻辑。工程师会发现,其配置顺序与传统的赛灵思FPGA稍有差别。尽管如此,方法仍是相似的,生成引导镜像和完成配置存储器编程的难度不大。
虽然标准的FPGA配置实践一般只需要FPGA bit文件,但是如果您想最大限度地利用Zynq SoC的优势,还需要添加另一种配置文件,即软件可执行与可链接格式(ELF)文件。FPGAbit文件用于定义设计中可编程逻辑部分的行为,而ELF文件则是处理系统将要执行的软件程序。
下面让我们来看看如何在Zynq SoC上实现裸机(无操作系统)软件应用。
上一期,我们重点学习了ZYNQ的PL开发,本期我们侧重于进行PS开发的学习。我们将在 VIVADO 开发环境下搭建 ARM+FPGA 的系统架构,并在 SDK 中编译软件实现软硬件联合开发。
本部分的学习,我们依旧借助得力的助手与伙伴——PYNQ_z2来完成。
一. 实验目的
1. 点亮开发板右下角三个灯
2. 输出“Hello,World!”
二. 实验要求
1. 在 VIVADO 中编译 bit 文件;
2. 在 SDK 中编译 elf 文件并将 FPGA 的 bit 文件和 ARM 处理器 的 elf 文件下载到开发板中
三. 实验步骤
<font color="#FF8000">作者:XCZ ,来源:硬件助手微信公众号</font>
本篇主要介绍常用的单端逻辑电平,包括TTL、CMOS、SSTL、HSTL、POD12等。
<strong>1、TTL电平</strong>
作者:Evening
Xilinx每一个FPGA都有一个独特的ID,也就是Device DNA,这个ID相当于我们的身份证,在FPGA芯片生产的时候就已经写死在芯片的eFuse寄存器中,具有不可修改的属性,因为使用的是熔断技术。值得说明的是,在7系列及以前,这个ID都是57bit的,但是在Xilinx的Ultraslace架构下是96bit。
对于Vivado Hls来说,输入包括Tesbench,C/C++源代码和Directives,相应的输出为IP Catalog,DSP和SysGen,特别的,一个工程只能有一个顶层函数用于综和,这个顶层函数下面的子函数也是可以被综合的,会生成相应的VHDL和Verilog代码,所以,C综合后的RTL代码结构通常是跟原始C描述的结构是一致的,除非是子函数功能很简单,所需要的逻辑量很小。 通常在main函数以下的函数都可以被综合,也就是说,并不是所有的C/C++都可以被综合,动态内存分配和涉及到操作系统层面的操作不可以被综合。
<font color="#FF8000">作者:小鱼,Xilinx学术合作</font>
<strong>一.概述</strong>
在文章《Verilog HDL入门思路梳理》我们说过应该如何去学习Verilog HDL描述。然而第一步,我们需要知道Verilog有哪些语法,它是否可以综合,可以用这个语法来描述什么逻辑功能电路呢?
其实Xilinx已经贴心地准备好了答案,还给你准备了一堆参考实例。
<font color="#FF8000">作者:XCZ ,来源:硬件助手微信公众号</font>
本篇为逻辑电平系列文章中的第一篇,主要介绍逻辑电平相关的一些基本概念。后续将会介绍常见的单端逻辑电平(针对CMOS的闩锁效应进行详细介绍)、差分逻辑电平、单端逻辑电平的互连、差分逻辑电平的互连、一些特殊功能的互连、逻辑互连中的电流倒灌问题、以及逻辑电平的转换等。
<strong>1、常见逻辑电平</strong>
常见的逻辑电平如下:
由于Vivado下载程序步骤和ISE有较大差异,特此写此文章,希望对大家有所帮助。
1,下载文件生成
在.bit文件生成后,在TCL中输入
write_cfgmem -format mcs -interface spix4 -size 16 -loadbit "up 0x0 F:/Git/XGA/Display_HDMI/Display.runs/impl_2/Display.bit" -file FPGA_TOP.mcs
spix4为模式设置。
-size 16为Flash大小,单位Byte。
即可得到FPGA_TOP.mcs和FPGA_TOP.prm两个文件,后边需要用到这两个文件。