技术

学会System Generator(13)——Vivado HLS调用C/C++代码

发表于:08/28/2018 , 关键词: System Generator, Vivado HLS
本文是该系列的第13篇。Vivado HLS是Xilinx FPGA开发套件中的一款软件,可以使用C/C++语言进行设计,并转换为RTL级模型。System Generator中的Vivado HLS block可以将HLS开发软件设计的C/C++代码整合到Simulink环境中,利用Simulink强大的仿真特性对设计进行仿真测试。 ug948中提供的官方例程为图像的中值滤波,... 阅读详情

Zynq-7000 PS到PL端emio的使用

发表于:08/28/2018 , 关键词: Zynq-7000
作者:OpensLee,FPGA开源工作室 1 背景知识 上一节《Zynq-7000 ARM端MIO的使用》讲解了PS端MIO的使用,本节讲解ARM处理器通过emio(Extendable Multiuse I/O)控制PL端接口。如下图所示,ZYNQ-7000的GPIO分为两种(MIO,EMIO)。EMIO分布在Bank2和BANK3,共有64个引脚可以使用。 如下图所示,... 阅读详情

解开电源模块降额曲线的奥秘

发表于:08/28/2018 , 关键词: 电源管理, 降额曲线
作者:作者:德州仪器 Chris Glaser 随着电子设备的尺寸越来越小,电源设计人员在设计电源时必须考虑热限值的问题。如果一个较小的电源无法在特定的应用环境(包括环境温度)下以高负载运行,那么它就等同于没有用处。 降额曲线中就有一种常见的热限值,该热限值可以在大多数的电源模块数据表中看到。降额曲线能够显示在不同环境温度下可拉电流或功率的大小,同时仍然保持电源模块在其温度规格范围内(... 阅读详情

调幅、调频、调相 与 I/Q 调制有什么区别?

发表于:08/28/2018 , 关键词: 无线通信
无线通信是现在应用最为广泛的通信技术之一,其核心是把要传输的数据调制在载波上发射出去,载波状态的变化承载了不同的信息。 如下图所示,载波信号的状态变化可以分为幅度变化、频率变化以及相位变化,因此对应的就有AM(Amplitude Modulation)或ASK(Amplitude Shift Keying)调制、FM(Frequency Modulation)或FSK(Frequency... 阅读详情

满足自驾车应用 嵌入式视觉诉求三低要素

发表于:08/27/2018 , 关键词: ADAS, 嵌入式视觉, 自动驾驶
作者:卢佳柔,新通讯 2018 年 9 月号 211 期《 行家出手 》 自驾车商机诱人,驱动传统车厂与物联网厂商跨界抢进,更加速人工智能(AI)、先进驾驶辅助系统(ADAS)发展愈趋白热化。而嵌入式视觉也搭上AI与ADAS发展的顺风车,成为实现自驾车发展不可或缺的关键技术,为了要满足嵌入式视觉技术的灵活度,低延迟、低功耗与低成本的要素缺一不可。 赛灵思(Xilinx)... 阅读详情

深入理解阻塞和非阻塞赋值的区别

发表于:08/27/2018 , 关键词: Verilog, 阻塞赋值
阻塞与非阻塞赋值的语言结构是Verilog语言中最难理解的概念之一。 有这样的两个要点: (1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构; **(2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。 这样做的原因是:** 这是因为要使综合前仿真和综合后仿真一致的缘故。 为了更好地理解上述要点,... 阅读详情

Zynq-7000 ARM端MIO的使用

发表于:08/27/2018 , 关键词: Zynq-7000
作者:OpenSLee 1. 背景知识 Xilinx Zynq-7000 芯片的PS端MIO(multiuse I/O)所在位置如下图红色框所示。MIO(0:15)在bank0上,MIO(16:53)在bank1上。他们不需要管脚约束,既可以当做PS 端普通的IO也可以用做PS端SPI、I2C、CAN等总线。 本节将使用MIO的GPIO功能实现LED流水灯。 2. MIO流水灯实验... 阅读详情

学会System Generator(12)——Black Box及配置文件详解

发表于:08/24/2018 , 关键词: Matlab, System Generator
本文是该系列的第12篇,上一篇介绍了在System Generator设计中使用Black Box调用HDL代码的方法,并使用Simulink+Vivado Simulator进行了协同仿真。本文将对该block及其中涉及到的MATLAB配置文件作详细介绍。 HDL文件使用限制 想在Black Box中导入HDL文件,Verilog/VHDL文件必须遵循以下限制:

同步FIFO的设计

发表于:08/24/2018 , 关键词: FIFO
作者:Kevin Zhang 本篇文章整理一下同步FIFO的实现。首先介绍一下FIFO的基础知识: fifo是 first input first output 的缩写,即先进先出队列,fifo一般用作不同时钟域的缓冲器。fifo根据读和写的时钟是否为同一时钟分为同步fifo和异步fifo。异步fifo相比同步fifo来说,设计更加复杂一点。本文中先讲同步fifo的一种设计方法。... 阅读详情

Xilinx SDK 初学之——API函数笔记(timer相关函数)

发表于:08/24/2018 , 关键词: API函数, Xilinx SDK
初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。 1、XScuTimer_Config *XScuTimer_LookupConfig(u16 DeviceId)

Zynq-7000 ARM端helloworld实验

发表于:08/23/2018 , 关键词: Helloworld, Zynq-7000
作者:OpenSLee 1. 背景知识 Helloworld 实验总是各种编程语言的开始第一课,这里我们将使用xilinx zynq-7000芯片ARM端完成串口打印”Helloworld”实验,旨在体验一下zynq-7000 的开发流程,为以后的zynq-7000的开发打下基础。 2. Zynq-7000 HelloWord 本人使用的zynq-... 阅读详情

Vivado使用技巧(13)——CSV文件定义IO Ports

发表于:08/23/2018 , 关键词: Vivado
定义I/O Ports信息 每个完整的FPGA设计必然包含I/O Ports定义与配置环节。I/O Ports包含了FPGA内部信号、管脚、PCB之间的连接关系。常用的设计方法有两种: 1. RTL工程:完成了RTL设计后,打开一个设计(如综合后设计)并换到I/O Planning View Layout,Vivado会自动从设计中读取I/O端口导入到I/O Ports窗口中,进行后续设置。 2... 阅读详情

Zynq串口调试中遇到的问题

发表于:08/22/2018 , 关键词: 串口调试, Zynq
作者:圆宵,来源:FPGA那点事儿 串口是很常用的通信端口,其速率比较慢,控制也比较简单,一般来说,使用时不会出现太大的问题。但笔者前一阵调试一块zynq的板子,用CPU通过串口和板卡上的一款芯片进行通信时,却也碰到了不大不小的麻烦。现在把解决问题的过程分享出来,虽然犯的都是很low的错误,但是也希望能对读者有一些借鉴。 整个系统中,涉及串口通信的部分大概是这样的:... 阅读详情

用于高功率机器视觉闪光灯的 LED 驱动器

发表于:08/22/2018 , 关键词: LED驱动器, 机器视觉
作者:Keith Szolusha 和 Kyle Lawrence 机器视觉系统使用非常短的强光闪烁来产生用于各种数据处理应用的高速图像。例如,快速移动的传送带通过机器视觉系统进行快速标签和缺陷检测。红外和激光LED闪光灯常用于近程和运动检测机器视觉。安全系统发出高速、难以察觉的LED闪光灯来检测运动,捕获和存储安全影像。 所有这些系统都存在的一个挑战,即产生非常高的电流和短时间(微秒)... 阅读详情

Zynq中纯PL编程

发表于:08/22/2018 , 关键词: Zynq
没接触zynq之前,只用过FPGA,在FPGA中用verilog编程简单明了,后来稍微学习过一点nios ii,就在FPGA中也用过一点点nios ii。所以在刚接触zynq的时候,我就感觉zynq跟altera的FPGA和nios ii的编程肯定会有一些相似的地方。学习zynq的时候,一开始我就想弄清楚三个问题,第一zynq中怎么使用纯PL(programmable logic)部分?(... 阅读详情