摘要:
前言 最近群内同学问到:啥是阻塞,啥是非阻塞。实际电路中有这玩意儿吗? 个人觉得阻塞非阻塞是仿真电路下的描述,实际电路中是没有这个描述的。 实际的电路中只有组合逻辑和时序逻辑,不可能存在谁阻塞了谁。只是仿真中需要特别注意。 按照书上的描述:阻塞相当于软件中的顺序执行,非阻塞相当于并发执行。 类比为阻 阅读全文
摘要:
现象 在布线自己写的ddr3压力测试代码时,报如下错误。 [Constraints 18-586]IO constraint DQS_BIAS with a setting of TRUE for cell. [DRC MDRV-1] Multiple Driver Net:Net <const0> 阅读全文
摘要:
前言 当需要对复数求模的时候,用FPGA怎么求呢?怎么开根号? 方法1:先求幅值平方和,再使用cordic IP开根号。(蠢办法) 方法2:直接用cordic求取模值。 此处只介绍方法2,资源占用更少,更方便。 求模原理如下图所示。已知(x0,y0),即复信号的实部和虚部,要求模值和角度,即为(r, 阅读全文
摘要:
前言 EDF文件可以直接导入Vivado,而无需Verilog源文件。 好处: (1) 避免沙雕队友修改源代码,则可以直接提交EDF网表文件。 (2) 避免用户剽窃劳动成果。 (3) 对于无需更改的设计复用,直接用EDF网表会贼方便。 软件版本:Vivado2018.3 流程 生成EDF网表文件 ( 阅读全文
摘要:
前言 在某些需求下,数据的位宽后级模块可能不需要原始位宽宽度,需要截位,而某些需求下,需要进行多个数据的合并操作。 在verilog下,截位操作可如下所示: wire [7:0] w_in; wire [3:0] w_out; assign w_out = win[3:0]; 合并操作可如下所示: 阅读全文
摘要:
前言 收集工程调试中遇到的modelsim问题。 问题 (1)仿真发现时钟信号和理论上的数据信号没有边沿对齐。 解决:一般是时钟精度不匹配的问题。 如果想要1ns的精度则代码中的精度需设置为: v语法:timescale 1ns/1ns sv语法: timeunit 1ns; timeprecisi 阅读全文
摘要:
questasim作为modelsim的高级版,用着速度还是比modelsim爽很多,基本上所有操作指令都是和modelsim兼容的。 不同版本的vivado兼容的modelsim版本是不一样的,如果使用高版本的vivado而使用低版本的modelsim进行库的编译操作,则可能会报各种错误,所以参照 阅读全文
摘要:
参考文档 https://www.cnblogs.com/chengqi521/p/7977616.html 前言 对于ZYNQ的开发,顶层一般为PS+PL,而PL一般会封装成顶层,只露出接口。 而PL的子模块一般会用到Vivado提供的IP,如果是把所有PL端的模块直接导入工程,再想拖到block 阅读全文
摘要:
参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样时钟域。 普通的cdc处理方法需要关注时钟域速度的异同,即分慢时钟域到快时钟域、快时钟域到慢时钟域、 阅读全文
摘要:
前言 在工程的实际应用场景中,往往是需要最省资源量。而DSP资源和BRAM资源对FPGA来说弥足珍贵。 对于同时存在多个通道的实信号需要做FFT而言,常规做法是每个通道用一个FFT IP,FFT IP的输入为RE+0*j。即输入FFT IP的虚部直接置0。 那有没有可能把这个虚部浪费掉的资源用起来呢 阅读全文