![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA学习
文章平均质量分 59
我是Trustintruth
知乎:Trustintruth
展开
-
IC慢慢学大目录(持续更新,建议收藏)
近一年一直在做数字IC知识整理,现在整理出一个大目录,也希望关注我呀!这边已经不再更新了,谢谢大家的关注。1.FPGA初始系列FPGA初始——UART通信FPGA初始——SPI通信FPGA初始——VGAFPGA初始——自制CPU(上)FPGA初始——自制CPU(中)(文末含源码)FPGA初始——自制CPU(下)2.FPGA奈克斯特系列、FPGA奈克斯特——中值滤波与均值滤波FPGA奈克斯特——Sobel边缘检测FPGA奈克斯特——AMBA(AHB)总线初识及接口定原创 2020-06-20 13:46:21 · 1327 阅读 · 0 评论 -
makefile调用VCS及verdi
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities继上次使用VCS基础操作和makefile的书写,如果我们最后不使用vcs而是使用verdi该如何调用呢?和上次一样,我们同样要把我们的.v文件和tb文件的路径放到file_list.f中(上次是file.list)之...原创 2020-02-12 22:18:51 · 5162 阅读 · 1 评论 -
gvim中一些基础操作命令
如何对gvim界面自定义(设置自己喜欢的gVim界面):在Terminal中输入gvim ~/.vimrc删除类操作:x:删除光标所在的字符;dw:删除光标所在的单词;dd:删除当前行;d$ :删除光标至行尾的所有字符;ndd :删除n行,n为数字;dG :删除当前行到最后一行;复制黏贴类操作yw:复制光标所在的单词;y$:复制光标至行尾的所有字符;...原创 2020-01-30 17:22:21 · 1523 阅读 · 0 评论 -
FPGA 数字电路设计阶段总结2018.7
这几天忙里偷闲的把之前的笔记整理了一下发到了博客上边,总结下了这一学期在FPGA上前进的极其有限。完成的工程只有完整的只有CPU(单周期,多周期,流水线),但是在学期初在softmax实现上和老师以及学长那边开阔了不少的眼界。随着课程的深入(主要是数字集成电路和计算机组成原理实践两节课给予的帮助非常非常大),真的感受到了自己接触到的实在太浅显,甚至都没有真正的体现出FPGA的优势。在EDA中真正的...原创 2018-07-08 17:00:24 · 705 阅读 · 0 评论 -
自制CPU(一)单周期
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities离开博客许久了,今天回来写一篇这个学期一直在做的CPU的文章。设计是基于MIPS指令集的单周期,多周期,流水线CPU。最终实现也是在FPGA板上跑了一个小程序,开发版使用的是basys3.基础指令集等在此就不在为大...原创 2018-07-06 12:18:57 · 2808 阅读 · 0 评论 -
自制CPU(二)多周期
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities接上次,我们简单的说了一下单周期的理解,下面我们说一下多周期。单周期每一条指令都是一个时钟周期结束。但是不同类型的指令可能进行的步骤不同,导致最终CPU的频率上不去,这是由于木桶原则,时钟必须大于最长一条指令完成的...原创 2018-07-07 18:48:01 · 989 阅读 · 0 评论 -
自制CPU(三)流水线
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities经过上两篇文章的阅读,大家应该清楚自己的CPU大致是如何处理数据的,而又是如何执行指令的。我们现在来在简略的说一下流水线CPU的设计。(源码在下载页,请自取)流水线CPU的基本数据通路和单周期没有什么太大区别,而且...原创 2018-07-07 21:43:47 · 3192 阅读 · 0 评论 -
自制CPU(四)程序编写
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities在我们设计出来前边三种CPU之后,我们来进行程序的编写。所谓程序的编写,就是;利用我们写好的CPU,根据我们可执行的指令集,来编写一段程序,可一直用我们的CPU来完成。首先,我们在写程序之前,确定你的CPU可以...原创 2018-07-07 22:15:14 · 4171 阅读 · 0 评论 -
自制CPU(五) 展望
本次CPU暂时告一段落了,但是现阶段的CPU可执行命令少,面积大,速度慢,频率上不去。问题还是有很多的。包括中断和转发功能没有书写,甚至现在写的都不能叫做CPU。下一阶段继续书写吧,可能考研结束之后会重新在写一写。在月中再回来补一份面积报告和时序报告和基础部件详细的说明。希望大家继续关注吧。更多代码也都会放在下载频道...原创 2018-07-07 22:20:53 · 585 阅读 · 0 评论 -
深度学习中的激活函数SoftMax函数的FPGA设计与实现(三)(new trip)
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities如果我们之前做的是一个过河的独木舟的话,或许发现了构建桥的蓝图了就像刚这句话一样,之前我们做的努力或许没有错,但是他最终就实现了功能而已,并不是一个最优方案,或者换句话说,之前的方法我们速度与面积,我们都没有优势。...原创 2018-07-14 14:32:50 · 2143 阅读 · 14 评论 -
建立时间和保持时间简述
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities在数字电路时序分析设计中,我们经常会看到建立时间和保持时间,首先我们使用最白话的语言解释一下什么是建立时间,什么是保持时间:建立时间:在时钟沿到来之前,输入数据需要提前准备好的时间。保持时间:在时钟沿触发之后输...原创 2018-07-14 16:14:19 · 2528 阅读 · 1 评论 -
分数分频的FPGA实现
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities分频对于许多FPGA的学习者来说很常见,无论是偶数分频还是奇数分频。但是分数分频在我们制作时并不常见。现在我们来说分数分频。分数分频顾名思义分频比并不是一个整数,而是一个分数。往常我们接触的积分频,偶分频分频比都是...原创 2019-04-15 20:38:04 · 1610 阅读 · 2 评论 -
扰码器(一)扰码器综述及设计思路
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities首先,扰码:扰码的目的是抑制线路码中的长连“0” 和长连“1” ,便于从线路信号中提取时钟信号。由于线路信号仅通过扰码,所以SDH的线路信号速率与SDH电口标准信号速率相一致,这样就不会增加发端激光器的光功率代价。...原创 2019-05-07 17:55:58 · 5709 阅读 · 6 评论 -
扰码器(二)串行扰码器综述及设计思路
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities哈哈哈,经历了毕设与论文之后的博主终于回来更博了。今天我们的目标是解决串行扰码器首先扰码器的作用就是用来将有序数据流变成随机(无序)数据流。而且不是简单的无序,是要求扰码之后的数据流是类白噪声数据流。而且扰码...原创 2019-06-19 13:56:01 · 3099 阅读 · 1 评论 -
扰码器(三)并行扰码器综述及设计思路
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities经历了串行扰码器的设计后,我们今天来认真讨论一下扰码器的并行化。在许多工程项目中,在通信接口的设计中,通信协议对于扰码器的工作频率要求非常高,但是由于串行扰码器是1bit进行的,如果再要求频率过高的话,FPGA是无...原创 2019-07-03 14:24:57 · 2467 阅读 · 0 评论 -
FPGA 及数字电路基础小知识(四)
在Xilinx FPGA中,块RAM是按照列来排列的,这样保证了每个CLB单元周围都有比较接近的块RAM用于存储和交换数据。与块RAM接近的是硬核乘加单元,这样不仅有利于提高乘法的运算速度,还能形成微处理器的雏形,在数字信号处理领域非常实用。例如,在Spartan 3E系列芯片中,块RAM分布于整个芯片的边缘,其外部一般有两列CLB,如图4-120所示,可直接对输入数据进行大规模缓存以及数据同步操...原创 2018-07-08 16:38:42 · 425 阅读 · 0 评论 -
LCD12864常用管脚
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activitiesLCD12864:液晶显示模块,横向可以显示128个点,在竖向显示64个点。引脚定义从1至20脚定义:1:VSS,接地端2:VDD,电源正,接+5V3:VO,对比度调整,一般接+5V就行了4:D/I...原创 2018-07-08 16:36:39 · 11044 阅读 · 1 评论 -
FPGA学习笔记
//笔记内容较为杂乱,过一阵在进行整理。。布斯算法:输入两个信号a,b。输出是一个数值m = a x b。对于N位乘数Y,布斯算法检查其2的补码形式的最后1位和一个隐含的低位,命名为Yi-1,对于不同的i,考察Yi和Yi-1,当两位相同时,存放积的累加器P值不变,当Yi=0且Yi-1 = 1时,被乘数乘以2的i次方加到P中,当Yi = 1且Yi-1 = 0时,从P中减去被乘数乘以2的i原创 2017-07-14 15:52:26 · 858 阅读 · 1 评论 -
秉火OV7725驱动日志 第一天
一.管脚作用 1.ov7725 SCL,SDA:OV7725的控制寄存器,通过SCL和SDA引脚写入,使用SCCB通信协议。 PCLK:像素同步时钟。是由OV7725输出的信号 HREF:行同步信号 VSYNC:帧同步信号 RSTB:该引脚为低电平的时候,用于复位整个传感器芯片原创 2017-07-16 15:13:16 · 8251 阅读 · 2 评论 -
秉火OV7725驱动日志 第二天
完成SCCB协议共有3个模块第一模块TIMING_control输入输出接口连接 //global clock .clk (clk_ref), //100MHz .rst_n (sys_rst_n), //system reset //i2c interface原创 2017-07-18 15:52:42 · 1514 阅读 · 0 评论 -
除法器FPGA实现
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2017/08/18 15:20:41// Design Name: // Module Na原创 2017-08-20 10:07:32 · 7393 阅读 · 0 评论 -
同步FIFO设计
同步FIFO设计:FIFO(first in first out)可以由其名称理解为先入先出储存器,其设计即为双口RAM,其外部没有读写地址线,写入时按照顺序写入,读取时同样按照顺序将先写入的先读出来,后再将后写入的按顺序读出。依照以上设计思想,首先需主体寄存器80个,每8个为一组,并行输入一组8个数据。当写入时先写入[7:0]这低位8个寄存器,随后一个时钟周期内移位至高八位内,再在低8位原创 2017-08-27 15:08:38 · 1288 阅读 · 0 评论 -
边沿检测,时钟任意分频,
一.边沿检测,即上升沿或下降沿的检测。一般为了防止触发信号的波动,多加几级触发器,消除抖动,使信号更稳定主要应用在(1)将时钟边沿使能转化为边沿检测使能,使时钟同步化。 (2)捕捉信号的突变 (3)逻辑分析仪中信号的边沿检测二.异步时钟解决方案 (1)异步时钟复位信号的同步化 用边沿检测的部分思原创 2017-09-03 15:49:42 · 1504 阅读 · 0 评论 -
inout的具体使用方法
下面是一种典型的inout端口的使用方法:inout io_data; //inout口reg out_data; //需要输出的数据reg io_link; //inout口方向控制assign io_data = io_link?out_data:1'bz; //这个是关键当inout端口作为输入口使用时,一定要把它置为高阻态,让例子中的io_link=0即转载 2017-09-11 16:08:11 · 4226 阅读 · 0 评论 -
IIC第一天,基础设计(unfinished)
今天和大牛学了一句话,叫做先搬砖,后砌墙。IIC协议是低速串行数据,利于设备之间的有效通信。IIC总线包括双向线路sda(表示串行数据)和scl(表示串行时钟),分别用于数据和时钟IIC总线上每个设备都有一个独一无二的地址,既可以作为发送器也可以也可以作为接收器。操作期间,总线上的一个设备作为主设备,其他作为从设备。主设备在scl信号上产生时钟,并启动和终止数据传输。主设备和指定的从设备将数据原创 2017-09-11 16:10:00 · 398 阅读 · 0 评论 -
全硬件TCP/IP协议栈学习笔记(第六天:SPI通信协议学习一)
今天我们学习一下W5500使用的通讯接口,SPI协议。SPI,中文串行外围设备接口,SPI总线是在物理上是通过接在外围设备微控制单元上的同步串行端口的模块来实现。他允许MCU以全双工的同步串行方式,与各种外围设备进行高速数据通信。SPI实为高速同步串行口。收发同步,可同步进行。SPI在芯片的管脚上只占用四根线,节约芯片的管脚。“SPI的通信原理很简单,它以主从方式工作,这种模式通常有一原创 2017-10-12 21:39:52 · 1958 阅读 · 0 评论 -
全硬件TCP/IP协议栈学习笔记(第十一天:FPGA+W5500 PING通)
在一周多的时间,从软件的协议到芯片接口最后到硬件描述,我觉得是时候试一试芯片了,看一看能不能ping通。两天时间终于完成第一次ping,也挺不容易的。首先想要ping通,要先知道ping是什么它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。而对于W5500原创 2017-10-17 13:53:11 · 5240 阅读 · 9 评论 -
CORDIC算法细则
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities算是回来补坑吧,之前的博客中使用到了CORDIC算法的应用,但是没有详细的讲,今天我们回来抛去其他的实现,再讲一讲CORDIC算法。之前的CORDIC文章https://blog.csdn.net/stanary/...原创 2018-07-08 16:24:02 · 6970 阅读 · 0 评论 -
FPGA 及数字电路基础小知识(一)
学习更多相关知识,关注博主知乎账号,用户名Trustintruth https://www.zhihu.com/people/suo-yi-xin-90/activities布斯算法:输入两个信号a,b。输出是一个数值m = a x b。对于N位乘数Y,布斯算法检查其2的补码形式的最后1位和一个隐含的低位,命名为Yi-1,对于不同的i,考察Yi和Yi-1,当两位相同时,存放积的累加器P...原创 2018-07-08 16:27:12 · 1816 阅读 · 0 评论 -
FPGA 及数字电路基础小知识(二)
verilog Coding错误类型命名1.信号_n一般表示低有效,信号定义寄存器溢出 一定要写default,以防跑飞封装成ip1.新建一个工程2.属性设置3.synthesis 生成ngc.file4.生成一个只含端口信号的顶层文件5.工程B中同步复位和异步复位 复位信号起作用的时间是否与时钟对齐同步复位的好处在于他只在时钟信号沿触发,进行系统复位,降低了亚稳态的出现概率,但他需要消耗更多的器...原创 2018-07-08 16:29:36 · 693 阅读 · 0 评论 -
FPGA 及数字电路基础小知识(三)
模块输入是时钟和复位,输出为模块图转化成Verilog code 声明模块,用module来声明,之后写输入输出列表。输入只能是wire,因为只有线性才能接入。output可以wire,也可以是reg。最小逻辑单元 slice,一个slice上有多少个lut,FPGA内部最主要的、最需要关注的部件是CLB(Configurable Logic Block,可配置逻辑块)、Input/Output ...原创 2018-07-08 16:34:33 · 1546 阅读 · 0 评论 -
FPGA前端设计和ASIC前端设计是不是完全一样
简单的回答两者一样,但是只能显示您还不理解两个设计的核心FPGA比较流行的是基于查找表组合逻辑的形式.,没有与门非门,有的只是查找表,选择器和全加器.FPGA里的所有的组合逻辑都是靠查找表,选择器和全加器三个单元完成的.FPGA最关键的核心是查找表,综合软件的主要任务不是化简逻辑,恰恰相反,他在做逆转化,就是把逻辑值算出来,然后填到查找表里去,所以在设计的时候不一定需要自己很麻烦的化简.A原创 2017-07-13 11:36:19 · 1799 阅读 · 0 评论