自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卷舒开合任天真

不戚年往,忧知菲薄

  • 博客(35)
  • 收藏
  • 关注

翻译 怎样写Testbenches【3】-- C1P1 什么是验证

本文是对Janick Bergeron的《Write Testbenched:Functional verification of HDL models》的翻译。在翻译过程中,因为译者水平原因和基础知识所限,会导致部分错误,如发现错误请读者参考原文。译者不理解的部分也会重点标注,并标注出在原书的位置。本篇翻译是第一章第一部分的翻译内容。目录什么是Testbench?验证的重要...

2019-08-25 11:40:07 782

翻译 怎样写Testbenches【2】-- 序言

目录为什么这本书如此重要这本书讲什么您应该具备的先修知识VHDL VS Verilog想要获得更多的信息致谢本文是对Janick Bergeron的《Write Testbenched:Functional verification of HDL models》的翻译。在翻译过程中,因为译者水平原因和基础知识所限,会导致部分错误,如发现错误请读者参考原文。译者不理解的部...

2019-08-11 22:29:12 514

翻译 怎样写Testbenches【1】-- 前言

本文是对Janick Bergeron的《Write Testbenched:Functional verification of HDL models》的翻译。在翻译过程中,因为译者水平原因和基础知识不足导致的错误,请读者参考原文。某些译者不理解的部分也会重点标注,并标注出在原书的位置。验证的必要性在IC设计中,随着逻辑门数和系统复杂性的指数级增长,设计工程师遇到的最大挑战是功能验证...

2019-08-05 23:57:32 616 1

原创 读一本书--写在前面的话

2018年年初跳槽,进入了一家做机器视觉的公司。在这个小小的团队中,我又像前些年的工作中一样,一个人承担起一个项目。这次稍有不同的是:一个人承担起一系列需要产品化的项目。所以,从2018年开始,基本没有太多的时间学习,也没有太多的时间去总结项目中遇到的比较有趣的问题以及其解决方法。今天是2019年7月的最后一天。经历了半年多的招聘,随着今天下午的一个offer发出,终于招聘到了几个技术水...

2019-07-31 18:39:37 486

原创 时序约束方法之二--Altera静态时序分析与约束原理

本文是学习威视锐学院课程《FPGA静态时序分析精讲》系列课程第二讲的学习笔记。原视频地址:课程地址目录分析对象Altera时序分析基本项发射沿和采样沿建立时间和保持时间数据和时钟的到达时间建立时间保持时间建立时间余量保持时间余量I/O时序分析复位输入和撤离分析对象在FPGA中对于时序分析的理论基础,主要是依赖下图进行分析的。图1 两级寄存...

2018-09-22 22:40:20 2265

原创 时序约束方法之一--时序约束步骤

本系列文章为在读一篇关于时序约束的文章时的一些笔记和思考。文章以Xilinx器件时序约束为基础进行分析。在FPGA的开发中,时序是灵魂,如何进行时序约束,显得尤为重要。FPGA的时序约束,可以分成以下4个步骤:时钟 input delay output delay 时序例外在实际设计开发中,在完成逻辑开发后,首先应该进行时钟设计,然后进行综合,综合完成以后进行input del...

2018-08-12 21:55:49 4031 2

翻译 ArrayFire中文教程[1]

在做GPU开发设计的时候,遇到了ArrayFire,但我对ArrayFire并不了解。本文档编写的目的是为了学习ArrayFire。同时,该系列文档是我于业余时间来翻译的。原文为ArrayFire的官方文档指南。(链接:http://arrayfire.org/docs/index.htm)在翻译过程中,如果有错误的地方,请后续读者尽早指出,我会尽快改正。本文档版权属于我个人所有,如需转载,请私信...

2018-04-03 19:16:47 5322

转载 使用FPGA进行加速运算

注:本篇文章来源于知乎,为微软亚洲研究院李博杰的回答,详细链接在这儿:点击打开链接在这篇文章中,作者从CPU,GPU,FPGA的架构出发,讨论了微软数据中心为什么使用FPGA而不选择GPU。该文章是我逐字搬运过来的,其目的是为后续我们公司的机器视觉平台和机器学习平台做参考。在这篇文章中,主要涵盖一下三个内容:1.为什么使用 FPGA,相比 CPU、GPU、ASIC(专用芯片)有什么特点

2018-02-06 20:27:40 17875

原创 Shell学习(2)--Shell变量

在Shell中,变量的定义很简单。定义变量var="ddiicey"需要注意的是,与平时我所编写的高级语言(C、C++、Python)等不同,变量名和“=”之间不能有空格。变量名的命名与其他语言一样都遵循如下规则:命名只能使用英文字母,数字和下划线,并且首个字符不能以数字开头,但可以以下划线“_”开头变量名中间不能有空格,可以后下划线不能使用标点符号不能使用Shell中的关

2017-12-25 17:36:20 347

原创 逻辑设计方法学【7】 --跨时钟域

在上一篇文章的最后,详细说明了什么是同步时钟,什么是异步时钟,在本篇中,主要介绍跨同步时钟域问题,为详细描述异步时钟域间数据传输的方法打好基础。如果多个时钟都起源于同一时钟,并且它们的香味和频率关系是已知的,那么这些时钟可以看成是跨同步时钟域的时钟。按照相位和频率的关系,可以将这些时钟分成以下类型:同频零相位差时钟同频恒定相位差时钟非同频可变相位差时钟整数倍时钟有理

2017-11-21 19:06:00 1871

原创 逻辑设计方法学【6】 --多时钟设计技术

在进行一个含多个时钟的设计时,在仿真和综合过程中需要遵循一定的准则,这样会带来很大的好处。通用的准则如下:时钟命名规则分模块设计1 时钟命名法Xilinx的开发工具Vivado有“project mode”和“non-project mode”,在“non-project mode”中,我们经常使用脚本进行开发。同样在仿真的时候,也会编写Tcl脚本。在写脚本的过程中,就

2017-11-19 20:49:53 902

原创 逻辑设计方法学【5】 --控制时钟偏移

整个芯片中时钟信号到达时间的差异成为时钟偏移,即clock skew。在时序设计的时候,满足寄存器的建立时间和保持时间的要求是最基本的设计原则。在相邻的寄存器之间的数据传输延迟,与时钟偏移应该满足一定的关系,在本节中,我们来详细地讨论其关系。通过图1来看相邻寄存器之间传输的时候的数据延迟和时钟偏移,以及详细的时序关系图 1 两个相邻触发器之间的时钟偏移给定两个相

2017-11-17 21:50:37 3098

原创 逻辑设计方法学【4】 --复位信号设计方法

在为ASIC选择复位策略前必须考虑许多方面的问题。对于复位,我们都只到有同步复位和异步复位,那么在实际设计的时候,就需要知道该选择哪种复位方式,还有所有的触发器是否都需要接收复位信号。复位最基本的目的是使SoC进入一个能进行稳定操作的确定状态,这样可以避免SoC在上电后进入随机状态而死机。在verilog中,有四种逻辑状态:0,1,x,z。但是在进行IC设计的时候,会有十几种逻辑状态。

2017-11-16 21:55:27 3675

原创 逻辑设计方法学【3】--门控时钟

对于每一个寄存器,都需要有时钟输入端,如果在一些对设计功耗要求比较高的地方,保持设计准确后的功耗控制便是头等大事。为了分析如何减少功耗,首先要来分析功耗主要由哪些部分组成。在绝大多数的设计中,功耗主要由三部分组成:在每个时钟沿变化的组合逻辑所产生的功耗(由于触发器驱动这些组合逻辑)由触发器产生的功耗(即使在触发器的输入和内部状态没有发生变化,该功耗依然存在)设计中时钟树产生的功耗

2017-11-15 21:50:26 6668

转载 深入理解SerDes之一

我在2015年底到2016年初的时候,使用7 Series FPGA Transceivers完成了TS流数据的传输,当时使用的传输速度为3.125G,SerDes选取的是8b/10b编码方式,到最后速度提升到6.25G。均已获得完好的传输效果。不过当时因为项目紧张,对于SerDes的学习不那么深入,再随着两年时间已经将当时所学习的知识忘记了好大部分。在前两天又需要对当时的项目进行一些

2017-11-14 17:57:50 23884 7

原创 Xilinx基于MIG IP Core的DDR3设计【1】 -- 建立仿真平台

在图像拼接的工程中,前端相机生成图像数据,需要对图像数据进行缓存后,再根据后端标准的HDMI时序输出图像数据。在这个过程中,因为前端相机的时钟与后端HDMI输出的时钟是不相同的,为了使输出的图像没有像素丢失,所以需要将相机图像先进行缓存,然后输出。对于高清图像,一帧图像所占用的存储空间比较大,单独依靠Xilinx器件内部的RAM是无法完成工作的,因为FPGA内部的RAM在级联以后对于布局布线过程是

2017-11-13 12:50:05 9219

原创 基于AM335X与FPGA的SPI通讯设计

在2013年的工作中,涉及到了AM3359与XC7K325T之间的相互通信,其目的是为了获取FPGA设计版本号,该FPGA版本号保存在FPGA的寄存器0xFFFF中,FPGA的版本值随着加载程序发生变化,当时的版本信息为0x1003.需要说明的是,在本文中的代码风格是刚工作两年的时候的代码风格,现在回看,这些代码风格实在难以阅读。尤其是SPI的verilog程序等。并不代表现在的编程水平与代码

2017-11-09 16:49:45 2913

原创 Xilinx SDK下载失败的解决方法

在视频合成项目中,用到了Xilinx SDK,通过microblaze软核处理器完成前端相机OV4689和后端HDMI图像发送芯片ADV7511的配置。开发平台硬件平台:Xilinx KC705开发板, novel-supertv merge前端板软件平台:Keil,ISE14.7,Vivado2015.4,Xilinx SDK在本项目中有ISE或Vivado生成的

2017-11-07 15:00:04 9915

转载 Bayer图像色彩还原线性插值方法

这篇文献是从知网下载的,感觉本文很有实用性,所以将其转载至此,如果带来任何纠纷Bayer图像色彩还原线性插值方法孙辉,柏旭光,孙丽娜,李志强(中国科学院 长春光学精密机械与物理研究所 中国科学院航空光学成像与测量重点实验室)1 引言在才舍数字相机的成像传感器结构中,为准确获取目标景物信息,同城采用3片CCD同时采集红(R)、绿(G)、蓝(B)三种颜色信号,通过模数转换器(AD)

2017-10-30 10:20:36 5552

原创 基于FPGA的串口通讯设计

这个小项目是在2013年初学FPGA时所做的,现把当时的设计笔记贴出来。RS232C电气规定EIA-RS-232C对电气特定、逻辑电平和各信号线功能都做了相关规定。在此部分,只简单介绍相关的电气特性。对于RS232C标准对逻辑电平的定义,在数据部分,逻辑1的电平低于-3V;逻辑0的电平高于3V。在控制信号部分,信号有效的电平高于+3V;信号无效的电平低于-3V。在介于-

2017-10-25 09:56:52 8061 4

原创 Shell学习(1)--初识Shell script

在2013年的时候,开始学Linux,为了熟练使用vim编辑器和Linux操作,我把当时在windows下开发ARM的所有源文件,都转移到了Linux下。在那时候便学会了一些简单的Shell脚本编程。但随着2013年底开始做FPGA逻辑设计,开发平台就全部转移到了windows下,这样Shell脚本编程已经基本忘的差不多了。时间进入2017年,P-SOC的开发越来越多地使用在Linux环境下,所以

2017-10-23 17:12:43 608

原创 计算机文化课--摩尔定律

我们从摩尔定律开始。为什么要学习摩尔定律呢?摩尔定律从宏观角度揭示了IT产业发展程度。同样,也有一些其他的作用。在前段时间,我们看过芯片,就是电路板上黑黑的那个方块(绝大多数的形状),它们有大有小,有高有矮。每一个芯片,都有一些伸出来的“手”,既想要从外界获得“食物”(电 OR 信号),由想要把自己的一些“资源”(信号)通过它们的“手”“递给”相连接的“邻居”。

2017-10-10 22:17:31 3389

原创 逻辑设计方法学【1】 -- 常用设计技术

使用HDL代码进行设计的时候,需要注意所选取的综合工具是哪一种,无论是FPGA开发套件自带的综合工具(synthesis tools)还是第三方的综合工具,它们对同一段HDL语言综合结果都有可能不同,综合工具有可能违背设计者的最初设计想法,优化掉某些设计。所以在实际设计过程中,需要对所使用的综合工具有比较清楚的了解。但是在实际使用综合工具的时候,设计者是很难清楚地知道综合工具是怎样对HDL语句进行

2017-09-05 16:47:51 1238

原创 亚稳态以及测试逻辑实现

在逻辑设计中,如果整个系统使用的都是同步时钟,并且后续时钟都是由同一时钟经过PLL或者DCM产生的时钟信号,那么时钟和数据总会有固定的关系。当这个关系满足寄存器的建立时间和保持时间要求的时候。输出端会在特定的传输延迟时间后输出一个稳定的有效状态。因为在同步系统中,输入信号总是满足寄存器的建立保持时间要求,所以不会发生亚稳态。但是在实际的工程设计中,不可避免地在电路设计时引入异步设计,对于异步系统,

2017-08-30 17:51:37 1438

原创 阻塞赋值与非阻塞赋值的再分析

在Verilog HDL设计中,经常会遇到阻塞赋值与非阻塞赋值,这是学习逻辑设计时最基础的知识点。设计者经常会在书中看到一些建议:什么时候该用阻塞赋值,什么情况下使用非阻塞赋值。可是,如果仅仅按照这样的设计推荐来进行设计的话,经常会碰到一头雾水的情况。本文就对阻塞赋值和非阻塞赋值进行详细的讨论,深入分析这两种赋值语句的区别。“阻塞”与“非阻塞”疑问的由来,主要体现在always或initial

2017-08-25 14:27:10 4886 3

翻译 MIPI D-PHY 带宽矩阵用户指南

引言随着视频信号从标清到高清和超高清的发展,原来所使用的视频信号并行传输接口,其难以扩展、接口引脚多以及高功耗等缺点已经变得尤为突出。新兴的基于数据包传输的串行接口,如MIPI CSI-2和DSI接口,可以解决并行接口的不足,同时也可以减小系统的复杂性。理解并行和串行接口带宽的计算方法,可以避免在选择正确的FPGA数据通道(Lane)数量和每个通道所需要的数据传输速率时遇到的问题。这篇文档详细

2017-08-21 14:34:38 7175 2

原创 再议IIC协议与设计【3】 --SCCB总线介绍

SCCB (Serial Camera Control Bus) 是由OmniVision公司所定义的串行相机控制总线。用于控制OmniVision公司生产的Camera Sensor。本文通过对SCCB总线进行粗略的描述,并完成使用Xilinx的KC705中Microblaze完成对相机OV4689的配置。第一部分 SCCB总线介绍总线描述SCCB总线是的标准定义是一个3-w

2017-08-17 09:48:42 4252

原创 再议IIC协议与设计【2】--使用GPIO实现IIC从机通讯源码分析与测试

概述在本阶段的工作中,需要实现一个由GPIO模拟的I2C从机工程设计,以前只使用GPIO模拟I2C设计过主机,对于从机的设计,还是首次。下面就对本次工作中从机设计思想做详细记录。开发平台THK88从机通信设计框图图 1程序设计与分析硬件平台的寄存器配置#define WAIT_IIC_SCL_HIGH while ( !GET_SCL_D

2017-08-15 17:45:14 2667 3

原创 再议IIC协议与设计【1】--通信是如何定义

概述在讨论IIC的时候,无需一头扎进IIC协议中去分析文档,根据以下的步骤来分析,就能很明确地知道IIC的协议,以及如何设计IIC主机或者从机。初识IIC在实际的电路设计中,两个芯片(IC)需要互相通信,发生数据的交换。那么这两个芯片之间必须满足一些规则,这样,负责“听”的芯片就能“听懂”“说”的那个芯片“说了些什么”。与人类交流原理相通,“听者”首先需要知道“说者”是对哪个“

2017-08-15 10:01:32 2971

原创 逻辑设计中多时钟设计【2】

简介在上个系列中,主要分析了单bit时钟信号是如何在多个时钟域中进行同步的。概括起来只有两点:一是通过同步器,二是将控制信号与数据信号合并成一组(数据+控制)总线,经过FIFO或RAM实现跨时钟域设计。那么在这节中,重点来分析跨时钟域这个概念。1. 跨时钟域在讨论阴部时钟域见传输数据的方法之前,先来分析跨时钟域问题的各种类型。如果多个时钟都起源于同一时钟(注:在《硬件架构的艺术

2017-07-16 23:38:27 1638

翻译 Xilinx 7series FPGA SelectIO资源--ODDR

OLOGIC 资源OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC2(位于HR I/O banks)。在本文的下述论述中,除非特殊说明,OLOGIC2和OLOGIC3在功能和端口上都是相同的。OLOGIC2和OLOGIC3不属于原语,正因为这样,所以

2017-07-05 22:21:05 9474 2

原创 逻辑设计中多时钟设计【1】

简介在实际的逻辑设计中,单个的时钟域内的设计是很容易满足时序要求的。然而,在实际的工程中基本没有实用的设计是只依靠单时钟就能实现的。所以需要考虑在多时钟领域内如何处理信号,以保证可以得到稳定的设计。多时钟域的信号处理,属于逻辑开发中比较基础的问题。多时钟域一般对于如下两种情况,我们都认为属于跨时钟域:时钟频率不同时钟频率相同,相位不同在多时钟域设计中,经常会带来

2017-06-29 21:43:05 3232

原创 数字图像处理基础之--像素间的关系(邻接/连通)

图像的保存形式一幅图像,经过取样和量化之后就可以得到一幅数字图像。数字图像在在保存时,都是由单一的像素保存在存储设备中。这些像素在保存时,都是根据像素在原数字图片中原本所处在的物理位置相关的,那么就要了解像素之间的一些基本关系。了解像素关系的意义在数字图像处理领域,存在着空间域和变换域的概念。数字图像处理的基本操作,有些需要在空间域中进行,而另外的一些则需要在变换域中进行。空间域:

2017-06-28 22:02:59 24666 6

原创 逻辑设计中关于延时n拍的设计方法

引言:在像素领域处理hsync,vsync,active,以及rgb888并行数据。因为Display Monitor Timing标准,控制信号(hsync/vsync/active)以及数据rgb888之间存在着某种特定的关系,其关系大体如下图所示:图1 : Hsync Vsync Active 与像素之间的关系在实际使用的过程中,像素数据需要经过buffe

2017-06-28 18:21:15 2102

原创 开发的故事

重新开博,重新上路。这不是一篇技术博文,仅仅是开发中的一些碎碎念。2017年06月21日 传说有雨,可是还没下=================================================================部门买来了两个模组:OV4689,需要开发,接crosslink输出RGB并行数据,然后进行相应的处理。后半部分已经实现完了,并且实

2017-06-21 12:15:09 516

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除