FPGA专栏_verilog
文章平均质量分 72
FPGA内容:Xilinx,lattice,altera,复旦微,紫光同创,安路。verilog语法用法,激励综合仿真测试。PCIE,万兆网,光通信,SRIO,FFT,1553B等高速接口。
寒听雪落
软件著作权申报45天包下证,两位数价格,可联系
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ISE软件iMPACT - BIT生成MCS并固化
>选择"->"符号->Storage device(bits)=32M->add Storage Device。选择第二个绿色"->",->命令output File Name->Output file location->file format->OK。1,打开菜单栏,Xilinx Design Toos->ISE Design Suite 14.7->ISE Design Tools->64 bits Tolls->iMPACT。9,右键FLASH图标->选择Program。7,选择device。原创 2024-06-10 09:46:20 · 3363 阅读 · 0 评论
-
FPGA SPI采集ADC7606数据
当数据完成转换后,CS为电平期间,每个时钟的上升沿完成数据的采样,这里有一个FRSTDATA的表中,代 表每次转换的第一个数据,这里实际可以不用这个信号,因为每次CS之后的第一个上升沿时钟我们就是开始采样数据,每16次完成一路ADC的采集。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。在5us的采样周期内,可以看到convsta/convsta从高到低后,AD转换开始,busy信号变高,之后CS变低,可以看到CS的结束在busy信号后,所以可以确保最后读取的数据时已经转换好的数据。原创 2024-06-07 10:25:47 · 1839 阅读 · 1 评论
-
verilog报错处理集合
解决方案:在约束中添加。set_property SEVERITY {Warning} [get_drc_checks NSTD-1]set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]set_property SEVERITY {Warning} [get_drc_checks UCIO-1]原创 2024-06-07 10:47:52 · 694 阅读 · 0 评论
-
verilog阻塞和非阻塞语法
当我们的时钟跑的比较慢的时候,比如50M,一个周期有20ns,那么这么短暂的延时基本可以忽略不计,但是随着设计的复杂,时钟速度提高就不能忽略。符号“<=”用于非阻塞赋值,非阻塞赋值是由时钟节拍决定,在时钟上升到来时,执行赋值语句右边,然后将 begin-end之间的所有赋值语句同时赋值到赋值语句的左边,注意:是begin—end之间的所有语句,非阻塞赋值,A和B和C是同时被赋值的,具体是说在时钟的上升沿来的时刻,A和B和C同时被置1,一起执行且一个时钟只执行一次,属于并行执行语句。整个过程耗时一个时钟。原创 2024-06-07 10:42:18 · 479 阅读 · 0 评论
-
verilog 232串口通信程序
通常串口的一次发送或接收由四个部分组成:起始位S、数据位D0~D7(一般为 6 位~8 位之间可变,数据低位在前)、校验位(奇校验、偶检验或不需要校验位)、停止位(通常为1位、1.5位、2位)。在一次串口通信过程中,数据接收与发送双方没有共享时钟,因此,双方必须协商好数据传输波特率。通常对串口进行数据采样,采用更高频的时钟。具体的工作流程为:发送端按照预先设定好的波特率,发送起始位(Start)+数据位(data)+奇偶校验位+结束位。起始位为逻辑 0,结束位为逻辑 1,发送端在空闲状态为 1。原创 2024-06-07 10:05:48 · 349 阅读 · 0 评论
-
verilog格雷码转换电路
年发明的,最初用于通信。格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于这种特点,就可以避免二进制编码计数组合电路中出现的亚稳态。使用格雷码的最高位作为二进制的最高位,二进制次高位产生过程是使用二进制的高位和次高位格雷码相异或得到,其他位的值与次高位产生过程类似。二进制的最高位作为格雷码的最高位,次高位的格雷码为二进制的高位和次高位相异或得到,其他位与次高位类似。个bit发生跳变,注意,这种情况只适用于二进制依次累加的时候,如果二进制变化没有任何规律,那么格雷码也可能发生多 bit。原创 2025-03-07 11:59:50 · 180 阅读 · 0 评论 -
使用Modelsim手动仿真
3,在“Project Name”栏中填写工程名,这里的命名方式,建议大家最好根据仿真的文件来进行命名,时间久了,当我们记不得这个仿真工程是用来仿真什么的时候,我们看到这个工程名,就能够知道它是用来做什么的了。前面的几个放大镜模样的工具是放大、缩小和全局显示功能,鼠标放到图标上会显示出它们的快捷键,后边的黄色图标是用来在波形图上添加用来标志的黄色竖线,紧跟着的是将添加的黄色竖线对齐到信号的下降沿和上升沿。这时,仿真的对象为HDL代码,可以比较直观的观察波形的变化,在设计的最初阶段发现问题,节省大量的精力。原创 2025-03-07 11:41:29 · 337 阅读 · 0 评论 -
HMC7043和HMC7044芯片配置使用
HMC7044时钟抖动衰减器可在数据转换器系统中产生源同步且可调的样本和帧对齐(SYSREF)时钟,使JESD204B系统设计得以简化。第一个PLL将一个低噪声、本地压控时钟振荡器(VCXO)锁定至噪声相对较高的参考,而第二个PLL将VCXO信号倍频至VCO频率,仅增加非常小的噪声。对于蜂窝基础设施JESD204B时钟产生、无线基础设施、数据转换器时钟、微波基带卡和其它高速通信应用,HMC7044架构可提供出色的频率产生性能,相位噪声和积分抖动均很低。(4),寄存器地址参数控制配置。原创 2025-03-04 16:00:04 · 1864 阅读 · 1 评论 -
Vivado常用的时序约束方法
因此,模块内部的延迟可以小很多。这些命令包含了对时钟的约束create_clock和对I/O的约束set_input_delay /set_output_delay,以及一些时序例外set_false_path。如果我们在两个时钟间的至少一个路径上使用了set_max_delay,那么就不能在相同的时钟之间使用set_clock_groups约束,而且set_false_path约束仅用于两个时钟之间的其它路径上。如图所示,没有约束PLL输出时钟,但是最后的时序分析报告中仍然有显示PLL输出时钟的频率。原创 2025-03-04 15:49:38 · 983 阅读 · 0 评论 -
Vivado时序分析设计
一般我们设置为几百M时钟情况下,如果代码写的非常复杂,也有可能出现时序不满足,这种情况我们就需要做时序优化了,时序优化的方式有很多种,比如在长的路径中插入一些寄存器,简化逻辑运算,还可以把相关的逻辑约束在一个区域中等等。,说明时序是满足的,分数是负的,说明时序是不满足的,负分越大,说明时序越差,时序负分过大会导致功能可能出问题,所以我们的时序优化的效果可以参考负分的变化。是更细致的时序路径,每个路径的延迟都有具体的数值,分析时序特别方便,此处可以看出Vivado软件非常强大和人性化。clkwiz.xdc。原创 2025-03-04 15:33:47 · 160 阅读 · 0 评论 -
verilog reg和wire和assign语法
要是出现不能给input赋值,那么就reg产生一个输出,与它进行封装连接,直接操作reg就可以了;在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。assign 相当于一条连线,将表达式右边的电路直接通过 wire(线)连接到左边,左边信号必须是 wire 型(output和 inout属 wire型)。如:wire clk;reg 关键词,寄存器。原创 2025-03-04 02:00:00 · 545 阅读 · 0 评论 -
Quartus TimeQuest时序设计
在开始全编译之前,需要将SDC 文件添加到工程中。在QuartusII软件的Assignments菜单栏中选“Settings”,然后在左侧Category一栏选中“Files”,在右侧通过浏览来选择filtref.sdc,点击“Add”将其添加到工程中,然后先后点击下方的“Apply”、“OK”。在GUI 中输入set_false_path后,所有生成的报告面板上都标有“Out of Date”,这表明报告面板不包含反映TimeQuestTiming Analyzer 中当前状态的约束的结果。原创 2025-03-04 04:00:00 · 493 阅读 · 0 评论 -
FPGA时序约束的几种方法
时钟约束是最基本的一个约束,因为FPGA工具是不知道你要跑多高的频率的,你必要要告诉工具你要跑的时钟频率。时钟约束也就是经常看到的Fmax,因为Fmax是针对“最差劲路径”,也就是说,如果该“最差劲路径”得到好成绩,那些不是最差劲的路径的成绩当然比“最差劲路径”好。好的时序是设计出来的,不是约束出来的。好的约束必须以好的设计为前提。不过,通过正确的约束也可以检查设计的优劣,通过时序分析报告可以检查出设计上时序考虑不周的地方,从而加以修改。应该说,设计是约束的根本,约束是设计的保证,二者是相辅相成的关系。原创 2025-03-03 14:32:42 · 614 阅读 · 0 评论 -
时序分析和约束
下图完整的展示了 4 种时序路径,下图主要包括三个芯片器件,分别是Device A,FPGA Device 和Device B,这三个芯片可能位于一个电路板上面,也可以位于不同的电路板上面,但是三个芯片都是使用的同一个时钟,即图中的Board Clock。端口到端口的路径(dinb 到 dinb 绿色),这个部分包括1个延迟,即Data Path Delay(FPGA 内部的组合逻辑和数据走线延迟)。从 device A 的时钟到 FPGA 的第一级寄存器的输入端口,这个部分包括3个延迟,分别是Tco(原创 2025-03-03 00:15:00 · 245 阅读 · 0 评论 -
FPGA如何处理浮点运算
hls浮点协处理:在应用中如果出现需要进行大量浮点或其它类型数据运算的情况,此时占用大量CPU时间,如果将这类算法放到FPGA,CPU只需要发起请求和读取结果,将缩短时间。这里的hls ip模块由CPU指定float类型数据存放地址和数据长度,求求它们的平均值。计算完成后通过中断方式通知CPU。FPGA开发遇到碰到浮点数处理,使用浮点数运算IP(Floating-point),这个IP为AXI接口,输入和输出都是IEEE 754格式,就是计算机表示浮点数的格式。原创 2025-02-25 16:44:24 · 428 阅读 · 0 评论 -
FPGA配置加载流程
一,FPGA配置引脚说明1,配置相关电源如果VCCO0连接至2.5V或3.3V,CFGBVS连接至VCCO0。如果VCCO0连接至1.5V或1.8V,CFGBVS连接至GND。建议bank0、bank14、bank15的VCCO电压一致,避免出现I/O Transition at the End of Startup 2,配置流程 二,FPGA开启启动加载的方式 1,上电自动加载:就是在FPGA完成上电初始化完成后,由FPGA主导从外部存储器读取位流,此时CCLK为输出;或者由其它主控制器来主导从外部原创 2022-04-25 00:03:34 · 12260 阅读 · 0 评论 -
vivado2017.4和vitis2019.2安装步骤
11,连接下载器到虚拟机(部分 win10 版本会导致虚拟机死机,虚拟机软件,软件版本大于 15.5.1)连接开发板和下载器,使用“Open Hardware Manager”测试,正常情况下可以发现芯片,说明 Vivado 和下载器驱动安装成功。7,设置权限输入:sudo chmod 777 -R /tools/Xilinx/安装路径使用默认路径,点击“Next”就开始安装,如果提示创建文件夹,点击“yes”,安装时间有点长。3,安装过程关闭杀毒软件,如果弹出这些窗口,都点击“Ignore”原创 2020-08-11 00:16:25 · 18936 阅读 · 0 评论 -
vivado修改下载器下载速率
第一种方法可以不用修改下载速度,直接先从vivado中将bit流下载进FPGA或者在sdk里program fpga。第二种方法可以更改设置,在sdk项目右右键Debug as选择Debug Configurations,最后一项System Debugger把program fpga勾选上,这样在启动时就会先把比特流加载进去。原因是下载器速度太快了。先从任务管理器中关闭hw_server.exe试一下,要是不行就按下面三种方法解决。第三种办法是从vivado中降低下载器速度,比如从。原创 2025-02-22 16:46:57 · 1162 阅读 · 0 评论 -
AD9914数字斜坡模式使用
类似的,如果DRG输出处于负斜率斜坡中间,DRCTL引脚由逻辑0变为逻辑1,那么DRG会立即切换成正斜率参数,恢复在两个限值之间振荡输出。当两个非驻留位同时设置时,每次DRG输出达到编程设定的上限值或下限值后(假定DRG过输出使能位(0x01[13])已设置),DROVER信号会产生一个正脉冲(两个DDS时钟周期)。不过,在非驻留操作中,DRG输出不一定保持在上下限值。例如,设置数字斜坡非驻留高位,则当达到上限值时,DRG会自动(立即)跳到下限值(这一过程并非以斜坡方式返回下限值,而是直接跳至下限值)。原创 2020-08-09 11:10:30 · 3688 阅读 · 0 评论 -
AD9917操作控制
一,寄存器配置`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 16:46:48 12/03/2020 // Design Name: // Module Name: ad9117_config // Project N原创 2020-12-04 14:18:24 · 1014 阅读 · 0 评论 -
vivado实现FFT和IFFT信号处理
一,FFT的物理意义 FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外在频谱分析方面,FFT可以将一个信号的频谱提取出来。一个模拟信号,经过ADC采样(采样频率要大于信号频率的两倍)之后,就变成了数字信号。采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。 ...原创 2021-04-15 01:11:43 · 8167 阅读 · 13 评论 -
复旦微开发过程中遇到的问题总结(一)
IAR 报这个错误:原因是存储空间分配不够,建议把程序放到DDR上运行,内部sram是不够用的解其次bank电压也要配置正确,PL串口电压要配置为3.3V,具体参考appn101文档。电压配置不正确的话,串口只能发送不能接收。reworks下面没有reboot软复位加载前关掉user level shift寄存器关掉这个寄存器,加载pl bit的时候就不会设备树没指定速率,是配置ip又自协商了。主芯片是FMQL45T900,网络硬件识别是正常100M,不支持4线的QSPI模式。我现在是2片各挂一片的应用,这原创 2022-07-01 21:27:51 · 5876 阅读 · 0 评论 -
复旦微开发过程中遇到的问题总结(二)
复旦微用第三方烧写工具烧写到flash,启动时候fsbl是新的,但app总是跳到之前烧写过的一个程序中?全片擦除flash,只会把fsbl给擦掉,这个旧的用户程序一直存在。从新下载,还是擦除都会从那个旧的用户程序启动。原因:检查一下打包boot.bin时是否有问题,应该就是打包成boot.bin出现的问题默认时钟是200M,修改时钟为50-100M之间,我改的120M7045程序跑起来以后,有什么办法通过串口给ps发指令,然后通过pl jtag在线加载bit,不重新加载,也就是能随时在线跟新PLbit程序原创 2021-12-09 21:29:19 · 7970 阅读 · 3 评论 -
复旦微开发过程中遇到的问题总结(三)
6, 分别改了CPU1的irom.icf的RAM地址范围和cstartup.s文件的启动核心,FSBL的main文件增加了CPU1唤醒代码,但是还是无法双核启动,现在的情况是CPU1能进main函数,CPU0不能进main函数,CPU0会进入cstartup.s的EndlessLoop0循环出不来,单独运行两个CPU程序都能运行,是还需要改什么地方才能双核运行呢?45T900没有这个配置文件。3,这个函数是刷新cache用的,我们是想双核调试禁用交互区的cache属性,有相关的函数吗?原创 2021-12-12 18:26:48 · 8510 阅读 · 0 评论 -
仿真器当做串口使用
把仿真器当成串口来用,按图片来设置,和串口打印的效果一样的。然后run as 或者 debug as 把程序运行起来。这时候就能看见串口打印。原创 2025-02-22 16:28:46 · 75 阅读 · 0 评论 -
FPGA器件时序模型
虽然连接两个相邻Cell的连线不被看作Net,但这个连线还是有其物理意义的,即等价于FPGA器件中的一段布线逻辑,会引入一定的延迟。时序分析工具会依据仿真需求,使用不同的PVT组合,用于STA分析,因为实际的ASIC/FPGA芯片也存在不同的PVT组合,每种组合的时序模型是不一样的,因此STA需要分析各种情况下的组合。(2) Data paths:从输入Port到寄存器Cell的数据输入pin ,或从寄存器Cell的数据输出 pin 到另一个寄存器Cell的数据输入pin。对应已经分配的器件引脚。原创 2025-02-22 16:16:08 · 234 阅读 · 0 评论 -
lattice hdl实现spi接口
定义硬件SPI接口的管脚。配置SPI时钟和模式。编写SPI主机或从机的控制逻辑。顶层:spi_slave_top.v。原创 2025-02-22 15:41:12 · 301 阅读 · 0 评论 -
TCL编译生成IP核或block design工程
对tcl来说,它要处理的数据只有一种字符串。(3)打开hdl-2018_r1\projects\adv7511\zed\adv7511_zed.sdk\hdmi\src目录,把下载好的测试程序文件Xilinx\zedboard\no-OS-master\no-OS-master\adv7511\zed目录下的所有文件拷贝过来。语句运行的时候首先分组(分组有三种方法:空格,双引号和花括号),然后替换($的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点),最后运行。原创 2025-02-22 15:32:23 · 257 阅读 · 0 评论 -
FPGA开发synthesis和implementatin作用
逻辑分析仪(需要引出大量的测试引脚)是FPGA设计主要调试工具,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(Xilinx ISE中的ChipScope,Xilinx vivado中的ILA,Altera QuartusII中SignalTapII以及SignalProb)来解决上述矛盾,实用价值很高,这些在线逻辑分析仪只需要占用芯片少量的逻辑资源。大部分的流程步骤还是需要我们循规蹈矩的去做,因为这些步骤的输入是上一个步骤的结果,输出是下一个步骤的输入的关系。布局的过程就是将门级网表中的每一个门“原创 2025-02-22 15:20:11 · 245 阅读 · 0 评论 -
FPGA aurora_8b10b光通信使用
从 s_axi_tx_tvalid 到 m_axi_rx_tvalid 的默认四字节帧设计的最小延迟在功能仿真中大约为 41 个 user_clk 周期。Aurora 8B/10B IP 协议提供了替代方法执行单向通道初始化,使 GTP,GTX 和 GTH 收发器在没有反向通道的情况下使用,降低由于未使用的全双工资源而造成的成本。从 s_axi_tx_tvalid 到 m_axi_rx_tvalid 的两字节成帧设计的最小延迟在默认核心配置的。所需的随机空闲字符,并监视所有通道逻辑模块的错误。原创 2025-02-22 08:00:00 · 158 阅读 · 0 评论 -
DDS信号发生器产生载波FFT变换
SCALE_SCH:放缩倍数,只有在选择放缩定点时有效,占比特数:基四和流水线结构下为2×ceil(NFFT/2) 基二和简化基二结构下为2×NFFT 每两个比特表示突发型一级或流水线型两级(排序从最后到最先)的放缩倍数(00 01 10 11),注意当基四结构下点数不是4的整数倍时,最后一级只占一比特,即00 01。AXI4-Stream协议中的握手信号s_axis_config_tready和s_axis_config_tvalid,配置信息s_axis_config_tdata信号。原创 2025-02-22 00:15:00 · 140 阅读 · 0 评论 -
ZYNQ RapidIO IP核协议与使用
一,RapidIO各个子核和接口的基本功能视图 RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。RapidIO核把三个子核封装在一起,它提供了一个高层次,低维护的接口。逻辑层分成几个模块来控制并解析发送和接收数据包,逻辑层有三个接口:用户接口(User Interface) (包括能发起和接收包的端口),传输接口(Transport Interface)和配置接口(Configuration Fabric Interface)。R原创 2025-02-21 16:59:11 · 505 阅读 · 0 评论 -
JTAG烧写固化程序步骤
比如输入:petalinux-package --boot --fpga system.bit --u-boot --add boot.scr --offset 0xfc0000 --kernel --force 打包内核,设置偏移。petalinux-package --boot --fsbl --fpga --u-boot --kernel --force ,打包内核,默认偏移。勾选对应位置 点击OK。生成完整的启动文件,包含上面所有组件的启动镜像生成BOOT.BIN,适合vivado烧写。原创 2025-02-21 07:00:00 · 291 阅读 · 0 评论 -
MMCM/PLL例化和使用
打开IP核的例化模板,在“Source”窗口中的“IP Sources”选项卡中,依次用鼠标单击展开“IP”“clk_wiz_0”-“Instantitation Template”,我们可以看到“clk_wiz.veo”文件,它是由IP核自动生成的只读的verilog例化模板文件,双击打开它,在例化时钟 IP 核模块的时钟,直接从这里拷贝。PLL 对时钟网络进系统级的时钟管理和偏移控制, 具有时钟倍频、分频、相位偏移和可编程占空比的功能。“Port Renaming”选项卡主要是对一些控制信号的重命名。原创 2025-02-21 00:30:00 · 114 阅读 · 0 评论 -
Verilog状态机
不同于一段式状态机的是, 它需要定义两个状态, 现态和次态,然后通过现态和次态的转换来实现时序逻辑。三段式:在两个always模块描述方法基础上,使用三个always模块,一个always模块采用同步时序描述状态转移,一个always采用组合逻辑判断状态转移条件,描述状态转移规律,另一个 always模块描述状态输出(可以用组合电路输出,也可以时序电路输出)。摩尔状态机的模型如下图所示,对比米勒状态机的模型可以发现,其区别在于米勒状态机的输出由当前状态和输入条件决定的,而摩尔状态机的输出只取决于当前状态。原创 2025-02-20 03:00:00 · 130 阅读 · 0 评论 -
always和assign语法区别
在always不带时钟时,逻辑功能和assign完全一致,都是只产生组合逻辑。比较简单的组合逻辑推荐使用assign语句,比较复杂的组合逻辑推荐使用 always语句。在always不带时钟时,逻辑功能和assign完全一致,虽然产生的信号定义还是reg类型,但是该语句产生的还是组合逻辑。always带时钟信号时,这个逻辑语句才能产生真正的寄存器。二,带时钟的always和不带时钟的always 区别。always语句可以带时钟, 也可以不带时钟。assign 语句使用时不能带时钟。原创 2025-02-20 00:15:00 · 661 阅读 · 0 评论 -
verilog基础知识
Verilog推出已经有20年了,拥有广泛的设计群体,成熟的资源,且Verilog容易掌握,只要有C语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在1个月左右掌握这种语言。C语言是软件语言,编译下载到CPU后是软件指令,而不会根据你的代码生成相应的硬件电路,CPU处理软件指令需要取址、译码、执行, 是串行执行的。关系运算符主要是用来做一些条件判断用的,在进行关系运算符时,如果声明的关系是假的,则返回值是0,如果声明的关系是真的,则返回值是1;逻辑 0:表示低电平,也就是对应我们电路的 GND;原创 2025-02-19 10:51:01 · 637 阅读 · 0 评论 -
xilinx开发过程中常用的ip核配置
uiudp_stack这个协议栈,我的phy协商的是100M,协议栈能正常工作吗?100m, rgmii不能工作,协议栈能正常工作。一,XILINX的FIFO,不同带宽输入输出,输出时,默认是先输出高位,再输出低位。答:在写入的时候,切换下位置就行了。四,PS的以太网用emio经过gmii转rgmii后Txclk变成了2.5Mhz,而用mio输出则是125Mhz。能不能用很低的频率让它工作呢?五,uiudp_stack这个协议栈能使用MDIO吗?K7的DDR可以跑到800M,用户逻辑可以跑到200M。原创 2024-11-05 22:47:06 · 221 阅读 · 0 评论 -
FPGA跨时钟域处理方法
跨时钟域处理(Cross-Clock Domain Crossing, CDC)是FPGA和数字电路设计中的一个常见问题。它主要是指在不同频率或不同相位的时钟域之间传输数据时所面临的挑战。由于时钟之间的不同,数据可能会在时钟边缘上被读取,从而可能导致亚稳态(Metastability)或数据丢失。原创 2024-11-05 16:35:12 · 829 阅读 · 0 评论 -
使用verilog实现JESD204B接口
对于utrascale器件,频率范围为10MHZ~200MHz,对于7系列器件,如果IP核的模式为“Include Shared Logic in example design”,则频率范围为10MHZ-200MHz;ADC/DAC的采样速率变得越来越高,数据的吞吐量越来越大,对于500MSPS以上的ADC/DAC,几十个G的数据吞吐率,采用传统的CMOS和LVDS已经很难满足设计要求,JESD204B应运而生。链路层负责链路的建立,数据传输。JESD204B包括3个子类,分别是子类0,子类1,子类2;原创 2020-06-24 16:21:44 · 5804 阅读 · 1 评论
分享