- 博客(72)
- 收藏
- 关注
原创 ieee754浮点数1/N计算牛顿迭代法的verilog仿真代码
平台:vivado2018.3,matlabR2021b在上一篇文章中,学习了如何使用牛顿迭代法计算1/N。将输入的整数转换为ieee754单精度浮点数的格式。创建查找表,使用迭代公式计算出结果。。这里使用verilog仿真模型实现上述过程。(实际电路需要对其中乘法器加法器进行优化)
2025-03-26 17:07:50
700
原创 ieee754浮点数1/N计算牛顿迭代法的matlab代码
在上一篇文章中使用了牛顿迭代法求1/N和A/B。但是输入数据并未转换为标准的浮点数格式。下面我使用ieee754标准的浮点数计算方式来设计代码。文章地址。
2025-03-25 18:01:48
348
原创 浮点数除法运算原理和verilog仿真模型
以32位浮点数标准为例S:数符,0为正1为负。阶码e:8位,阶码=阶码真值+127。阶码采用移码来表示,即阶码真值=e-127。尾数m:23位,采用隐含尾数最高位1的表示方法,实际尾数为24位,尾数真值=1+尾数。
2025-03-24 17:53:53
267
原创 数字电路加法运算,半加器,全加器,波纹进位加法器,超前进位加法器
输入数据的bit0和cin进入全加器0,等待计算出结果后cout输入到全加器1的cin位,等待计算出结果后输入到全加器2的cin位,最后计算出的结果输入到全加器3的cin。上图是一个全加器的逻辑组成,可以看到全加器的最长路径是经过((a^b)&cin) | (a&b)经过一个异或门,在经过一个与门在经过一个异或门三级门延迟到达cout。如果我们实现一个4位数的加法器,而全加器是单bit的加法器,我们可以将全加器级联起来就得到了一个波纹进位加法器。设计一个四位波纹进位加法器所经过的延迟。
2024-10-28 19:58:03
1075
原创 IEEE754浮点数的加减运算
参考:IEEE754。IEEE754中规定了浮点数的基本运算。这些运算包括:加法,减法,乘法,除法,平方根,取余,向浮点格式整数舍入,不同浮点格式直接的转换,整形与浮点数之间的转换,二进制与十进制之间的转换,以及比较等运算。除了二进制与十进制之间的转换之外,其他运算要求先产生一个具有无限精度的中间值结果,再将该结果强制转换成目标格式。
2024-10-28 15:41:24
1528
原创 VCS和Verdi联合仿真使用学习记录
环境:linux工具:vcs,verdi最近学习如何在linux环境下使用vcs编译仿真,使用verdi查看波形。是 Synopsys 开发的一款高性能的 Verilog 和 SystemVerilog 编译仿真工具。它广泛用于数字电路设计和验证,特别是在 ASIC 和 FPGA 设计中。是 Synopsys 提供的一款高级调试和可视化工具,主要用于硬件设计的调试和分析。它通常与 VCS 一起使用,以便在仿真过程中提供更好的可视化和调试体验。
2024-09-18 17:29:52
1211
1
原创 MIPI联盟D-PHYv1.2规范阅读笔记二之物理层接口协议PPI
本文阅读自eetop.cn_mipi_D-PHY_specification_v1-2.pdf表 31 定义了物理层协议接口(PPI)中使用的信号。对于具有多个数据通道的物理层(PHY),每个通道使用一组PPI信号。每个信号被分配到六个类别之一:高速发送信号、高速接收信号、逃逸模式发送信号、逃逸模式接收信号、控制信号和错误信号。支持双向逃逸模式的双向高速数据通道几乎包括表中列出的所有信号。单向通道或时钟通道仅包括一部分信号。每个信号的方向列为 “I” 或 “O”。
2024-08-27 22:27:30
1838
原创 MIPI联盟D-PHYv1.2规范阅读笔记
MIPI 联盟成立至今制定了多种用于不同终端设备的接口标准,其中包括用于摄像头的 CSI-2。用于显示器的 DSI。用于射频的 DigRF。用于麦克风的SLIMbus等接口协议。MIPI CSI-2 协议简介两个模块之间使用差分信号传输,一对差分时钟信号,最多四对数据传输差分线。CCI兼容I2C,用于协议内物理层的参数配置。不同的厂商不同。CSI-2数据包传输准则,传输短包用于发送控制信息,长包用于发送负载数据。
2024-08-26 16:41:50
1092
原创 基于xilinx IP的频域脉冲压缩算法的实现和matlab仿真
脉冲压缩的原理脉冲压缩实际上就是对接收信号进行匹配滤波处理。根据发射的波形不同,脉冲压缩时选择不同的匹配滤波器系数。数字脉冲压缩的实现方式有两种: 一是时域卷积法; 二是频域乘积法。依据傅里叶变换理论,时域卷积等效于频域乘法,因此两种方法实际上是等效的。时域处理方法直观、简单,但是运算量大,工程上一般采用频域法。
2024-08-16 17:15:43
1550
3
原创 关于xilinx的FFTIP的使用和仿真
工具:vivado2018.3,modelsim10.6d场景:在进行数据进行频谱分析的时候,使用FPGA来完成FFT的计算可以加快数据的计算速度。下面使用仿真完成DDS产生的数据的FFT以及IFFT。原始数据使用DDSIP产生,通过IP产生的波形数据直接输入到FFT进行傅里叶正变换。然后再使用FFT对数据进行IFFT傅里叶逆变换还原波形数据。过程中完成了fftshift(将零频分量搬移到频谱中心),以及使用cordic计算平方根的过程。
2024-08-15 10:05:03
1670
4
原创 AD9164配置学习
芯片:AD9164场景:在调试高速DAC的过程中,在接口调试的初期往往会遇到接链不成功,同步信号忽高忽低的过程。这种情况往往是DAC芯片的寄存器配置不正确。今天就来仔细学习一下AD9164的配置。
2024-07-26 16:34:11
1770
2
原创 JESD204B学习与仿真
LogiCORE™ IP JESD204 内核实现了一个 JESD204B 接口,在使用 GTX、GTH、GTP 或 GTY(仅限 UltraScale 和 UltraScale +)收发器的 1 至 8 条通道上支持 1 至 12.5 Gb/s(1)的线路速率。有关每个器件和系列所支持的最大线路速率,请参阅器件数据表。JESD204 内核可以配置为发送或接收,并且可以使用多个内核来实现需要超过 8 条通道的链路。发射机(对应DAC)
2024-07-23 18:32:00
2206
7
原创 时钟芯片LMK04828调试记录
应用场景:在一些高速ADC和DAC的芯片中,需要时钟芯片对其提供专用的高速时钟,并且往往伴随这jesd204b的时钟产生。所以使用时钟芯片来产生同源时钟。
2024-07-22 18:02:13
2566
1
原创 编辑工具GVIM功能展示
平台:Gvim8.2在编辑verilog代码的过程中,为了代码的规范性,往往需要手动对齐。为了提升效率,这里使用GVIM编辑器自动完成上述功能。下载地址功能展示。
2024-07-22 16:45:53
623
1
原创 Vivado生成网表文件并创建自定义IP
平台:vivado2018.3应用场景,在设计的过程中,我们一些特定的模块需要交付给别人,但是又不想让他们看到其中的源码。就可以将源码封装成网表和IP文件。
2024-07-22 15:34:22
2342
原创 验证Vivado布局布线不变
平台:vivado2018.3应用场景,在设计的过程中,一些特定的引脚,我们想在原有的基础上不改变其布局布线方式。
2024-07-22 14:39:21
2245
原创 关于普通接口转AXI接口AMM Master Bridge仿真和使用
应用场景,在设计的过程中,在xilinx内部的IP采用AXI接口协议。而我们外部的FIFO,BRAM等接口有时候使用的Native接口。在avs_read_s0为1和avs_waitrequest_s0为0时读使能握手成功。从上面可以看出来,官方给出的指示在时钟为200MHz时,在理论带宽为6.4Gb/s时,不同的BL位宽的吞吐量。IP可以将Avalon接口读写在内部仲裁转换为AXI接口读写。可以看到在avs_write_s0为1和avs_waitrequest_s0为0的情况下写入有效。
2024-07-16 10:23:08
1611
原创 调频信号FM的原理与matlab与FPGA实现
其中cordic的角度范围表示为(-pi,pi)。在逻辑中有几种产生正余弦波形的方式,基于DDS的波形发生器,基于cordic的波形发生器。余弦波时,积分量在0,pi和2pi时最小,对应着在0时频偏最小,在pi/2时频率与载波相同,在pi时。逻辑实现现在假定调制波为1mhz,载波为8mhz,最大频偏为2mhz,采样率为512mhz。载波也是一个余弦波,调制波的频率随着调制波形的积。其中p为频率控制字,pi为载波的频率控制字,po为频偏控制字。Fm频率调制,载波的幅度随着调制波形的幅度变化而变化。
2024-06-26 22:58:25
2043
原创 调幅信号AM的原理与matlab实现
上式说明,由正弦波调制的调幅信号由三种频率成分组成:载波、载波和调制频率的差频(下边带)、载波和调制频率的和频(上边带)。调幅波所占的频谱宽度等于调制信号最高频率的两倍。>1,已调波的包络会出现严重的失真,而不能恢复原来的调制信号波形,也就是产生过量调幅。调幅就是使载波的振幅随调制信号的变化规律而变化。为调制指数,它的范围在(0,1)之间,如果。当调制波为正弦波时的时域波形。当调制波为三角波时的时域波形。当调制波为锯齿波时的时域波形。当调制波为正弦波时的频域波形。当调制波为方波时的时域波形。
2024-06-25 23:18:21
1820
原创 软件无线电学习-数字上变频DUC数字下变频DDC
如第3章中软件无线电接收机数学模型所述,在软件无线电接收机中,首先对射频模拟信号或者是宽带中频模拟信号通过模数转换器进行数字化,然后,采用数字下变频(DigtalDownConverter,DDC)技术和多速率数字信号处理技术,对信号进行频率变换、滤波、抽取等处理,将感兴趣信号分离和提取出来,并将采样速率降低到较低速率,送到基带信号处理单元对感兴趣信号进行后续处理。三种数字上变频技术的原理、适用场合在第3章中已进行了详细的论述,所以,这里仅对数字正交混频上变频的实现进行简单介绍。变成两路I和Q信号。
2024-06-03 23:38:27
921
原创 软件无线电学习-发射机体系结构
软件无线电发射机的主要功能是把需发射或传输的用户信息(话音、数据或图像)经基带处理(完成诸如FM、AM、FSK、PSK、MSK、QAM 等调制)和上变频,调制到规定的载频(中心频率)上,再通过功率放大后送至天线,把电信号转换为空间传播的无线电信号,发向空中或经传输介质(如电缆、光缆)送到接收方的接收机前端,由其进行接收解调。设置采样率为5ghz,基带信号为50mhz,nco本振为100mhz,第一步先求出基带信号的IQ信号,在求出正交本振cos和sin。分别表示该信号的幅度调制信息和相位调制信息,
2024-05-29 21:02:48
622
原创 matlab工具使用记录-编辑器和命令行窗口分开还原
场景:在使用软件的过程中,我们误操作将matlab的编辑器单独出来了。这时候对软件进行各种操作都还原不回去。这时候只需要使用快捷键在编辑器窗口按Ctrl+shift+D,这时编辑器和主窗口就合并在一个界面里了。matlab中编辑器和命令行窗口分开了如下图所示。工具:matlab2021b。
2024-05-29 20:06:29
3416
原创 软件无线电学习-第二代移动通信系统过程理解
第二代移动通信系统的最大不同是采用了数字调制,这也就为采用新的TDMA、CDMA 多址方式奠定了基础:另外信道带宽也从模拟体制的30/25kHz提高到了 200kHz和1.25MHZ(D-AMPS除外)。由此可见,移动通信经历了从模拟无线电到数字无线电,再从数字无线电到软件无线电的。下面我们模拟该过程。它主要特点是通过二次变频的射频前端把射频信号变为中频信号(图中的一中频频率为71mhz,二中频频率为6mhz)后,首先进行A/D采样数字化,把模拟信号变为数字信号,再由信号处理器(DSP)完成解调任务。
2024-05-24 10:32:36
785
原创 学习笔记------时序约束之时钟周期约束
用于axi处理的时钟是125mhz,这里就将该时钟命名为clk_125mhz,其他模式为了统一,也就使用了该名字去写代码,但是在于实际过程中,发现gen2的速度不够,改为gen3,这时候axi时钟就来到了250mhz,往往在调试的过程中,这个时钟的名字大家都不愿意时刻修改,造成了实际使用的250mhz时钟而时钟名字又叫clk_125mhz这样的误解。第二种就是用户使用逻辑生成的时钟。对于上述的这些时钟,工具会自动的根据其与输入时钟的关系自动推断出时钟周期、占空比,以及该时钟与输入时钟的相位关系。
2024-04-17 14:14:52
1947
原创 学习笔记------时序约束之步骤
这些时钟包括从全局时钟引脚进入的时钟,MMCM/PLL生成的时钟,高速收发器提供的时钟,以及用户逻辑生成的时钟。此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。使用他约束上述2-4步骤后,每一步都可以通过专用的tcl命令来查看约束是否生效,用以验证约束正确性和有效性。在学习时序约束之前,先学习一下时序约束的步骤,方便后续查看一个整体的FPGA工程是否完成了所有的时序约束。第二步,针对输入/输出延迟约束,可能会涉及虚拟时钟。本文摘自《VIVADO从此开始》高亚军。
2024-04-15 17:46:19
371
原创 学习笔记------约束的管理
这类路径起点模块和终点模块均为同一时钟驱动的时序逻辑(通常为寄存器,寄存器可以是SLICE中的,也可以是BRAM或者DSP48内部)。所以一个完整的工程往往会包含时序约束,物理约束,调试约束。此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。从图中可以看出,一个完整的时序路径由源时钟路径,数据路径和目的时钟路径三部分构成。简单来说,就是需要在FPGA芯片中的电路,从输入到输出的时间,要系统的时钟周期内完成。这四类路径中,最为核心的标记是2同步时序路径。
2024-04-15 16:59:21
577
原创 matlab关于COE文件之读取操作
场景:在使用fir滤波器后,我们使用matlab生成coe文件后。在xilinx新建IP的后,数据流经过FIR的IP核后数据位宽变宽。这时候我们需要对数据进行截位。这时候需要读取coe文件求和后,计算我们需要截位的位宽。下面时使用matlab读取coe文件的函数。
2024-04-10 11:59:54
1765
1
原创 UltraScale 架构 SelectIO 资源之IODELAY与IOSERDES仿真与使用
在调试超高速信号的时候,需要使用iodelay+iserdes来调试校准输入信号。例如外部某ADC采样率为5GHZ,外部ADC使用2.5GHZ的时钟去采集输入信号。为了实现采集,adc芯片使用了4个1.25ghz采样率的小ADC来采集。但是由于FPGA的工艺,在FPGA内部无法处理高达1.25ghz的信号。外部信号采用并行数据输入,在双边沿采集信号。输入随路时钟为625mhz的双边沿数据。但是对于一般的工程,内部时钟跑到625mhz对于FPGA的时序要求太高。
2024-04-07 10:39:57
2869
9
原创 Xilinx IDDR及ODDR使用和仿真
外部的数据在时钟的上下沿同时传输数据,我们可以使用IDDR原语将输入的单bit数据转化为2bit的数据输出。同时数据速率变为原来的二分之一。数据呈现到相同时钟边沿的FPGA逻辑中。与SAME_EDGE模式不同的是,数据在第二个时钟周期输出一对数据。与IDDR相反的是,ODDR将内部的2bit数据,转换为单bit数据输出。数据呈现到同一时钟边沿上的FPGA逻辑中。时钟的两个边沿 (CLK) 都用于以两倍的吞吐量从 FPGA 逻辑捕获数据。输出adc_dq_p,adc_dq_n。平台:Vivado2018。
2024-03-27 14:31:53
1773
原创 [Labtools 27-1429] XML parser encountered a problem in file
最近在使用vivado的debug过程中发现,编译好工程后打开open hardware manager出现如下错误。在备份工程中相同路径下找到该文件,替换到已经损害的这个。平台:Vivado2108.3。按照路径,找到该文件。
2024-03-19 11:36:35
3040
2
原创 ERROR: [Labtools 27-1832] create_wave_config not a supported tcl command in labtools hardware mode.
在调试vivado在线debug过程中,发现无法显示波形。平台:Vivado2018.3。
2024-03-19 10:54:02
1658
原创 PID闭环控制算法的学习与简单使用
PID控制算法是一种闭环控制算法。在工业中被广泛应用。在PID系统框图中,整个系统包括比较器、PID控制器和控制对象,其中PID控制器包括三个模块,比例(P),积分(I)和微分(D)。
2024-02-29 10:19:04
1685
原创 卡尔曼滤波器算法的学习与简单使用
在实际的应用中,模拟信号在经过adc采集后转换为数字信号,但是这个转换的值往往会有很大噪声,这里我们使用卡尔曼滤波器对采集的数据进行滤波处理。例如,我们使用信号源输出一个1v的直流电,经过adc转换后测试得到一组数据,t0时刻0.995v,0.999v,1.005v。因为我们输出信号为1v始终没有改变,所以我们预测现在的电压依旧是1v。但是真实的电压是多少呢,是我们相信信号源输出的1v,还是相信我们adc采集的电压0.995v呢?这时候就可以使用卡尔曼滤波器来对采集的数据进行滤波处理。
2024-02-27 20:43:41
959
原创 xilinx除法器的使用
被除数位宽2-17,除数位宽2-17(被除数和除数位宽之和限制在23位以内)支持无符号或二进制补码有符号数。-1+(-2),及255+254=509,(111111101),低八位就是-3的补码11111101。1+(-1),即1+255=256,(100000000),低8位就是0的补码00000000。例如8位无符号数就代表的十进制数的范围为[0,2^n-1]。-1,二进制补码为11111111.(代表无符号数为255)-2,二进制补码为11111110.(代表无符号数为254)
2024-02-19 09:51:00
1829
原创 问题记录:关于xilinx不同模式的fifo计数器
平台:Vivado2018.3.芯片:xcku115-flva1517-2-i (active)最近在学习的过程中总结了关于xilinx的不同fifo的计数器。关于不同fifo的计数器表现的特征不一致。特此记录一下。
2024-01-26 15:39:00
555
原创 问题记录:关于vivado报错解决
ERROR: [Project 1-510] Parsing generated run data failed问题解决
2024-01-10 15:13:11
1283
原创 Xilinx的FIR滤波器IP的设计与仿真
Number of Coefficient Sets多个系数集,对于多系数过滤器,单个.coe文件用于指定系数集。采样率为50mhz,通带起始频率为100KHz,阻带起始频率为1MHz。在经过一段时间的仿真后,我们看到通过模拟产生的正弦波数据的高频分量在FIR滤波器的作用下只保留了低频部分。采样率为50mhz,通带起始频率为100KHz,阻带起始频率为1MHz。这里我们选择coe文件,我们直接从matlab中生成的coe文件。CONFIG通道用于选择活动的滤波器系数集。同样的,选择输入数类型,数据位宽。
2023-10-24 08:00:00
2892
原创 Xilinx DDR4 MIG 的调试
DDR4介绍DDR4,即第四代双倍数据率同步动态随机存储器SDRAM。前面我们学习过DDR3,DDR2。那么DDR4相比他们又提升在哪里呢?新建BD工程:此部分为搭建PCIE控制DDR4的工程。
2023-10-19 18:05:31
5686
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人