<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SLAM_masterFei的博客]]></title><description><![CDATA[很多要学的啊。。。]]></description><link>https://blog.youkuaiyun.com/SLAM_masterFei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SLAM_masterFei]]></copyright><item><title><![CDATA[闲聊]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/111704622</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/111704622</guid><author>SLAM_masterFei</author><pubDate>Fri, 25 Dec 2020 20:34:21 +0800</pubDate><description><![CDATA[以及快半年没更了，博主最近准备毕业论文，所以更新可能要等到明年34月份吧

关于内容，博主打算以后专门更新FPGA或者数字IC方面的一些简单基础，模拟可能也会涉及但是不多，有些视觉或者软件的朋友就抱歉啦，博主以后可能不会更新这方面的了。

关于工作，博主今年8月开始找工作，最终确定某微电子研究所，IC设计方向。当然同时还有另一家研究所的offer，fpga设计

想说一点，如果是非科班的同学，找工作有疑惑可以和我交流，博主愿意解答哈哈哈。最后，博主是机械专业的，最后取IC是不是很可怕哈哈哈，我也觉得。。。
]]></description><category></category></item><item><title><![CDATA[verilog编写异步时序中的握手信号]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106419593</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106419593</guid><author>SLAM_masterFei</author><pubDate>Fri, 29 May 2020 10:21:44 +0800</pubDate><description><![CDATA[在数字电路设计中，往往不存在一个系统共用一个时钟源的情况，在异步电路中，为了使得数据之间的传输不发生错误，基本有以下三种方式：1.寄存器打两拍 2.握手信号 3.异步fifo

下面简单介绍一下握手信号，做过iic通信的小伙伴应该知道在iic通信里会有一个ask应答信号来表明数据的正确传递，那么它到底是怎么产生的呢？来看下图

上图din为clk_1时钟下产生的数据，在clk_2时钟下产生dout，由于clk_1时钟明显比clk_2时钟来的快，显然打两拍方法根本不可能采集到正确的数据（没有满足3个沿）。所以]]></description><category></category></item><item><title><![CDATA[D触发器的建立时间和保持时间原理]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106398768</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106398768</guid><author>SLAM_masterFei</author><pubDate>Thu, 28 May 2020 10:59:54 +0800</pubDate><description><![CDATA[大家都知道D触发器需要建立时间和保持时间，它们的含义大家也清楚，但是为什么需要建立时间Tsu和保持时间Th？下图展示了一般D触发器的内部结构



具体的分析有兴趣可以慢慢分析，不是很难。主要说一下大概：默认SD,RD信号为高，cp=0时，D信号作用于G5,G6两个与非门分别输出D和！D，当cp=1时，G5,G6的输出端数据经过G3,G4到达其输出端，然后根据RS触发器得到输出Q。其中当cp=1时，无论D信号怎么变化都不会影响G3,G3输出的结果。（这里假设忽略了门延时）。

这样的话一个上升沿触发的D触发]]></description><category></category></item><item><title><![CDATA[verilog写一个简单的仿真文件(readmenh和task用法的简单体现)]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106385981</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/106385981</guid><author>SLAM_masterFei</author><pubDate>Wed, 27 May 2020 17:34:55 +0800</pubDate><description><![CDATA[仿真是FPGA验证很重要的一环，但是开始的时候由于我们的电路比较简单所以仿真文件的设计也相对简单。那么一旦系统复杂起来，输入的数据也复杂的话，可能就需要用到系统函数$readmemh和$readmemb了，它们可以读取文本的文件然后用来做激励信号等等，或者会用到task函数来循环操作某些赋值。下面给出一个带有$readmemh和task的简单仿真文件来具体说明下：


module read_test(
input clk,
input rst,
input [7:0] data_in,
output re]]></description><category></category></item><item><title><![CDATA[FPGA时序分析建立松弛和保持松弛]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105597597</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105597597</guid><author>SLAM_masterFei</author><pubDate>Sat, 18 Apr 2020 14:47:39 +0800</pubDate><description><![CDATA[最近在做TDC的时候算是把时序稍微了解了一下，也明白了时序报告里建立松弛(WNS)和保持松弛(WHS)的概念和计算过程，这里分享一下，也欢迎大家一起交流。

这里的建立松弛和保持松弛都是在FPGA内部的触发器之间的关系，并没有考虑到外部的输入输出延时。一般的模型为如下：



建立松弛指的是，在下一次时钟触发脉冲来时，第一级触发器输出数据到建立时间前之间的时间最大为多少，这个一般用来确定时钟最大的...]]></description><category></category></item><item><title><![CDATA[基于FPGA的TDC(数字时间转换)设计]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105582220</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105582220</guid><author>SLAM_masterFei</author><pubDate>Fri, 17 Apr 2020 16:35:28 +0800</pubDate><description><![CDATA[额，老师让做一个TDC的计时模块用FPGA，那就做呗。。。

首先说一句，我在做的过程中发现有些人说vivado不太可以做TDC的后仿，我自己试着发现是可以的，当然也许我其实是错的 哈哈哈 先不管了。

首先上一张后仿的图



大家不要在意我的傻吊命名。我设置的起始和结束信号之间的差值是21ns，那我最后的结果是多少呢

（5-1）*4+（37+27）*76/1000=20.864ns 我不知...]]></description><category></category></item><item><title><![CDATA[基于FPGA的DDS实现原理]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105418260</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105418260</guid><author>SLAM_masterFei</author><pubDate>Thu, 09 Apr 2020 20:45:15 +0800</pubDate><description><![CDATA[嗯。。。最近画了个FPGA开发板练练手。。。希望一切的努力最后都能有所收获吧。

DDS Direct Digital Synthesis，即直接数字合成器，可以用来生成频率范围很宽的各种波形。其原理图如下所示：



比较重要的两个参数是相位控制字和频率控制字，一个用来控制初相位，一个来控制频率。那么这是如何做到的呢

我们假设有一个基波，它一个周期有64个采样点，那么怎么把它的频率变成两倍呢？...]]></description><category></category></item><item><title><![CDATA[xilinx 7系列FPGA配置]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105256182</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105256182</guid><author>SLAM_masterFei</author><pubDate>Wed, 01 Apr 2020 21:53:11 +0800</pubDate><description><![CDATA[这篇还是以应用为主，介绍为辅，因为博主理解也不是很深。。。

7系列有哪些配置呢，如下：



其中应用比较广泛的是主模式和JTAG模式，那么如何决定模式呢，FPGA对应有M0-M2这三个接口，通过使这些接口接高电平还是地来决定哪个配置模式。其中高电平接的是FPGA的V CCO

我们以常用的Master SP模式和JTAG为例

1.JTAG模式



JTAG模式很简单，对应端口相连就可以了。...]]></description><category></category></item><item><title><![CDATA[xilinx 7系列FPGA时钟介绍]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105253797</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/105253797</guid><author>SLAM_masterFei</author><pubDate>Wed, 01 Apr 2020 20:16:00 +0800</pubDate><description><![CDATA[嗯。。。疫情影响各位小伙伴们还好吗。。。博主快炸了，老是担心工作，今年秋招啊。。。

之前一直都是用人家的开发板来直接写逻辑的，但是最好自己还是要做一块嘛。。。最近已经开始动手画了，当然会参考人家现成的东西，谁让他们产品稳定呢，以后有机会会分享一下自己做的开发板，当然比较垃圾啊。我个人想法是想先画一个只有led和开关逻辑的简单FPGA板子，主要走通的流程，至于毕设用的，等等吧，毕竟对DDR3的走线...]]></description><category></category></item><item><title><![CDATA[verilog -:或+:用法]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104896258</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104896258</guid><author>SLAM_masterFei</author><pubDate>Mon, 16 Mar 2020 12:15:29 +0800</pubDate><description><![CDATA[最近在刷一些Verilog的题，希望对后续的找工作有所帮助吧。。。

一般而言对于类似多位输出赋值，一般而言是这样的：


wire a[MSB:LSB];
assign a=b[MSB:LSB];

这里的MSB 和LSB 都需要是常数而不能是变量，那么现实中很有可能需要对变量来进行操作，比如多路选择器等等，那么就可以用到 -：和+：操作符了，具体用法如下：


module top_modul...]]></description><category></category></item><item><title><![CDATA[verilog使用可综合的for语句]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104815857</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104815857</guid><author>SLAM_masterFei</author><pubDate>Thu, 12 Mar 2020 12:13:23 +0800</pubDate><description><![CDATA[今天刷题，偶然接触到generate用法，小结如下：

generate可以用来构成循环语句，但是必须要定义genvar作为循环变量

结尾必须接上endgenerate

generate定义for循环时，必须要加类似如下形式


for(i=0;i&lt;n;i=i+1)
begin: label
    ...
    ...
end

label是你自己定义的标签，可以理解为c++中的实例...]]></description><category></category></item><item><title><![CDATA[同步和异步区别]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104194125</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/104194125</guid><author>SLAM_masterFei</author><pubDate>Thu, 06 Feb 2020 12:00:39 +0800</pubDate><description><![CDATA[同步和异步在数字电路时序逻辑中经常出现，怎么理解同步和异步呢，我拿同步清零和异步清零来简单描述下

来看代码


always@(posedge clk)
begin
    if(!reset)
        out&lt;=1'b0;//同步清零
    else
        ...
end



always@(posedge clk or negedge rst)
begin
   ...]]></description><category></category></item><item><title><![CDATA[MOS管开通过程和关断过程和简单恒流源电路解释]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/103861301</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/103861301</guid><author>SLAM_masterFei</author><pubDate>Mon, 06 Jan 2020 19:42:30 +0800</pubDate><description><![CDATA[最近在做恒流源电路，也没有设计，直接抄的论文的电路。。。



咋说呢，电路本身分析不难，有负反馈，虚短虚断直接用很容易得出激光的电流

i=Vin/R4

但是呢，我之前一直搞不懂它是怎么达到稳态的，就是说负反馈是如何作用使得电路稳定，因为我之前一直任务MOS管只要栅源电压超过阈值，ids的电流就直接由Vgs决定，那样mos管一开始就饱和了呀。。。后来才发现mos管是有开通和关断时间的。

...]]></description><category></category></item><item><title><![CDATA[Verilog表示小数-定点小数]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/103279004</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/103279004</guid><author>SLAM_masterFei</author><pubDate>Wed, 27 Nov 2019 17:23:54 +0800</pubDate><description><![CDATA[最近博主搞FPGA图像处理，由于用作三维成像那么精度必不可少啊，但是Verilog又不像c等高级语言一样，我随便设个double就可以赋值啊啥的，那么咋办，定点小数就孕育而生了。当然verilog也可以用浮点数表示，这里博主就不提及了。

何谓定点小数，顾名思义，就是小数位后的数目固定，即精度固定，这里假设有一个16位的变量，我们使它的精度为8位，那么它的精度是多少呢？ 其实就是1/2^8=0.0...]]></description><category></category></item><item><title><![CDATA[FPGA读取ov5642摄像头]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/102886506</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/102886506</guid><author>SLAM_masterFei</author><pubDate>Sun, 03 Nov 2019 20:51:11 +0800</pubDate><description><![CDATA[豪威的ov系列的摄像头可谓在FPGA图像处理中应用广泛，虽然博主利用黑金给的教材直接跑程序就可以得到摄像头的实时显示，但是无奈黑金给的代码太多，太繁琐。看了半天勉强看懂每个文件的大体意思，知道了之间的关系，会改改基本参数，仅此而已。那还毕业毛业啊这样。。。所以博主打算自己编写一套完整的系统来实现读取摄像头并且进行图像处理，然后实时显示的系统。虽然说万事开头难，但是怎么说呢，不积跬步，无以至千里。所...]]></description><category></category></item><item><title><![CDATA[vivado下ddr3的读写和测试详解]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/101344855</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/101344855</guid><author>SLAM_masterFei</author><pubDate>Wed, 25 Sep 2019 12:05:20 +0800</pubDate><description><![CDATA[最近博主在根据例程做ddr3的读写测试，发现根本看不到好吧，虽然之前博主做过SDRAM的读写测试，但是ddr3更加复杂，时序写起来很吃力，所以需要用到vivado下自带的ip核。具体来看下面例化过程：

1.在ip核下搜索mig 双击打开



2.直接next 然后在当前界面修改你的ddr3ip核的名字



这里博主是因为已经例化了ip核，所以名字不能修改，然后next

3.这是要不要兼容...]]></description><category></category></item><item><title><![CDATA[vivado验证简单的iic通信]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100920760</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100920760</guid><author>SLAM_masterFei</author><pubDate>Tue, 17 Sep 2019 11:32:06 +0800</pubDate><description><![CDATA[关于iic的时序，之前已经讲过，这里纠正一个小错误就是inout类型的变量不可以用reg型，只能用wire型，之前在alter板子上reg可以也不知道为啥，反正vivado不行。由于博主很懒，就把之前写的代码照搬过来了，修改下，就可以在vivado上用了。

关于代码不做介绍，通过实验验证了我们的程序在连续写或读的时候都不会存在问题，有想修改的朋友直接照搬即可，然后自己修改测试程序就是，读和写单字...]]></description><category></category></item><item><title><![CDATA[利用FPGA实现简单的sdram的读写操作]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100567869</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100567869</guid><author>SLAM_masterFei</author><pubDate>Fri, 06 Sep 2019 11:54:53 +0800</pubDate><description><![CDATA[没有什么事都是一帆风顺的，学业，感情。。。让人学会了很多但是又让人难以忘怀。。。人生路上起起伏伏，并不是真心的付出就可以得到相同的回报，有时候可能还会恰恰相反。。。

好了，负面情绪就不带给大家了，博主还是来讲sdram吧。其实博主搞了3，4天才搞明白sdram的大体流程，其实主要是被那么多的地址线啊，各种工作条件给懵逼了，其实学下来发现也就不过尔尔有一个规律可循，以及知道了看数据手册的必要。不过...]]></description><category></category></item><item><title><![CDATA[利用FPGA实现简单的iic通信协议]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100350019</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100350019</guid><author>SLAM_masterFei</author><pubDate>Mon, 02 Sep 2019 20:09:58 +0800</pubDate><description><![CDATA[最近博主马不停蹄的学习FPGA就是为了可以尽快用FPGA来实现图像处理，好让我们的博客恢复正常内容哈哈哈，我说几句题外话，其实关于图像处理，工程应用和写论文是完全不一样的，如果是以找工作为目的，在牛逼的算法其实很难进行实际运用，归结到底就是速度以及实际效果。所以如果是以找工作为目的的小伙伴们其实不妨把时间花在积累工程经验中来，毕业论文啥的随便找两个算法复现了调调参就可以了。当然我这么说，读博的朋友...]]></description><category></category></item><item><title><![CDATA[利用FPGA做FIFO测试]]></title><link>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100155302</link><guid>https://blog.youkuaiyun.com/SLAM_masterFei/article/details/100155302</guid><author>SLAM_masterFei</author><pubDate>Fri, 30 Aug 2019 14:58:36 +0800</pubDate><description><![CDATA[很久没有更新博客了，很抱歉，博主近两个月的时间做了一个决定，开始转战fpga领域，毕竟项目要落地，一味用电脑做也不行，所以以后的大方向是用FPGA来实现图像处理，怎么说呢，研究方向不变，但是过程变了。

好了废话不多说，开始来实现。fifo即先进先出，它的输入输出参数如下：


module fifo (
	clock,
	data,
	rdreq,
	wrreq,
	empty,
	full,
...]]></description><category></category></item></channel></rss>