- 博客(25)
- 收藏
- 关注
原创 verilog bug记录——正点原子spi_drive存在的问题
因为项目需求,需要利用spi对flash进行擦除和写入操作,所使用的开发板是正电原子的达芬奇开发板,我事先往Flash里面存了两个bit,分别对应LED0和LED1的点亮,但是我使用了正点原子的spi_dirve进行全擦除操作之后发现了很奇怪的现象:1、没擦完,因为明显的看到LED1的灯亮了,说明擦除操作或许有效,但是可能只是破坏了第一个bit,第二个bit没有做修改;
2024-07-18 14:38:26
1088
原创 UVM基础学习1——创建与覆盖
而在代码中,get_full_name() 被用作 create_object_by_type 方法的第二个参数,它将作为新创建的 trans 类型对象的名称的一部分。当你通过 UVM 工厂创建一个对象时,返回的是一个 uvm_object 类型的句柄,这是因为 UVM 工厂的 create_object_by_type 方法返回类型是 uvm_object。这里需要注意,set_type_override_by_type可以直接在 UVM 组件类中调用,不需要通过 UVM 工厂对象。使用 void’(…
2024-07-06 09:50:14
886
原创 system verilog 调试bug记录(持续更新)
文章主要记载在初学system verilog中遇到的的一些简单bug,比如一些语法错误。错误写法:constraint c1 {…正确写法:constraint c1 {…1、在子类继承的时候,注意这个分号别落下了。2、在对随机变量进行约束的时候,不用加分号。
2024-06-22 09:24:09
128
原创 FPGA内部资源学习-BRAM资源计算
3、由此便可以计算,1k x 18的原语需要round(10230 / 1k) = 10;所以资源消耗按照文档所述,应该为 round(10230/1024) * round(32/18),即10 x 2 = 20,即20个1k x18,等同于10个1k x 36 跟最后的summary对应上了。其中低功耗的算法稍微复杂,而最小面积的算法可以用固定原语的算法去估计,大部分情况下是准确的,或者仅有一些偏差。),32bit可以由以下几种原语组成:1k x 18 、2k x 9、4k x 4、16k x 1。
2024-06-17 13:42:26
454
原创 verilog bug记录 -算数运算符与移位运算符的优先级
一开始写代码的时候我下意识以为是先进行的移位运算再进行的加减法,这个地方r_o_dat1和r_o_data的输出不一样感觉很奇怪,也是突然意识到运算优先级可能考虑错了。最近项目中遇到一个问题,涉及到移位运算符和算数运算符的优先级考量。
2024-06-14 16:11:19
166
原创 ZYNQ AXI_DMA_UDP以太网传输(三)
本次实验跟之前的实验有所不同,不同点在于:1、前面一个实验的UDP协议,ZYNQ板卡是作为服务端(Server),向PC端一直主动的发数据,但是这一次不同,这一次ZYNQ板卡是作为客户端(Client),需要等待PC端发送相应指令,然后进入UDP协议接收回调函数,再往PC端发送一次数据;2、另一个不同点在于,本次实验加入了将PC端的参数文件通过UDP协议发送到PS端,然后PS端通过AXI BRAM CTRL下发到PL端的BRAM中。
2024-05-31 20:40:19
946
原创 FPGA AXI DDR3学习问题记录-DDR3读写测试
DDR3的学习主要参考的就是正点原子和野火的例程,野火和正点原子驱动DDR3的区别在于一个用了AXI协议,一个没有用,为了学习DDR3的同时加深自己对AXI协议的理解,因此决定学习AXI驱动DDR3,所用的开发板是正点原子的达芬奇,仿真用的是正点原子提供的仿真文件,在这个过程中遇到了一些问题,特此记录。从图中可以看出两个问题,一个是每次读传输只传输了两个数据,并且在传输数据的时候,第一个64位的数据并没有在传输数据的状态内,即状态4延后了一拍。然后针对状态的问题,先看我状态机代码。
2024-05-18 17:49:06
1217
原创 verilog bug记录-parameter ‘DATA_POINTS‘ used as named parameter override, does not exist
localparam不可在外部例化的时候进行修改,只有是parameter的时候才可以修改。多了一个例化,改回来之后就没报错了。这个错误是因为例化的时候出错了。
2024-05-11 10:47:12
269
1
原创 verilog bug记录——Timing Loop
可以发现本该做作为该always块输出的r_start_cnt 反过来作为输入(判断条件)去决定r_start_cnt 的输出,由此实现循环,因此报错。在综合过程中就已经报错,但是只提示报错的文件,没有具体到哪一行,哪一个寄存器出现了错误;总结:在同一个always块中,输出的寄存器a最好不要又作为输入去影响寄存器a的输出。随即在布线的过程中,报错r_start_cnt该寄存器存在问题。问题:在综合和布线的时候都如下错误。代码修改之后综合布线都不再报错。
2024-03-20 11:11:54
362
1
原创 verilog刷题记录——ROM的简单实现
要实现ROM,首先要声明数据的存储空间,例如:[3:0] rom [7:0];变量名称rom之前的[3:0]表示每个数据具有多少位,指位宽;变量名称rom之后的[7:0]表示需要多少个数据,指深度,注意这里深度为8,应该是使用[7:0],而不是[2:0];
2024-03-14 21:22:02
406
原创 verilog刷题记录——3-8译码器实现全减器
3-8译码器代码如下,可将参考代码添加并例化到本题答案中。注意m是全减器真值表的最小项,设M是3-8译码器的真值表。1、Ci是低位向本位的借位,Co是本位向高位的借位;又因为3-8译码器的真值表对应的是最小项取反,根据这两个关键点即可得出全减器的真值表。2、二进制的借位规则是“借1当2”四、3-8译码器实现全减器。三、3-8译码器的真值表。
2024-03-14 19:45:06
793
原创 AXI4协议学习(一)
源端不允许目的端的READY信号拉高之后,才将VALID信号置为有效状态”,但是前面的插图中又提到AXI的三种握手情况中有一种READY before VALID 握手,这不是自相矛盾吗?思来想去,查了chatgpt,还是觉得这应该是说“源端不需要等目的端的READY信号拉高之后,才将VALID信号置为有效状态”好像合理一些,这是目前我的理解,之后有啥更改的再补充。
2024-03-10 10:50:04
387
1
原创 verilog刷题记录-异步复位的时候得是下降沿
而在下降沿时,电路会停止执行操作。因此当复位信号与时钟信号结合使用时,下降沿出发的复位信号可以确保在时钟信号的下一次上升沿到来之前,电路已经被完全复位,从而避免了不必要的错误。”如果把复位信号和时钟信号都写成上升沿触发,那么在复位信号和时钟信号同时上升沿的情况下,无法保证系统的正确性和稳定性。其实题目不是很难,但是测试用例一直没通过,但是对比别人的代码又感觉主体部分一样,后来仔细一看发现自己的异步复位写的是上升沿,改成下降沿就顺利通过测试了,但是陷入沉思,为什么是下降沿呢,以前都没注意这个问题。
2024-03-02 20:28:46
506
原创 Hdlbits刷题记录-双边沿采样
这个代码的注释里面也讲了为什么这么做,觉得好有道理,学习了学习了,但是还有个疑问,为什么第一种方法可能会出现毛刺,第二种就不会呢,是因为二选一选择器和异或门的特性吗?这种方法按照博客的说法是因为触发器输出是会相对clk有一个延迟,这个延迟就会导致最终的输出产生毛刺。下图是在timegen上画的第二种解法的波形。今天刷题刷到一个很有意思的题目,记录一下。这道题呢主要解法有两种,参考博客。
2023-12-17 14:44:42
152
1
原创 hdlbits刷题记录-卡诺图、pos、sop
刷hdlbits的时候刷到卡诺图,看到pos和sop的时候人懵了,好家伙,果然数电全还给老师了,那就复习一遍吧,参考书籍《Verilog HDL 高级数字设计》。
2023-12-16 14:45:38
469
原创 FPGA初学记录(问题记录)——第一次调用IP核时出现了 “module ‘pll‘ not found”
FPGA初学记录(问题记录)——第一次调用IP核时出现了 “module 'pll' not found”
2023-03-07 11:24:10
679
原创 FPGA初学记录——数字时钟系统搭建(下)
FPGA初学记录——数字时钟系统搭建(下)野火征途Pro开发板教程——数码管动态展示拓展训练,数字时钟系统搭建文章目录FPGA初学记录——数字时钟系统搭建(下)前言一、问题简述二、功能解析和源代码1.功能解析2.源代码——key_function2.源代码——data_gen三、总结前言最近在学习FPGA,因为研究生需要用到,所用的开发板是野火的征途Pro,也是在跟着野火的教程学习,学到了数码管动态展示,看到拓展训练,是一个挺适合练手的题目,主要是利用各个模块,比较锻炼模块化设计的思路,感觉有必
2022-04-19 21:43:39
707
2
原创 FPGA初学记录——数字时钟系统搭建(上)
FPGA初学记录——数字时钟系统搭建(上)野火征途Pro开发板教程——数码管动态展示拓展训练,数字时钟系统搭建文章目录FPGA初学记录——数字时钟系统搭建(上)前言一、问题简述二、功能解析和源代码1.功能解析2.源代码——简单乘法器2.源代码——数字时钟的乘法器4.源代码——数据产生data_gen三、总结前言最近在学习FPGA,因为研究生需要用到,所用的开发板是野火的征途Pro,也是在跟着野火的教程学习,学到了数码管动态展示,看到拓展训练,是一个挺适合练手的题目,主要是利用各个模块,比较锻炼模
2022-04-18 21:10:12
928
3
原创 利用Micropython+socket通信实现两块esp32之间的通信
利用Micropython+socket通信实现两块esp32之间的通信
2021-12-10 12:51:07
13659
1
原创 Ubuntu18.04安装autoware1.14并安装autoware1.10标定工具箱
Ubuntu18.04安装autoware1.14并安装autoware1.10标定工具箱1、安装autoware1.142、安装autoware1.10标定工具箱1、安装autoware1.14因为ubutu是18.04的版本,所以根据官网上的要求,只能装autoware1.12~1.14,查了很久的资料,最后采用了这位大佬的法子,详情可以看链接https://blog.csdn.net/qq_43509129/article/details/1092240712、安装autoware1.10标定工
2021-10-30 14:52:13
1945
2
原创 2021年自动化预推免面试经历记录与总结--持续更新
2021年自动化预推免面试经历记录与总结提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录2021年自动化预推免面试经历记录与总结前言一、合肥工业大学面试-2022.9.81.面试流程2.面试3.总结前言本人南部某双非学校,夏0营,自动化专业,保研边缘生。一、合肥工业大学面试-2022.9.8合工大报名之后就是等邮箱通知了,报名系统后来一直没登上去,早上起来习惯性的刷一下邮箱,然后就发现合工大发通知了,第二天早上8:30面试。因为是第一次面试,还是挺紧张的。1.面
2021-09-08 14:57:43
2732
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人