技术
<strong>引言</strong>
什么叫做“嵌入式视觉”?
嵌入式视觉=小型处理板 + 小型相机模块
在嵌入式视觉领域中,处理器有许多分类,SoC, SoM,SBC,FCD分别是什么?他们之间有什么区别和联系?通过本文,您可以有个系统的归纳和了解。
<strong>片上系统(SoC)</strong>
片上系统(SoC)是嵌入式架构的核心,是实际成像处理的所在点。很多场合里,人们将专业术语“SoC”通俗地等同于“处理器”。然而实际上,SoC包含的不止这些。
在I/O和时钟规划之后,需要验证设计以确保其满足设计需求。Vivado提供了两种验证途径:DRCs用来检查设计违反规则情况;SSN分析用来估计转换噪声等级。本文将介绍DRCs,本系列第16篇介绍了SSN分析。
<strong>运行DRCs</strong>
DRCs可以说是管脚规划中最严苛的一个步骤,DRCs会使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。本文将以运行DRCs检查I/O端口和时钟逻辑为例。
很多人对FPGA理解还停留在CPLD阶段,认为FPGA只是用来做一些逻辑接口或算法而已,那就大错特错了,如果你一直做FPGA的逻辑而又不是很精通,又或者做其它嵌入式(如单片机、ARM)开发可以看下这篇文章,或许对你有所帮助。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201809/13373-393…; alt="" width="670"></center>
本文是该系列的第16篇。流水线(pipeline)是FPGA设计中经常提到的一种技巧,通过消耗更多的资源来提升系统的运行速度。本文将以FIR滤波器的设计为主题,详细介绍如何把一个设计“流水线化”,并进行时序分析体会流水线设计带来的好处。
<strong>流水线</strong>
这里先用通俗易懂的语言描述一下流水线设计思想。假设小A要从成都到哈尔滨旅游,如果直接坐火车过去恐怕要累得受不了;如果在旅程中间加几站,比如到西安、北京、天津找个客栈休息一下,路上就更加精力充沛了。
<font color="#FF8000">作者:OpenSLee</font>
<strong>1 背景知识</strong>
HDMI(High Definition Multimedia Interface)是高清晰多媒体接口线的缩写,能高品质地传输未经压缩的高清视频和多声道音频数据,最高数据传输速度为5Gbps。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。
<font color="#FF8000">作者:德州仪器 Atul Patel </font>
大家许多人可能都与“低语者”有过交谈—低语者是指说话声音超低几乎让人听不明白的人。与低语者交谈往往会导致沟通错误且混杂各种信号,这种场景在上世纪90年代知名情景喜剧《低语者》中体现得淋漓尽致。
那么,低语者与电子系统及其设计有何关系呢?现代电子信号链已开始更多地采用在较低电压节点运行的集成电路(IC)。Sub-1V器件,如大型微处理器、现场可编程门阵列(FPGA)、低功耗通信器件和传感器,只是为了降低功耗和延长电池寿命而将电压降低于1V的设备类型中的几种。这些器件的电压较低也意味着它们的输入/输出(I/O)数据接口需要在较低的电压下工作。实际上,这些新型低电压信号链器件正成为该系统的低语者。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。主要用于信号处理及各类高速模拟仿真。
CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。
这个算法也算是码率控制最难的算法了,因为无法确定何时有motion发生,假设在码率统计窗口的最后一帧发生motion,就会导致该帧size变大,从而导致统计的码率大于预设的码率,也就是说每秒统计一次码率是不合理的,应该是统计一段时间内的平均码率,这样会更合理一些。
<strong>一、TFTP协议简单介绍</strong>
1、定义
TFTP(Trivial File Transfer Protocol):简单文件传输协议)。
TFTP是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,传输不复杂、开销不大的文件。端口号固定为69。
TFTP是一个传输文件的简单协议,它基于UDP协议而实现。
2、特点
简单、占用资源少、基于UDP实现、端口号为69、适合在局域网内传输小文件。
<strong>ZYNQ简介</strong>
ZYNQ系列是Xilinx推出的高端嵌入式SoC,其在片上集成了ARM处理器和FPGA。ZYNQ与传统的嵌入式CPU相比,具有强大的并行处理能力。开发人员利用FPGA强大的并行处理能力,不仅可以解决多种不同信号处理应用中的大量数据处理问题,而且还能通过加入更多外设来扩展处理系统的功能。ZYNQ通过引入最新的高速AXI-4总线,可轻松实现外设的扩展与高速互访。
如何区分CPLD或FPGA和哪一个更适合自己?这是一个老生常谈的问题,尤其是学生和初学者。如果您也在这个问题上很迷茫,那么就请听小编为您区分FPGA与CPLD。
<strong>CPLD</strong>
<font color="#FF8000"> 作者:晨,来源:FPGA开源工作室</font>
1. 帧差法原理
帧差法的实现非常简单:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/article/201809/13352-392…; width="670"></center>
<strong>简介 </strong>
这是学习PCIe DMA传输的第二篇博客,在前一篇中叙述了PCIe DMA传输的部分基础知识,并且较为详细的分析了接收引擎的各个状态,这里接着分析第二个关键模块:发送引擎(BMD_64_TX_ENGINE.v)。
软件:VIVADO2017.4
<strong>第一步:模块功能分析</strong>
本文是该系列的第15篇。数字控制振荡器(NCO)是FPGA中常用的一个模块,在《FPGA数字信号处理系列》第一篇就对其做了相关介绍。System Generator中的block大致可以分为两类:高层次封装(面向系统级,如第2篇设计中用到的Digital FIR Filter)和低层次封装(面向底层,与FPGA资源的联系更直接)。
本文将采用IIR滤波器、DDS、DDS Compile IP核3种设计原理在System Generator中实现NCO。前两种采样低层次封装block,后一种采用高层次封装block,体会其中的差别。
<strong>基于IIR滤波器的NCO实现</strong>
1. 原地交换两个数字
Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:
x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10)
赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量 和 。
一旦赋值完成,新的元组变成了未被引用状态并且被标记为可被垃圾回收,最终也完成了变量的交换。
2. 链状比较操作符
比较操作符的聚合是另一个有时很方便的技巧:
n= 10result= 1< n< 20print(result)# Trueresult= 1> n<= 9print(result)# False
一 、前言
本文设计思想采用明德扬至简设计法。VGA是最常见的视频显示接口,时序也较为简单。本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采集图像以及HDMI高清数字显示方式打个基础。
二、VGA显示原理
机器人技术研究人员和工程师可以使用 MATLAB 和 Simulink 设计和优化算法,为真实系统建立模型,并自动生成代码——所有过程均在一个软件环境下完成。
<font color="#FF8000">作者:lee神,FPGA开源工作室</font>
<strong>1. xilinx FPGA简介</strong>
本文是该系列的第14篇。第5篇中在介绍Gateway In block时谈到了System Generator中的数据类型,及不同的量化和溢出方式。本文将以两个简单的设计实例,更直观地说明不同的量化和溢出方式有什么区别。