- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 基于ACS40核心板的串口图传设计
PC端串口下发图像采集的命令,ACS40收到命令后开始将摄像头数据存入SRAM,存完一帧完整的图像后,ACS40使用串口回送给PC端一个采集好的回送字,然后PC端通过串口下发回读图像的命令,ACS40收到命令后通过串口将SRAM中一帧完整的图像发送给PC端。
2022-09-25 22:13:40 449
原创 ACS40核心板简介
有设计这一款基于Altera FPGA的核心板的这样一个想法其实是在好多年前了,大概在2017年的时候,慢慢开始学习Cadence Allegro(画电路板的一款软件),还有就是在开始慢慢熟悉FPGA芯片及其外围相关的电路,然后着手开始构思这样一块小的核心板,下图就是当时设计之初的一些记录:目前这个版本的核心板是经过了几个版本的优化之后所确定下来的,虽然说还是有一些不尽如人意的地方,但是由于当初经过了几个版本的修改,调试之后,对于Cadence Allegro也好、FPGA也好,已经基本熟悉的差不多了,
2022-09-21 10:29:31 325
原创 SDRAM设计之代码设计(四)
SDRAM设计之代码设计(四) 使用FPGA进行SDRAM的接口设计,首先需要明确我们接口模块的功能,结合之前几篇文章中对SDRAM的基本介绍,将设计功能明确如下:该接口模块需完成对SDRAM芯片的初始化,模式寄存器设置;该接口模块需定时完成对SDRAM芯片的刷新操作;完成最基本的读、写SDRAM的操作; 根据功能要求可以看出,SD
2021-01-03 00:16:57 386 2
原创 SDRAM设计之读、写(三)
SDRAM设计之读、写(三) 本篇来记录下,SDRAM的读、写过程,SDRAM(同步动态随机存取内存),所谓的“随机”,便是指我们每次读、写的地址可以是设计者指定的位置。SDRAM一般结构都会分为几个Bank,每个Bank中分成行、列式来管理,使用者可以指定将写入或者读出哪个Bank、哪一行、哪一列的数据。 以美光的一款SDRAM M
2020-12-16 13:25:51 1280
原创 SDRAM设计之刷新(二)
SDRAM设计之刷新(二) 今天来聊一聊关于SDRAM的刷新操作,SDRAM的全称:同步动态随机存取内存(synchronous dynamic random-access memory),动态就体现于SDRAM芯片需要每隔特定的时间就需要进行一次刷新操作,用于保证已经被写入的数据不丢失。由此可以发现,刷新操作是很关键的操作,刷新操作不及时,会造成数据的丢失,这在系统中是绝对不容许发生的事情,甚至造成严重的后果。 
2020-12-14 23:39:10 1389
原创 SDRAM设计之初始化(一)
SDRAM设计之初始化(二) 在我学习FPGA设计之初,就在各种各样的学习开发板上见到过各个厂家的SDRAM,几乎每种开发板上都会板载一片甚至多片SDRAM,最近又重温了一下SDRAM的控制过程,当然我指的是使用VerilogHDL语言搭建一个SDRAM的接口控制逻辑,当然也可以使用别人写好的现成模块,但是作为一个学习的过程来说,虽然设计不大,但这样一个接口的设计还是需要很多设计技巧在里面的,真正自己写一遍对自己的设计能力来
2020-12-13 15:30:11 696
原创 精密AD转换芯片ADS8588H简介(三)
精密AD转换芯片ADS8588H简介(三) 在《精密AD转换芯片ADS8588H简介(二)》中对照着ADS8588H的结构框图,简单对芯片模拟部分做了一下简介,这篇来详细介绍一下这款芯片的数字部分,主要是数字接接口引脚的含义以及对芯片的时序控制。 依旧是这张图: &nb
2020-11-13 22:54:13 2277 1
原创 精密AD转换芯片ADS8588H简介(二)
精密AD转换芯片ADS8588H简介(二) 在《精密AD转换芯片ADS8588H简介(一)》中对ADS8588H的特性做了简单介绍,继续… … 下图是官方手册中给出的芯片结构框图,可以看出芯片可以大致分为两部分,模拟部分和数字部分: 先来看看模拟部分:八
2020-11-11 23:01:36 2747 9
原创 精密AD转换芯片ADS8588H简介(一)
精密AD转换芯片ADS8588H简介(一) 前段时间做了一个设计,使用到了ADS8588H这款AD转换芯片,还是觉得有必要将这款芯片的硬件特性记录下来,一是为了防止忘记,二是作为简介分享一下,希望能帮助到有需要的人。 废话不多说了,正文开始… … ADS858
2020-11-10 23:12:30 3444
原创 Cadence-Allegro如何快速出光绘文件
在之前的文章《Cadence-Allegro如何出光绘文件》中记录了在PCB布局,布线,检查等等工作完成后,生成生产光绘文件的过程,在一段时间里,每次出光绘文件,我都要将上面的过程进行一遍,既费时又费力,每次还得检查有没有层放错了位置,因此就在想有没有一种方法能够快速的把光绘文件的各个层快速添加进去,然后我们只需要最后进行一些自定义的调整就好了。 想要快速导入各个层的信息,我们首先需要生成一个类似于模板的文件,里面包含了各个层的信息,然后当我们下次再次需要生成光绘文件的时候,只需要导入即可;
2020-08-09 12:05:59 2956
原创 Cadence-Allegro如何出光绘文件
Cadence-Allegro如何出光绘文件 在使用Allegro完成了PCB的布局、布线以及后处理之后,需要生成PCB的光绘文件,也就是Gerber文件,它是一种包含了所设计的PCB板各个层以及及钻、铣数据的文档格式集合,PCB生产厂家会根据设计师所给出的光绘文件,生产印制板。 在我以前使用Altium Designer这款设计软件时,习惯于绘制好PCB后便将工程文件打包给生产厂家,厂家会将文件处理好,并生产;在使用了Allegro后,便需要将光绘文件自己生成,并提供给生产厂家。 那么问题便来
2020-06-28 10:14:54 6850
原创 基于FPGA的VGA接口设计(三)
结篇 在之前的文章中介绍了有关VGA的扫描方式、行场同步时序,继续记录一下VGA时序中的具体参数是怎么来的。 我们经常会看到有关VGA分辨率这样的描述:“640x480 60Hz”,当然还有其他的分辨率形式,意思就是说,1s之内刷新60张图片,每张图片的有效显示区域是640x480个像素点,来看一下下图中详细的描述: 上表中,我们分别关注下“640x480 60Hz”行和场的有关参数...
2020-03-29 18:27:28 1237 5
原创 基于FPGA的VGA接口设计(二)
VGA时序 上一篇介绍了一些VGA以及图像的一些基本知识,接下来我们来看一下,一张图像是如何扫描显示的,如下图所示: 由上图可以看出,VGA显示一张图象,像素点依次从左向右扫描,便成为了一行,每一行从上到下依次排列,便形成了一整幅图像。 在以前的显像管显示器当中,图像的显示便是靠着将粒子不断地由这样一种方式,打到荧光屏上从而显示出图像、视频的,这样呢就会造成两个问题: 一是由于每...
2020-03-21 01:12:18 882
原创 基于FPGA的VGA接口设计(一)
写在之前 接口类的设计几乎是每个FPGA设计者都需要做的东西,可以试想一下,一个没有接口的设计,我们想要的指令无法传递到FPGA,FPGA中需要反馈的数据也无法被我们所知; 因此,在写这篇博客以前,我回顾了一下我的学习过程,发现不知不觉中学习了很多种接口,其实在学习的时候并不知道,所以有时候我们得回头看看,总结总结。就像爬山一样,或许我们在爬的过程中只会看到眼前的路,但当你到达山顶的时候,...
2020-03-19 22:49:29 2067 2
原创 关于钢网开口率的学习
关于钢网开口率的学习在之前的PCB设计中,设计焊盘的时候我的pastemask层(钢网层)总是习惯于和焊盘电气面积一样大,也一直没出过什么问题,最近在研究松下板对板连接器的时候,在手册中看到一个我以前不知道的一个概念,叫钢网开口率。 这是手册中的相关介绍: 这是具体的推荐加工图(焊盘设计,封装设计):由上图中可以看出来,不同的钢网厚度,推荐的开口率也是不一样的,很容易理解...
2020-03-16 22:42:45 1221
原创 基于FPGA+RTL8201的ARP实现(三)
基于FPGA+RTL8201的ARP实现(三)接上文~~~详细介绍下程序结构:AUTO_ARP这个模块是程序的顶层,除了系统时钟和复位外,剩下的就是和PHY芯片RTL8201的MII接口了,分为收发两部分,不再赘述;MII_R_GENERAL这个模块是MII接收模块,主要用于解析收到的网络包,将收到的ARP包解析出来,使用data_vld信号作为有效指示;MII_R_DECT此...
2020-03-15 00:23:34 819
原创 基于FPGA+RTL8201的ARP实现(二)
基于FPGA+RTL8201的ARP实现(二)1、设计需求 在之前的设计中发现,使用FPGA+RTL8201或者FPGA+RTL8211这样的组合和PC端进行网络通信时,我们已经将板卡端的MAC和IP地址在电脑上进行了绑定,所以在上位机向板卡的IP地址发送数据时,便会将向绑定的MAC地址发送; &n...
2020-02-27 19:12:15 1316
原创 导出BOM表出现的问题“there is no Title Block for this design.Headers were omitted”
导出BOM表出现的问题“there is no Title Block for this design.Headers were omitted”在capture cis导出BOM表的时候,可能会出现以下问题:具体警告如下图所示:可以看到具体生成的BOM表的表头没有了,通过上面的警告内容可以看出,是我们原理图中的“Title Block”没有了,添加到原理图中就行了。...
2020-02-26 21:58:06 2594 1
原创 Orcad Capture CIS出BOM表
Orcad Capture CIS出BOM表 为了方便元器件的齐套以及印制板的贴装,通常需要一个元器件的表格,包含了印制板上所有的元器件,以及它们的位号、封装、数量、容值、阻值等等信息。 对于一个小型设计来说,我们手动写这个表格并不费劲,但是对于元器件...
2020-02-26 12:27:50 2775
原创 基于FPGA+RTL8201的ARP实现(一)
基于FPGA+RTL8201的ARP实现(一)ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取对方物理地址的一种协议。在之前的笔记中曾经记录过UDP协议的MAC帧结构,以太网首部中有一项便是目的MAC地址,在通信双方正式建立通信以前,需要通过ARP协议询问得知对方的MAC地址然后建立缓存,以后再往某个IP地址的设备发送数据的时候,便会自动将此IP...
2020-02-26 00:59:00 1150
原创 Allegro布线后处理工作
Cadence Allegro布线后处理工作记录一下关于allegro在PCB布完线以后,需要做的一些工作:一、生成检查报告,主要用于检测一些关键的数据(不管用什么设计工具,都要检查的一些东西):是否有未放置的元器件;是否有未连接的电气网络;设计中是否有DRC错误;设计中的shape铜皮是否smooth;shape铜皮是否存在孤岛(island);是否存在不允许的未赋网络的铜皮;...
2020-02-25 23:23:04 1538
原创 AD(AltiumDesigner)封装导入allegro生成allegro封装
AD(AltiumDesigner)封装导入allegro生成allegro封装貌似PCB的封装问题是一个无尽话题,为了简单我总是想找捷径(主要还是太懒了),因为也是近期才开始学习使用allegro进行PCB设计,在最近的一个设计中,很多器件封装allegro中都没有,一个一个画感觉很费时间,但是在AD(AltiumDesigner)的封装库中是有的,于是便想着AD的封装库能不能倒入到alleg...
2020-02-17 18:12:20 24237 39
原创 使用Ultra Librarian导出ORCAD Capture CIS原理图符号
使用Ultra Librarian导出ORCAD Capture CIS原理图符号在《使用Ultra Librarian结合Allegro导出Allegro封装》中介绍了如何使用Ultra Librarian工具导出allegro封装,下面记录一下如何使用Ultra Librarian导出ORCAD Capture CIS原理图符号。重复的操作就不赘述了,在step2中选择自己需要的版本,导出...
2020-02-17 14:41:31 1645 2
原创 使用Ultra Librarian结合Allegro导出Allegro封装
使用Ultra Librarian结合Allegro导出Allegro封装前些天在使用TI(德州仪器)的一些芯片时发现,TI会提供器件的原理图符号,PCB封装以及器件的3D模型等,由此一看一切都似乎变得简单了,本来还发愁还得画原理图符号,照着手册封装尺寸画封装,使用官方提供的肯定没大问题,虽然搞明白花费了一些时间,但是最后还是成功了,记录一下(不写下来,估计过几天又忘了~~~)可以看到,TI...
2020-02-17 01:01:21 3874 2
原创 基于FPGA+RTL8201的UDP数据收发之MAC帧结构(四)
基于FPGA+RTL8201的UDP数据收发之MAC帧结构(四)继续~~~~~~至此,有了MAC帧的组成结构,以及如何发送到PHY芯片(MII接口),UDP收发基于FPGA的实现理论知识已经具备了,剩下的便是verilog实现了,发现很多时候,前期的准备、设计时间是要远大于写代码时间勒。...
2020-02-15 10:28:30 800 3
原创 基于FPGA+RTL8201的UDP数据收发之MAC帧结构(三)
基于FPGA+RTL8201的UDP数据收发之MAC帧结构(三)以UDP包为例,总结了一下一个UDP协议的MAC帧是由什么组成的,如下图所示:我们想要发送的数据,首先需要在其前面加上UDP报头,由于UDP协议属IP协议的一种,所以在UDP报头前需要加IP报头,形成IP段,在IP段的基础上加上一些同步字节、开始字节、以太网首部以及在尾部加上校验序列,就构成了一个完整的可以发送给物理层芯片的帧序...
2020-02-14 23:42:31 832
原创 基于FPGA+RTL8201的UDP数据收发之MII接口(二)
基于FPGA+RTL8201的UDP传输(二)在上一篇文章中介绍了此次设计使用的硬件组成,以及PHY层芯片RTL8201的简介,在正式学习它的接口之前,我觉得有必要从顶层来了解下网络传输,以我们用到的TCP/IP协议为例,其实我在学习的时候这部分知识也是后期才慢慢形成一个完整的链路的,将它放在设计之前能弄明白,会让后续设计思路很是清晰,如下图所示:通过上图可以看出,本次设计使用的UDP协议传...
2020-02-14 11:54:30 2173 5
原创 基于FPGA+RTL8201的UDP数据收发之PHY(一)
基于FPGA+RTL8201的UDP传输(一)最近在学习FPGA的网络数据传输,将一些学习的笔记系统的整理下。从哪儿说起呢,还是从头记吧,随着FPGA学习的不断深入,逐渐了解并且完成了很多种通信协议的学习和硬件实现,包括串口通信、SPI、IIC等等,按照我的理解,其实协议就是一种约定好的与外界交流的一种方式。在很多时候FPGA板卡在以某种协议进行一些数据交互的时候,外界信号由于种种原因并不可...
2020-02-13 23:39:29 2144 1
原创 FPGA基础之逻辑单元LE(三)
FPGA基础之逻辑单元LE(三)本文主要简单介绍下verilogHDL代码和LE的对应关系,也就是说我们的代码占用了LE当中的哪些资源LE:如果是纯组合逻辑的话,会使用到LE中的查找表(LUT)等结构; assign dout[0] = (din==3'b000)? 1'b1 : 1'b0;这是一段简单的组合逻辑代码,当din的3bit全为0时,dout[0]输出为1,否...
2019-12-22 20:26:05 1325
原创 FPGA基础之逻辑单元LE(二)
FPGA基础之逻辑单元LE(二)LE的基本组成在《FPGA基础之逻辑单元LE(一)》中做过一个简单的说明,下图是Cyclone iv器件手册中LE的详细组成:上图中可以看出,LE的两大基本组成:一个四输入的查找表(LUT-LookUp Table),实现四种变量输入的各种组合功能;可编程寄存器(register);进位链(carry chain);寄存器链(register cha...
2019-12-10 15:49:49 1366 1
原创 FPGA基础之逻辑单元LE(一)
FPGA基础之逻辑单元LE(一)LE(logic element)是Altera FPGA基本的组成单元之一,在官方的手册中经常可以看到有关LE的介绍:上图是在Cyclone4-handbook当中有关Cyclone 4 E系列器件(以下均以此系列器件为例说明)资源描述的表格,在表格中可以看到,不同型号的器件拥有不同数量的LE(逻辑单元),自然地,数量越多,表示该芯片拥有的逻辑单元数越多,此项...
2019-12-09 21:51:57 6262 3
原创 FPGA基础之cyclone_iv资源概述
FPGA简介之cyclone_iv资源概述在正式介绍Cyclone iv系列芯片资源之前,先简单介绍下什么是FPGA,FPGA的全称是Field Programmable Gate Array,即现场可编辑门阵列,是一种半定制、可编程的逻辑阵列,可以根据需求设计芯片的功能。那么芯片到底是如何实现这种可编程逻辑,进而实现各种复杂的时序关系、存储结构等等呢,就需要芯片内部有丰富的逻辑资源、布线资源...
2019-12-08 15:43:42 7361
SDRAM接口模块的VeriogHDL设计
2021-01-03
自动ARP代码,实现MII接口的ARP请求和响应
2020-03-15
AD(AltiumDesigner)封装导入allegro生成allegro封装.docx
2020-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人