- 博客(72)
- 收藏
- 关注
原创 电路中的repeater是什么?
最近在看interlaken协议,有一个单词,repeater,不知道是什么含义,查了一下发现它的功能是提高数据的完整性,要么是修复时钟,要么是提高信号裕量等。总之是让信号变好的一个东西。具体可以参见TI的说明。
2023-12-13 08:31:36
1113
原创 USB的高速速率是如何确定的?
对host,会给ulpi phy连续发送两个数,0x84和0x50,查ulpi手册得知,这两个数是给ulpi芯片的地址0x4写入0x50,将host的port opmode(port的操作模式)切换成。,这就是通知upli PHY,下一步要发送k j序列了,不要耽误事,不要对我的k j序列进行编码解码。等待chirp k,如果插入的dev也支持高速传输,则会拉高D-线一段时间,向host发送chrip k,host收到后会向dev发送至少3对的k j序列,与dev握手,dev收到后将自己切换成高速状态。
2023-12-10 12:42:44
531
原创 USB ULPI总线信号含义
0x49占据两个CLK周期,说明第一个周期时,PHY没有成功接收0x49,而在第二个CLK时,NXT拉高,说明PHY成功接收了0x49。在传输数据时,当DIR拉低,且NXT拉高,说明CPU向PHY传输数据,且拉高NXT表明当前数据被PHY接收,相当于一个握手反馈信号。握手阶段:此时DIR拉低,发送0x42时又占据了两个CLK周期(高4bit的0x4代表发送,低4bit的2代表PID,这是芯片中规定的),直到NXT拉高后,0x42下一拍才变为0。在传输数据时,DIR拉低说明CPU在控制总线,PHY被动接受。
2023-12-06 09:40:26
1469
原创 读写AXI4接口RAM的简单示例
由于接口都是一样的,故本人将DDR3直接替换成带有AXI4接口的RAM,该RAM通过block memory generator生成,在接口选项中直接选择AXI4接口,如下所示。之前看了AXI4总线协议几个月之后又忘了,一直在寻找比较合适上手的稍微简单的AXI4读写的RTL,找过AXI VIP,这里面东西太全了,并且vivado仿真跑起来之后要很久才能加载波形,遂弃。链接:https://pan.baidu.com/s/1yeH0449Gx3DZSNMp-N0xeQ。整个工程上传百度云,获取地址如下。
2023-04-03 21:53:57
1139
原创 嵌套的sequence中容易被忽略的bug
在sv以及UVM的学习开发中,遇到了一个很容易忽略的bug,并且此bug让自己卡在了do while循环中,于是记录。嵌套的sequence关于嵌套的sequence参见张强的《UVM实战》一书6.4章节。在6.4.2章节中特意提到了在sequence中使用rand变量时需要注意变量的命名。其实不论是rand变量,还是其他的变量命名,都要注意此bug,即尽量不要用同一个名称。例如,我有一个sequence1,其body中声明了transaction为tr,如下class sequence1 ext
2022-03-22 13:31:35
461
转载 SystemVerilog | 回调Callback必知必会
回调(callback)是一种在很多编程语言中都会使用的编程技巧。这算是一个感性的印象。关于回调函数,很多地方会用这句话来描述:“If you call me, I will call you back”。这句话说起来既形象又片面,毕竟不是简单的两者之间的关系,了解具体内容还得继续往下看。本文将进一步厘清回调函数的概念和术语,并给出SV和UVM使用回调函数的代码示例,最后例举一些在芯片验证中的使用场景。01 概念和术语例举一个场景,假设CC是个中国合法公民,今天CC的身份证丢了,然后到派
2022-02-15 14:51:44
1328
1
转载 SystemVerilog中的callback(回调)
1、什么是callbackcallback是SystemVerilog学习者的主要困惑点之一。许多人在许多论坛上都提出了相同的问题,但答案似乎并不能尽如人意。我们可以将数据成员传递给任何函数。现在考虑一种情况,将一个函数(例如func1)作为数据成员传递给另一个函数(例如func2),并且得到所谓的callback。之所以称为callback,是因为函数func2现在可以在其代码函数func1中的任何地方调用。如下图所示:这个是一个基类,其中:temp是一个方法 方法te.
2022-02-15 13:52:04
1583
转载 SystemVerilog中的浅复制(shallow copy)和深复制(deep copy)
使用SystemVerilog搭建环境的时候,经常会遇到需要对一个对象进行复制,以防止对象的方法修改原始对象的值。对于初学者经常会使用new函数来实现class的内建的复制功能,但是,当要复制的对象中含有其他对象(object)时,使用内建的复制功能将会得到不期望的结果。本文将示例说明shallow copy和deep copy的区别。1 浅复制(shallow copy)在SystemVerilog中,当一个class声明时会指定一个句柄handle(可以理解为其他语言中的指针),该句柄handl
2022-02-15 11:00:10
1571
1
转载 竞争与冒险
竞争与冒险不光会出现在实际的电路中,在仿真时也会存在信号竞争。下面我将展开分析。 文章目录 一、电路中的竞争冒险1.竞争冒险的定义2.判断竞争冒险的方法方法一:逻辑代数法方法二:卡诺图法 3.消除竞争冒险的方法 二、仿真时的竞争与冒险。 一、...
2022-02-15 10:34:59
3917
原创 cameralink解码编码FPGA代码定制
利用FPGA对cameralink的数据进行接收解码,以及发送编码。不使用DS90CR287或DS90CR288芯片,直接在FPGA内部进行编解码。本人在xilinx(赛灵思)A7,K7,V7,zynq7,ultrascale以及ultrascale+ 系列的FPGA上已经验证。本人在此深耕多年,完全掌握cameralink传输标准,解码编码标准,现承接定制IP或提供源码服务。详询企鹅号920160446或微信号hlc0015...
2021-06-26 15:04:25
1406
转载 xilinx FIFO的使用及各信号的讨论
FIFO的使用非常广泛,一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集,另一端是计算机的PCI总线,假设其AD采集的速率为16位100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为33*32=1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO...
2021-02-07 15:00:02
1369
转载 VIVADO DSP48E1
所使用EDA软件:VIVADO2018.3 FPGA型号:xc7a35tcsg325-2 DSP48E1的内容比较多,但是我们实际运用它的时候不会去刻意的去调动它的原语。所以对于DSP48E1,我们只需要知道它内部的基本架构,能实现哪些具体的功能,以及它级联后的作用即可。在实际的编码过程中,合理充分的利用DSP48E1不仅可以节约不少CLB资源,还能提高整个FPGA系统的性能。 学习完本章你将会收获以下内容:...
2021-02-04 09:42:04
5526
4
转载 DSP与FPGA间简单通信时序
DSP与FPGA采用EMIF接口通信,即将FPGA作为DSP的外部SRAM,只需设置EMIF控制的存储器为SRAM类型即可,DSP通过EMIF接口读写SRAM的时序如下: 参考datasheet《tms320dm642.pdf》 可以根据以上时序图编写FPGA代码,以下仅供参考:moduleDSP_FPGA( &nb...
2021-02-02 08:53:22
1794
转载 关于ISE中XPS自定义IP核的语句解释
关于ISE中XPS自定义IP核的语句解释slv_reg0[(byte_index8) +: 8] <= Bus2IP_Data[(byte_index8) +: 8];for ( byte_index = 0; byte_index <= (C_SLV_DWIDTH/8)-1; byte_index = byte_index+1 ) if ( Bus2IP_BE[byte_index] == 1 ) slv_reg0[(byte_i
2020-12-13 11:02:10
609
转载 Xilinx 7 series设计单元Buffer与IO——BUFG、IBUFG、IBUFDS_GTE2等
文章转载于Xilinx 7 series设计单元Buffer与IO——BUFG、IBUFG、IBUFDS_GTE2等
2020-07-21 10:26:09
5034
原创 关于消抖电路的再认知(消抖电路的简洁写法)
文章目录1. 引言2. 简洁的方法,令人愉悦的代码2.1 module2.2 tb1. 引言2019年11月,学习了梅雪松的消抖电路,但始终觉得他用状态机来判断抖动并消除抖动会增加很多功耗,毕竟一个按键的每次抖动都要用状态机来判断,增加了电路电平某段时间的翻转率,觉得不妥。随后便学习了特权同学的视频,有了关于特权同学第9课——消抖电路rtl的分析这一文章。可是本人始终觉得两人的写法都有些欠缺。恰巧入职未满一周,有幸接触到了公司合作方所给的FPGA代码,其中简洁的消抖电路令我拍案惊奇——这才是它应该
2020-07-17 20:58:57
1410
2
原创 FPGA之以太网ARP发送
文章目录1 代码段2 TB段3 分析3.1 分析一3.2 分析二3.3 分析三4 收获4.1 收获一4.2 收获二参考梅雪松的2017年以太网发送部分的视频教程以及代码,对自己编写代码过程中遇到的一些问题进行了调试,是为此篇。1 代码段自己编写的代码段如下module eth_send( input rstn, //MII input mii_tx_clk , output m...
2020-02-27 15:26:13
884
转载 Modelsim修改波形显示颜色
转载地址:http://www.corecourse.cn/forum.php?mod=viewthread&tid=28356本文由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。为啥要修改颜色?逻辑开发工程师和学生工作学习中免不了需要为设计的逻辑编写设计报告,在编写设计报告时,仿真图作为说明各种信号间工作时序的一个非常有用的内容,经常会被贴...
2020-02-21 09:51:49
13035
原创 关于红外键盘与DDS联合调试的一个问题
由于代码相关附件太大,传不上来,只能通过百度云分享...链接:https://pan.baidu.com/s/1oE7ncVOtyOhfuvv-jGfALg提取码:7ran目前在红外键盘和双通道DDS的调试中存在如下问题:三段式状态机的第一段和第二段如下:并且,通过tb仿真,状态机的跳转也很正确,至少在状态IDLE跳到RECEIVE_FWD的时候是正确的。但...
2020-02-16 21:05:46
243
转载 在win10+Ubuntu双系统下,完美卸载Ubuntu
机器:惠普 暗影精灵3win10与Ubuntu16.04均为UEFI分区清除ubuntu系统 使用软件:diskgenius 删除Ubuntu系统使用的几个分区(包括EFI分区),注意不要删除Windows的EFI分区若不确定Ubuntu相关分区,可通过【Windows+X】 选择磁盘管理,通过分区大小进行对比判断删除开启引导启动项 删除了Ubuntu系统所有分区后,Wind...
2020-02-16 20:27:04
329
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人