- 博客(12)
- 收藏
- 关注
原创 定点化计算方法
两个定点化不一样的数据不能直接相加,需要定点化成一样才可以,比如U7.9+U7.8,需要把U7.8的数据在小数位补0扩展位宽,实际就变成u7.9了,不影响数值大小,那么两个u7.9相加结果就是u8.10。3、把-1023按16位宽的十六进制表示成0xFC01,其中低9bit是小数,最高位是符号位,剩余部分是整数。U7.9表示无符号数定点化,定点化后的数据位宽是7+9=16,其中小数位是7位。1、首先把-2.9*2^9=-1023.2,把小数点往后挪。S7.9表示有符号数定点化,最高位是符号位,小数是7位。
2024-09-27 15:36:18
239
原创 vivado ila烧录完之后检测不到
原因是dbg_hub的clk异常,需要用一个free running colock。添加debug信号保存之后vivado会自动选择一个设计中的时钟作为dbg_hub的clk,自动选择的clk有问题的话可以在xdc文件里修改,重新选择一个时钟。dbg_hub将多个ila code与jtag连在一起,手动选择时钟的时候可以选择所有ila code中频率最高的时钟作为dbg_hub的clk。
2024-07-08 11:19:49
1554
原创 时序约束-多个输入时钟不同步问题
FPGA如果有多个时钟输入,而且时钟之间有相位差,那么需要定下一个主时钟,其他时钟算出相对于它自己的相位差,然后在xdc或sdc文件中约束,告诉编译器它们之间的相位关系,这样跑出来的时序报告才是准的。示例:FPGA有一个20m和80m的时钟输入,80m相对于20m往后延了2.875ns,已20m时钟为0°相位,那么80m时钟的输入相位=2.875/12.5*360°=82.8°。在xdc文件中约束80m的上升沿下降沿分别是2.875和9.125,20m的是0和25ns。
2024-05-22 09:54:56
113
原创 超声小知识1
相控阵80个阵元的话,发射孔径的中心位置一般在中心阵元,深度浅,孔径小,深度深,孔径大。如pw模式,取样线移到左右两边,孔径中心还是在40、41阵元之间。焦点深度浅,孔径较小,通道之间的延时差较大,超声波夹角小;焦点深度深,孔径较大,通道之间的延时差较小,超声波夹角大。
2024-03-13 11:57:21
450
1
原创 cordic算法verilog实现求模
判断方法有两种,一是可以通过θ角度判断(θ是坐标点与x轴的夹角),如果θ大于0,则在第一象限,θ小于0,则在第四象限;二是判断Y,Y大于0在第一象限,Y小于0在第四象限(因为第一步已经将x旋转到x>0的象限了);进行cordic之前需要先把第二、第三象限的坐标旋转90°分别旋转到第一象限和第四象限(即需要旋转到x>0的象限),如果只求模不求相位角的话会更简单一些,直接对x取绝对值之后进行codic运算即可。① 将坐标(x,y)旋转90°到第一象限得到(X0,Y0)=(y,-x)如果θ>0或者Y>0,
2023-04-21 11:05:36
1838
1
原创 FPGA小白学习之路——调用rom
在这次小测试中使用的是Xilinx的ise软件 1、调用rom,并且将*.coe文件初始化进rom里 2、编写顶层模块rom_top.v 将rom例化进rom_top.v里面module rom_top( input wire clk, input wire rst_n, input ...
2018-08-12 12:11:28
9187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅