- 博客(26)
- 收藏
- 关注
原创 cordic 算法学习记录
按照上面角度的表格,通过计算可知,当迭代次数大于16次时,伸缩因子固定为0.6073,所以我们可以设置迭代次数高于16,把伸缩因子固定为0.673,在所有运算结束后再乘上去。与二分法不同的是,这里不是每次都改变二分之一的角度,而是改变二分之一的tan值,计算出对应角度,从而把复杂运算转换为简单的移位运算。根据新坐标的表达式,当输入x=1/k,y=0时,输出新的坐标为(cosz,sinz),即求出了cosz和sinz的值。输出为:新点的模长和角度。已知点(x1,y1),求旋转角度z后的坐标(x2,y2);
2023-12-11 20:23:36
2069
1
原创 FIR IP 学习记录
频率设定:pass 和stop就是过渡带的起始点,而Fs很重要,硬性要求是要大于两倍的max(Fpass ,Fstop),但是根据测试的结果,Fs只做到上述最低要求的话(刚好等于两倍或者略大一点),有时根本滤不了目标信号。在IP核中,在cofficient file中选择生成的coe文件,其他不用修改,filter type选择单时钟即可,由于vivado用的是FIR IP核,所以设计方法选择FIR,FIR中有多种选项,根据需求选择即可。在时钟这块修改频率Fs,与matlab工具箱中设置的Fs大小一致。
2023-12-05 21:58:52
671
原创 VIVADO-FFT IP核学习记录
② 找到Customizing and Generating the Core(不同手册可能题目不一样),查看IP核的创建过程中各个参数的意义和设置方法。① 找到user guide / product guide 并打开。③ 找到port description ,查看接口注释。查找别人用IP核的经验、教程,快速上手。根据用户手册使用IP核。根据网络教程使用IP核。
2023-12-04 14:12:30
3591
9
原创 DDR-MIG 学习记录
(testbench最好直接copy测试工程的,然后替换我们设计的控制模块,否则跟我一样仅仅例化了ddr3模块并连线,得到的结果是init_calib_done信号一直没有拉高)。app_ecc_single_err[7:0] : 该信号在启用ECC时适用,并且与app_rd_data_vali一起有效。为了进行逻辑设计,先打开ip的例化模板(instance module),查看它的IO口,以确定需要设计哪些信号(不要关注太多信号,容易懵,看与所需功能相关的就好);在示例设计中,该信号总是与1绑定。
2023-11-28 18:03:11
1892
原创 SDR SDRAM学习笔记(MT48LC16M16A2,w9812g6kh)
对于 SDRAM 的读写是以突发的方式进行的,对 sdram 的获取(读或者写)是从一个指定的地址开始,并按照编程好的数量(长度)的地址,以编程好的数据顺序读写数据。1.上电初始化:通过计数器使sdram处于nop状态 不少于100us后,发出一个precharge命令,经过tRP时间(一直处于nop,下同),发出一个autorefresh命令,经过tRFC时间,再autorefresh一次,经过tRFC时间,便可发出load mode register命令配置模式寄存器。2.写数据(带自动预充电)
2023-10-26 20:13:37
1475
原创 SPI学习笔记:DAC与ACD
SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器等。
2023-10-19 21:05:42
1908
原创 IIC学习笔记(参考小梅哥教程)
主机往总线上发送地址,所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向总线发出一个响应信号。每个I2C器件都有一个器件地址,有的器件地址在出厂时地址就设置好了,用户不可以 更改(例如 OV7670 器件地址为固定的 0x42),有的确定了几位,剩下几位由硬件确定(比 如常见的I2C接口的EEPROM存储器,留有3个控地址的引脚,由用户自己在硬件设计时确定)。9、读取应答信号成功,主机设置 SDA 为输出,传输待写入的数据;
2023-10-04 20:13:18
1126
原创 千兆以太网_接收模块设计_udp_rgmii_rx
千兆以太网接收模块设计,使用三段式状态机,调用原语,包含gmii转rgmii模块,仿真验证成功
2022-08-27 18:17:55
2078
2
原创 DDS信号发生器加强版(双通道,发送波形的频率可控,相位可控,种类可控)
DDS信号发生器加强版(双通道,发送波形的频率可控,相位可控,种类可控)
2022-07-15 18:07:49
1032
原创 彻底理解DDS(信号发生器)的fpga实现(verilog设计代码)
彻底理解DDS(信号发生器)的fpga实现(verilog设计代码)
2022-07-14 10:27:37
12098
7
原创 74HC595驱动(并转串,fpga与时钟匹配,fpga与外部芯片的连接注意事项)
74HC595驱动(并转串,fpga与时钟匹配,fpga与外部芯片的连接注意事项)
2022-06-18 14:25:48
1867
原创 led跑马灯多种方法(移位法,位拼接法,调用模块法,位移及位拼接语法,testbench的理解,源文件的存储路径,计数器的个数,调用模块的方式)
跟着教程写了几种方法,才发现自己写的虽然能实现,但比较繁琐。教程有三种方法:1.移位法,每次左移一位,相比我自己写的,优点是不用把每一种情况都写出来。但是需要考虑左移到最后一位时需要自己再写个赋值语句重新回到第一位。2.位拼接法,循环左移,每一次都把最后一位放到第一位,其他六位左移一位,克服了移位法的问题,简化了代码。3.调用已有模块法,调用4-16译码器刚好可以实现流水灯,需要额外的counter作为译码器的输入。移位法module led_run1( //移位法 c
2022-05-14 10:38:51
1410
原创 4-16译码器(always,case用法)
4-16译码器学习记录模块文件 1 module decoder_4_16( 2 a, 3 b, 4 c, 5 d, 6 out, 7 ); 8 input a; 9 input b;10 input c;11 input d;12 output reg
2022-05-14 10:34:48
3204
原创 FPGA开发流程(创建工程,选择芯片,变量位置,文件命名,reg和wire数据类型,开发流程)
开发流程(以二选一选择器为例)1.设计定义:设计一个可以从两个输入端中选择其中一个并输出的逻辑电路2.设计输入2.1.逻辑抽象:三个输入端,一个用来选择,记sel,另两个被选择,记a,b,加上一个输出端y。2.2.画真值表2.3卡诺图化简2.4 逻辑表达式y=(~sel)*a+sel*a或者y=if(sel==1)?a:b2.5在Vivado创建design sources 源文件并写入代码保存,然后在RTL analysis中...
2022-05-12 21:32:35
762
原创 图像处理——相位恢复(GS,TIE,改进型角谱迭代法)(已更新代码)
利用GS,TIE,改进型角谱迭代算法进行相位恢复角谱传播理论角谱传播理论可以翻阅傅里叶光学的书,就能找到定量分析的计算公式,可以分析某个平面的角谱垂直传播到另外一个平面的角谱,得到其振幅与相位信息。下面把一张图的当作一个平面的相位信息,振幅置为恒1,取d=10,20,30这三个距离计算衍射图,如下:第一张为原图,2,3,4分别为d=10,20,30衍射图。以上所得图片2-4均只包含了强度信息,没有相位信息,要用以上图片推回图1(相位物体),有两种.........
2022-05-12 12:27:14
11980
37
原创 毕业论文格式(图片题注引用,表格,公式格式)
本科毕业论文差不多写完了,记录一下一些格式,以后写作可能会用到,就可以翻起来看看。首先,如果可以找到一篇格式符合要求的word文档的话,最简单的方法就是在这个文档的基础上进行内容的修改,比较方便且快速。如果不能,那么一切格式就要自己来设置和修改了,往下看。设置图片的题注和交叉引用新建的标签决定了你题注的前缀。如把标签写为图,就得到了上图的效果。为了自动更新图片编号,我们需要选中以下选项:然后加上图片的名称,把它居中。在原文中引用时点击交叉引用即可。如下:.
2022-05-11 21:47:20
40334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人