跳转到主要内容
瑞苏盈科专栏
我与瑞苏盈科板卡的开发故事

技术

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

无线通信是现在应用最为广泛的通信技术之一,其核心是把要传输的数据调制在载波上发射出去,载波状态的变化承载了不同的信息。

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

<font color="#FF8000">作者:卢佳柔,新通讯 2018 年 9 月号 211 期《 行家出手 》</font>

自驾车商机诱人,驱动传统车厂与物联网厂商跨界抢进,更加速人工智能(AI)、先进驾驶辅助系统(ADAS)发展愈趋白热化。而嵌入式视觉也搭上AI与ADAS发展的顺风车,成为实现自驾车发展不可或缺的关键技术,为了要满足嵌入式视觉技术的灵活度,低延迟、低功耗与低成本的要素缺一不可。

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

阻塞与非阻塞赋值的语言结构是Verilog语言中最难理解的概念之一。

有这样的两个要点:
(1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构;
**(2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。

这样做的原因是:**

这是因为要使综合前仿真和综合后仿真一致的缘故。

为了更好地理解上述要点,我们需要对Verilog语言中的阻塞赋值和非阻塞赋值的功能和执行时间上的差别有深入的理解。我们定义下面的两个关键字:
RHS——方程式右手方向的表达式或变量可分别缩写成 RHS表达式或RHS变量;
LHS ——方程式左手方向的表达式或变量可分别缩写成LHS 表达式或LHS变量。

Zynq-7000 ARM端MIO的使用

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

<strong>1. 背景知识</strong>

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

本文是该系列的第12篇,上一篇介绍了在System Generator设计中使用Black Box调用HDL代码的方法,并使用Simulink+Vivado Simulator进行了协同仿真。本文将对该block及其中涉及到的MATLAB配置文件作详细介绍。

同步FIFO的设计

<font color="#FF8000">作者:Kevin Zhang</font>

本篇文章整理一下同步FIFO的实现。首先介绍一下FIFO的基础知识:

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

初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。

Zynq-7000 ARM端helloworld实验

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

<strong>1. 背景知识</strong>

Helloworld 实验总是各种编程语言的开始第一课,这里我们将使用xilinx zynq-7000芯片ARM端完成串口打印”Helloworld”实验,旨在体验一下zynq-7000 的开发流程,为以后的zynq-7000的开发打下基础。

<strong>2. Zynq-7000 HelloWord</strong>

本人使用的zynq-7000芯片为xc7z010clg400。

Vivado的工程创建我们在这里就不在详述。

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

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

2. I/O Planning工程:可以在设计之前预先创建此工程,只定义I/O端口。此工程还可以读取包含I/O定义的CSV或XDC文件,将I/O信息导入到I/O Ports窗口。此类工程的意义是在设计前就确定好管脚约束信息,保证硬件设计与RTL设计工作同步展开。

Zynq串口调试中遇到的问题

<font color="#FF8000">作者:圆宵,来源:FPGA那点事儿</font>

串口是很常用的通信端口,其速率比较慢,控制也比较简单,一般来说,使用时不会出现太大的问题。但笔者前一阵调试一块zynq的板子,用CPU通过串口和板卡上的一款芯片进行通信时,却也碰到了不大不小的麻烦。现在把解决问题的过程分享出来,虽然犯的都是很low的错误,但是也希望能对读者有一些借鉴。

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

<font color="#FF8000">作者:Keith Szolusha 和 Kyle Lawrence</font>
机器视觉系统使用非常短的强光闪烁来产生用于各种数据处理应用的高速图像。例如,快速移动的传送带通过机器视觉系统进行快速标签和缺陷检测。红外和激光LED闪光灯常用于近程和运动检测机器视觉。安全系统发出高速、难以察觉的LED闪光灯来检测运动,捕获和存储安全影像。

Zynq中纯PL编程

没接触zynq之前,只用过FPGA,在FPGA中用verilog编程简单明了,后来稍微学习过一点nios ii,就在FPGA中也用过一点点nios ii。所以在刚接触zynq的时候,我就感觉zynq跟altera的FPGA和nios ii的编程肯定会有一些相似的地方。学习zynq的时候,一开始我就想弄清楚三个问题,第一zynq中怎么使用纯PL(programmable logic)部分?(就是把zynq当做普通FPGA用)第二zynq中怎么使用纯PS(process system)部分?(就是把zynq当做一个纯arm使用)第三自然而然就是zynq的PS和PL部分怎么协调工作,谁是主谁是从?

刚接触的时候好多教程都是教你怎么用PS部分,我捉摸了一段时间弄清楚了怎么使用纯PL部分了。希望大家在初学的时候能把PS和PL部分的关系弄清楚,对学习也会更有帮助的~

Vivado HLS 入门(二)

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

<strong>1 概述</strong>

Vivado HLS 是 Xilinx 提供的一个工具,是 Vivado Design Suite 的一部分,能把基于 C 的设计 (C、C++ 或 SystemC)转换成在 Xilinx 全可编程芯片上实现用的 RTL 设计文件 (VHDL/Verilog 或 SystemC)。

Xilinx SDK 初学之——PS对PL寄存器的读写控制

对于FPGA编程时的v文件中的寄存器,在SDK编程时需要一些读写操作,以实现PS与PL部分的信息交换。下面用一具体例子记录所需要的步骤 。如若有误请指正。

Vivado使用技巧(12)——设置DCI与内部参考电压

<strong>DCI与内部参考电压</strong>
Xilinx FPGA提供了DCI(Digitally Controlled Impedance)技术,包括两个功能:(1).控制驱动器的输出阻抗;(2).为驱动器或发送器添加一个并行端接,在传输线上得到精确的特征阻抗匹配,以提高信号完整性。DCI会主动调整I/O bank内的阻抗,以调整放在VRN和VRP管脚之间的外部精准参考电阻,这样可以补偿由于工艺变化、温度变化和电源电压抖动引起的I/O阻抗变化。每个I/O bank内都有两个复用引脚来控制该bank内所有I/O的阻抗或并行端接值。

FPGA中有符号数和无符号数的加法运算

FPGA中有符号数和无符号数的加法运算

首先定义一个B比特的二进制数:<img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201808/13293-388…; alt="">

verilog HDL表示正数就按一般的规则即可,这里主要讲如何表示负数?

无符号数

Zynq AXI总线

zynq AXI是很重要的内容,本篇仅是简单的介绍。大量参考了其他书籍。

AXI (Advanced eXtensible Interface) 本是由ARM公司提出的一种总线协议, Xilinx从 6 系列的 FPGA 开始对 AXI 总线提供支持,目前使用 AXI4 版本。

1.AXI总线

ZYNQ有三种AXI总线:

(1)AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;

FPGA实现Cortex-M0 SOPC的初步实践

<font color="#FF8000">作者:葛兴</font>

cortex-M0是ARM公司的一款开源内核,以低功耗著称,本文提纲挈领的讲述了用FPGA实现SOPC的流程。

1、开源核心

Xilinx DDR IP详解与时序分析

DDR3:使用流程

一. 配置过程
1>首先找到IP核
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201808/13290-388…; alt=""></center>

Vivado及Zynq使用经验

1.添加debug核的合理方法是在源代码中添加(*mark_debug="true"*),综合后,打开综合结果,set debug内这些标记的信号全部在网标内,不会被优化掉。如果不在代码里加这些标记,直接在综合结果里添加net,很多感兴趣的信号会被优化掉,且残缺不全。

2.若果debug核使用的时钟是zynq ps端输出的时钟,那么烧录完bit文件后,是不会自动弹出debug界面的,需要在软件工程里,debug软件工程,让cpu跑起来,产生时钟信号,再回vivado内refresh device,即可弹出debug界面。

3.自定义IP内代码被改动后,Block Design内会提醒刷新IP路径,然后在窗口下方勾选改动的IP,点击UPDATE IP按钮,即可更新IP核。