跳转到主要内容

技术

学会System Generator(11)——Black Box调用HDL代码

本文是该系列的第11篇。从前面的设计中可以看出,System Generator最适合的是完成DSP系统的设计,可以大大提高设计效率,而其它设计任务通常仍需要使用HDL模型来设计。

但是System Generator提供了一个特性:可以通过black box这个block将其它HDL文件以黑盒的形式封装到System Generator设计中,在仿真时使用Simulink+Vivado Simulator(或ModelSim)协同仿真的方法,在Simulink环境中完成设计的仿真测试。

在本系列的第2篇中,我们用Digital FIR Filter这个block完成了数字滤波器的设计。本文设计将把其中的滤波模块改为由HDL实现,借此介绍上述功能。

JTAG各类接口针脚定义及含义

JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。

<strong>一、引脚定义</strong>

Test Clock Input (TCK) -----强制要求1

TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。

Test Mode Selection Input (TMS) -----强制要求2

TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。

关于Xilinx FPGA FFT IP核的学习笔记

最近在做载波同步锁相环的时候,需要用到FFT核对AD采样数据进行傅里叶变换,以得到锁相环中NCO的初始频率控制字。关于FFT蝶形算法,包括高版本的FFT核(带AXI4协议)在这先不阐述了。

本文主要是记录7.1版本的FFT核学习仿真记录,把摸索过程中遇到一些问题和解决方法都记录下来,方便以后借鉴和使用。

卷积神经网络的最佳解释

CNN由由可学习权重和偏置的神经元组成。每个神经元接收多个输入,对它们进行加权求和,将其传递给一个激活函数并用一个输出作为响应。整个网络有一个损失函数,在神经网络开发过程中的技巧和窍门仍然适用于CNN。很简单,对吧?

那么,卷积神经网络与神经网络有什么不同呢?
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201808/13270-386…; alt=""></center>

静态时序分析初步认识

静态时序分析是学习FPGA必须学习的一个知识点,通过一段时间的学习,先将自己所学到的一点静态时序分析的基础稍作总结。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13272-38695-…; alt=""></center>

锁相环(PLL)基本原理

<font color="#FF8000">作者:Ian Collins</font>

<strong>摘要:</strong>
锁相环(PLL)电路存在于各种高频应用中,从简单的时钟净化电路到用于高性能无线电通信链路的本振(LO),以及矢量网络分析仪(VNA)中的超快开关频率合成器。本文将参考上述各种应用来介绍PLL电路的一些构建模块,以指导器件选择和每种不同应用内部的权衡考虑,这对新手和PLL专家均有帮助。本文参考ADI公司的ADF4xxx和HMCxxx系列PLL和压控振荡器(VCO),并使用ADIsimPLL(ADI公司内部PLL电路仿真器)来演示不同电路性能参数。

关于zynq debug进入main函数或汇编函数的小技巧

相信很多朋友在调试ZYNQ的时候也遇到过这个问题,在SDK模式先DEBUG电路板的时候,执行完debug后,分布运行有时候进入C语言的main函数,有时候进入编译后的汇编main函数。

对于我这种汇编小白,C函数显得更容易理解,也方便调试。下面解释一下为什么会出现这两种现象,完全是因为我们操作的原因,因而完全可以避免。

Xilinx System Generator模块中各个常见选项的含义

1. Precision:仿真计算时可按任意精度定点数进行,Full Precision,提供足够的精度;User defined Percision,由开发人员定义位数和小数位。(FPGA上运行的是浮点型?)

2. Aritchmetic Type:可以定义无符号或带符号位(二进制补码)作为输出类型。

3. Number of bits:定义定点数的数据格式:位数,小数位。最大位数为4096。

学会System Generator(10)——支持的MATLAB语法

本文是该系列的第10篇,上一篇介绍了在System Generator设计中使用MCode模块调用MATLAB代码来完成逻辑控制。本文将介绍System Generator支持的所有MATLAB语法。

限于篇幅,本文只记录了经常用到或相对重要的内容,更详细的信息可以参考xilinx官方文档ug958->第一章->MCode小节。

<strong>MCode block特性</strong>
MCode用于在Simulink环境下执行MATLAB函数。MCode的名称与管脚即为函数名称与函数接口。在将System Generator设计导出到FPGA时,软件会将MATLAB代码转换为对应的HDL模型。MCode经常用于实现一些简单的算法功能、有限状态机和控制逻辑。

Zynq平台移植知识点

一、嵌入式Linux系统组成

Vivado常见问题集锦

<font color="#FF8000">作者:NingHeChuan(宁河川)</font>

 对于电子工程师来说,很多电路设计仿真软件都是特别大的,安装下来一般都是上G,甚至几十G,而且win7的兼容性也是最好的,不愿意升级win10是因为麻烦,而且没有必要,对于很多的设计软件来说win10还没有完全兼容,而且还不停自动更新,时间很珍贵的,谁愿意浪费大把时间搞什么兼容性问题,而不是code or design。所以EE一般会把Wndows自动更新关闭。对于普通用户来说就无所谓了,用电脑写写报告,看看片子,跟着win10升级还能体验到很多新功能,完全不会被兼容性问题困扰。关闭Windows10自动更新的方法请自行百度。

SDSoc学习(四):搭建包含AXI_GPIO的平台(解决找不到基地址的问题)

<strong>简介 </strong>
本篇博客大部分内容前三篇博客都已经包含了,此处重点叙述不同之处,主要对比Tcl命令的不同和解决SDSoc程序找不到基地址的问题。

使用ZedBoard开发板,SDSoc 2017.4, Win10系统;此处通过AXI_GPIO点亮ZedBoard板子上连接在PL端的8个LED灯。

<strong>Tcl命令</strong>
搭建平台的步骤在 SDSoc学习(二)中进行了较为详细的描述,同时也可以参见官方文档 ug1146 和 ug1236 。

8个Python高效数据分析的技巧

<strong>作者 | Conor Dewey</strong>
<strong>编译 | 专知</strong>
<strong>整理 | Yingying, Jiahui</strong>

不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加“优美”。

学会System Generator(9)——MCode调用MATLAB代码

本文是该系列的第9篇。FPGA设计中经常用到一些控制逻辑,如有限状态机(FSM),如果用各种block搭建一个FSM比较麻烦。System Generator支持调用MATLAB代码,通常可以编写MATLAB代码来实现FSM等控制逻辑,通过MCode block调用到System Generator设计中。

本文将使用MATLAB代码设计一个FSM,对“1011”这个序列进行检测。序列检测应该是很多Verilog/VHDL学习者在学习FSM时接触到的一个简单设计。本文将以该设计在System Generator中的实现为主题,介绍MCode的使用。

本设计使用到的block
1.Xilinx block:
MCode(->Index):调用MATLAB函数

用Python玩FPGA背后的故事

近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPGA的论文刷屏了吧,那么这是如何实现的呢?今天,就请各位看官和小编一起来了解一下,这个构想的实现基础——PYNQ。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/news/201808/13256-38595-…; alt="图为该篇论文"></center>

突破功能安全设计的复杂性

<font color="#FF8000">作者:Paul S.Levy, 赛灵思功能安全系统高级工程师</font>

“功能安全(Functional Safety)”研究的是机器发生故障或运行环境中断时如何降低其对人和设备造成的危害的方法和措施。试想一下,在刚刚结束的 2018年的足球世界杯(2018 FIFA)中,如果我们将这种研究应用到足球比赛中,裁判员就有能力和权力在他们觉得有犯规行为时暂停比赛。当然,这也不能让他总能发现所有犯规并且总能作出正确的判罚。

用于汽车ADAS SoC的数据转换器IP

<font color="#FF8000">作者:Manuel Mota,Synopsys公司模拟IP部产品营销经理</font>

需要数据转换器的传感器应用涉及十分广泛的范围,例如用于识别不同发动机状态的温度传感器,或者支持汽车驾驶辅助系统(ADAS)的雷达/激光雷达等。涉及到数据转换器的其他应用还包括用于与其他车辆或固定网络进行通信的无线收发器。数据转换器IP(“模拟-数字”和“数字-模拟”)为汽车片上系统(SoC)提供了多种模拟传感器的接口。对于ADAS而言,电子系统及其组件,例如SoC和IP,都必须提供最高程度的可靠性和安全性,同时还要能够经受极端温度范围考验并具备较长的使用寿命。由于这个原因,汽车电子系统及其组件必须遵守一套严格的汽车可靠性和功能安全性标准。

学会System Generator(7)选择最佳数据类型

本文是该系列的第7篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程。不过仍然有些问题需要解决:
1. 如何选择一个最合适的数据类型(以最少资源达到性能需求)?
2. 如何选择系统的输出位宽(保证信号不失真)?

传统的HDL模型设计方法中,博主通常会用MATLAB进行仿真,确认位宽对数据量化的影响;或在Vivado中仿真,截取合适的滤波器输出位数。System Generator提供的相关特性可以大大简化该流程,本文将对此做介绍。

SDSoc学习(二):搭建平台,使用EMIO点亮LED

<strong>简介</strong>
这是学习SDSoc的第二个入门实验,通过EMIO点亮连接在PL上的8个LED。与上一个实验不一样,在这一个实验中,由于ZedBoard平台中没有使能EMIO,因此想直接通过SDSoc编写程序驱动MIO是不行的,所以这一个实验需要自己搭建包含EMIO的平台。

我用的是ZedBoard开发板,SDSoc2017.4。

Matlab导出eps或jpg图片的四种方法

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。无论是做项目还是写论文,我们都会遇到把Matlab画的图形(默认为matlab自带的图像格式.fig)转换为其他格式并导出的问题。用的最多的图片格式是eps格式(用latex编辑时用)和jpg(用word编辑时用)。下面以matlab 2011b为例介绍多种导出方法。

<strong>方法一:</strong>

最简单的方法,但是不灵活。选择Figure文件的“File”菜单下面的“Save As...”。