- 博客(28)
- 收藏
- 关注
原创 力扣刷题记录(二)第52题
使用回溯算法来解决这个问题,回溯算法是一种通过尝试所有可能的解来找到问题的解的算法,当发现当前的选择不能得到有效的解时,会撤销上一步的选择,继续尝试其他的可能性。
2025-03-20 10:25:02
213
原创 力扣刷题记录(一)41题
给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。3范围 [1,2] 中的数字都在数组中。21 在数组中,但 2 没有。1最小的正数 1 没有出现。
2025-03-06 20:21:30
264
原创 ahb2eflash项目问题汇总
第二个周期上升沿从设备采样地址和控制信号,并将 HREADY 拉高,如果是写操作,主设备会在第二个周期的上升沿传输要写入的数据,如果是读操作,从设备会在 HREADY 信号拉高后将读取的数据写入总线;第三个周期上升沿如果是写操作,主设备获取HREADY 高信号,表明从设备已成功接收数据,操作成功,如果是读操作,主设备获取 HREADY 高信号,表明此时的读数据有效并且接收下来,操作成功。信号在数据有效期间必须为高,并且延续到第三个周期的上升沿之后,确保主设备的正确采样。2、AHB 总线的了解。
2024-06-10 16:26:19
359
原创 DMA学习笔记
DMA(direct memory access,直接内存访问),是一种避开CPU,可以直接对外设和内存进行访问的技术,可以实现外设与内存、内存之间、外设之间的数据的访问和搬移。
2023-11-20 18:55:01
2204
2
原创 宏瑞星通fpga面经
一面是电话面(实际上是在线下面试和电话面选择一个,我身体不是很舒服就选择了电话面),是研发副总监打来的电话的,问了自己学习fpga的时间,硕士课题的进度,实习的经历,基本就是简单的聊天,最后是反问,(我问主营业务是什么样的,大概用fpga做些什么)然后是一个小的心理测评。
2023-11-08 17:35:22
216
3
原创 华为数通产品线-单板硬件开发面经
静态时序分析做过吗?我说实习的时候问过我上司,他说可以不用关注(刚刚我又问了我实习的上司,他说一般来说是不用关注的,因为只要不是关键路径的违约就行,我瞬间明白,果然是大佬,一句话就能让我明白,我上司还说,这里其实会有一些低速通道会产生时序违例,比如寄存器的配置一类的,这种情况可以不用管他,只要算法模块没错就没事);然后让我手撕代码,是一个二分频的代码,纯手写,我拿起笔不知从哪开始,我打算从波形图开始,我刚画好波形图,他说如果是设计一个三分频呢,我继续画,然后没给我写的机会。二面问的是几个跟他们相关的东西,
2023-10-10 15:39:11
783
原创 南京天际易达面经
我回答,具体的不是特别清楚,我查到的文献上大致有这么三类载波同步的方案,一种是PLL,锁相环,一种是平方环载波同步法,就是在PLL之前加一个平方律器件,然后再在之后加一个二分频器,还有一种就是科斯塔斯环了,回答:就是去年得到的,基本都是一等奖学金,我们学校是奖学金全覆盖,前70%是一等奖学金,这个,就好好工作努力科研,评一等奖学金还是算容易;回答:我是大四考研的那段时间去参加的,大部分是高数的内容,数学竞赛是个人赛,感觉还是挺简单的;9.22二面,本来是腾讯会议,但是我的网络有点卡,就电话面了,
2023-09-22 18:05:40
205
3
原创 IP设计的相关知识
全称:硅知识产权(Silicon Intellectual Property)用于ASIC或FPGA的预先设计好的电路功能模块,经验证可以重复使用的,能完成某些功能的组块。
2023-06-06 21:53:11
241
原创 UART协议
通用异步收发器(UART),是最广泛使用的串行数据通信的电路,UART允许如RS232、RS422/485在串行通信链路的全双工通信。UART的基本功能是为接收、发送的数据生成缓冲、帧的生成、奇偶的产生、并行/串行的转换、奇偶的校验。为便于发送,UART用最低有效位的起始位和最高有效位的终止位对8位数据进行传输打包。
2023-05-30 15:10:40
287
原创 IIC协议
IIC总线协议规定,主器件通过改变串行时钟线和串行数据线发起一根开始信号,然后通过SDA线进行数据的传输,数据传输的过程要注意数据的有效性和地址器件的格式,每传输一字节的数据,数据的接收方就要给出一根应答信号,串行时钟线被拉低迫使总线进入等待状态,传输过程的终止需要主器件发出停止信号。除此之外,IIC总线协议还包括时钟同步和总线仲裁。
2023-05-29 22:33:56
629
原创 SPI接口设计(一)
8个bit,一个bit是1M=1000ns,模块时钟是100MHz=10ns,因此一个bit是需要有100个周期的,首先设计。很明显地看出来,MOSI的输出是00110111,就是16进制的37,其他信号都是按照要求设计的。当收到din_vld=1时,产生要求的波形。其中SCK的周期为1M;一个数每个bit中的时钟周期的个数(数那100个),另一个数有多少了bit(8个bit);,我们让SCK信号在每bit中数周期的时候,数到第一个周期的时候开始变为1,数到一半变为0;此时,就完成了我们的项目。
2023-05-27 21:14:42
221
原创 SPI协议
SPI总线是一个环形的总线协议,其内部硬件简单看来实际上就是两个双向的移位寄存器,他的时序非常简单。其通信协议简单来说就是在主设备产生的有效的从设备的使能信号CS和SCK时钟信号的控制下,将两个双向的移位寄存器所存储的8位数据进行交换,如图所示,在整个数据传输的过程中遵守按位传输,高位在前,低位在后的规则。如下图所示时SPI总线数据传输的时序图:在这里有一点非常值得注意,就是SPI总线共有四种不同的传输时序,这是由时钟的极性(CPOL)和时钟相位(CPHL)这两位的组合来确定的。
2023-05-27 20:14:16
201
原创 FIFO练习二
我们可以看到有数据输入,data_in有数据,但是data_out并有数据输出,这主要是由于下游模块没有准备好,b_rdy==0;且可以看出,第一个数据是16'h03e8,最后一组数据是16'h0424;FIFO中的存储的数据q是16'h03e8,而输出data_out输出是8'h03,第二个是8'he8,与输入的数据是一致的。注意:这个题的不同点与第一题的不同点在于输出和输入的位宽不一致,data_out和data_in的位宽不一致,这就导致了,输入的一个数据,需要输出两次。溢出,丢弃该数据,不再写入。
2023-05-24 21:12:29
92
原创 FIFO练习一
可以看出:当b_rdy==0时,说明下游模块并没有准备好,因此即使有数据输入,也没有数据输出(data_out和data_out_vld都为0)b_rdy开始有为1的时候了,看得出来,有数据输出了。可以看出,两个输出信号是对齐的。时钟域的,模块首先将数据写到内部。)时,仍然有数据要写入,为了防止。溢出,丢弃该数据,不再写入。
2023-05-23 23:08:52
132
1
原创 Verilog牛客刷题(8)
在某个module中包含了很多相似的连续赋值语句,请使用generata…for语句编写代码,替代该语句,要求不能改变原module的功能。使用Verilog HDL实现以上功能并编写testbench验证。这种是直接把某一个数据的多少位赋值给另一个数据。这个题就是简单地把数据倒着再赋值给一个新的值。这个题已经规定了使用的语法。使用generate…
2023-04-23 21:35:47
111
原创 Verilog牛客刷题(4)
对于移位运算来说,我们经常用在乘除法运算中,如果运算d*37这种,我们可以通过2进制来表示37这个数,但是对于小数来说,我们就不太好进行运算,只能大致找到相近的数。比如d/37,我们把1/37这个数,进行换算,首先把分母通分成2的n次方,然后分子对应写出换算后的整数部分即可。已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上。设置好初始条件,然后当虚拟时钟开始时,把d的值赋给d_reg,虚拟时钟为其他时d_reg保持不变。
2023-04-23 21:18:13
64
原创 Verilog牛客刷题(3)
由于这里的check是wire型的,只能用assign描述,所以得先找一个reg型的变量来代替。这就引出了check_reg这个变量。^bus表示将bus的所有位置上的数据进行异或运算。拿到这个题的时候还以为是校验是奇数还是偶数呢,后来发现不是,是校验1的个数是奇数个还是偶数个,当然常见的校验位还是验证最后一位是奇数还是偶数。现在需要对输入的32位数据进行奇偶校验,根据sel输出校验结果(1输出奇校验,0输出偶校验)看不懂波形的时候,争取就是从题目和内容入手。牛客网的波形向来就有点看不太明白。
2023-04-23 19:42:09
67
原创 Verilog牛客刷题(2)
对于此题来说,我们先了解一下T触发器。T触发器可以理解为,有数据来了就把原来的数据进行反转,没数据来,就保持为原来的数据。因此,设置第一个T触发器的输出为q1,这样就有了第一个T触发器的代码。从而,用q1作为第二个T触发器的数据输入,从而q也可以进行编写。T触发器在实际应用中并不多见,用到了就这么写就行。注意rst和rst_n。异步复位的串联T触发器。
2023-04-23 19:24:06
89
原创 Verilog牛客刷题(1)
本题目描述不是特别清晰,可以从波形看出来sel的四个值控制着mux_out的四种结果。但是mux_out是wire类型的,因此必须得进行转换。设置一个reg类型的变量。一般这种题,我们先从波形入手,可以看出波形没有很明显的延时,组合逻辑。
2023-04-23 18:50:49
69
1
原创 Verilog牛客刷题(5)
题目还有一个非常需要注意的点,就是d是wire型的,在赋值的时候,我也是犯错了,这里不能直接赋值d[3:0]这些数据,所以我就设计了一个reg型的d_reg,在写第一句的时候把d赋值给d_reg,这样就能完成d到d_reg的转化。看到有两个输出信号,那么我们一个一个来,先设计out信号,再去设计validout信号;out信号类似于一个选择加法器的东西,按照这个思路,我们很容易写出来out的大体结构。由于波形很明显是有一个时钟的延时,所以就使用时序逻辑来设计out信号。题目描述: 位拆分与运算。
2023-04-23 17:40:54
65
1
原创 Verilog牛客刷题(7)
求两个数的差值的时候,也可以用在求绝对值中。在求绝对值的时候,也可以用这样类似的方法去做。题目描述:求两个数的差值。
2023-04-22 22:25:08
144
1
SystemVerilog验证方法及其UVM应用详解
2024-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人