![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
verilog
文章平均质量分 87
卡布奇诺加勺糖
刚开始学fpga,记录一些学习到的东西,希望大家多多指教
展开
-
【vivado IP核学习】DDS complier v6.0使用“SIN/COS LUT only”
DDS complier v6.0使用根据使用需求,设置dds格式为 “sin cos lut only”,赛灵思官方dds IP的说明文档对该模式的描述如下:When configured as a SIN/COS LUT only, the Phase Generator is not implemented and the PHASE_IN signal is input using the input PHASE channel and transformed into sine and cos原创 2021-09-06 16:12:12 · 2133 阅读 · 0 评论 -
【详解+示例】verilog阻塞非阻塞分析——层次化事件队列
1. 层次化事件队列简介详细地了解Verilog的层次化事件队列有助于我们理解Verilog的阻塞和非阻塞赋值的功能。所谓层次化事件队列指的是用于调度仿真事件的不同的Verilog事件队列。在IEEE Verilog标准中,层次化事件队列被看作是一个概念模型。设计仿真工具的厂商如何来实现事件队列,由于关系到仿真器的效率,被视为技术诀窍,不能公开发表。本节也不作详细介绍。在IEEE 1364-1995 Verilog标准的5.3节中定义了: 层次化事件队列在逻辑上分为用于当前仿真时间的4个不同的队列, 和原创 2021-08-07 11:41:38 · 1589 阅读 · 0 评论 -
【FPGA调整时序】调整时序过程中遇到的问题与解决方式
毕设的时候FPGA逻辑部分已经做完了,虽然毕业了,但是老师还是希望我把整个流程做完。现在在调整时序,由于之前没有怎么接触过,也没有师兄师姐帮助,调的我是心烦意乱有人说没有调过时序就不算做过FPGA,因此我准备记录一下调整时序的流程,日后做个纪念最开始检查时序,基本就是一片红,200m的时钟根本满足不了,我看最多支持到120m的时钟,感觉自己之前写的代码质量太差了,将来写代码一定不能偷懒,一定要按照规矩来。day1:初探时序翻阅了一些博客,大部分人说这里报错主要看form to这两部分,代表出问题的原创 2020-08-14 22:19:10 · 2985 阅读 · 1 评论 -
FPGA开发中遇到的问题与解决办法
问题1:ILA核资源消耗VIVADO中ILA核是消耗BRAM的因此当BRAM不足可以降低ILA抓取长度问题2:$readmem语句是否可综合?如果用来初始化一个二维数组,则可以综合,如:reg [COEFF_WIDTH-1:0] coeff_array [0:TAP_NUM_ALL-1];initial begin $readmemh("lte_int_hb2.coe", coeff_array , 0, TAP_NUM_ALL-1);endalways@(posedge clk)原创 2020-06-18 16:45:34 · 1852 阅读 · 4 评论 -
VIVADO仿真数据保存
在进行FPGA编程设计的时候,经常会将VIVADO仿真结果与MATLAB仿真结果对比的情况,这时就需要将VIVADO仿真数据保存下来,方法如下:保存unsigned型无符号数据integer dout_file;initial begin dout_file=$fopen("路径/test.txt"); //打开所创建的文件 if(dout_file == 0)be...原创 2020-03-16 17:33:37 · 15824 阅读 · 9 评论 -
Xilinx VIVADO 仿真时无法调用 ModelSim 失败的解决办法
自从学习FPGA以来,按照惯例,都是使用VIVADO调用ModelSim来仿真,这样可以在仿真的同时继续修改代码,并且根据同组的人说,ModelSim仿真貌似还快一点(虽然用ModelSim+ i9-9900k,有时候仿真跑一天也跑不完(๑′ᴗ‵๑)❤)但是有调用,就有调用失败的时候,有的时候会报错,那就很简单了,根据报错进去看看log文件,按照log文件修改就好了,但是有的时候一直卡在下面这里...原创 2020-03-13 12:06:27 · 5536 阅读 · 5 评论 -
verilog reg型二维数组
verilog中二维数组使用有些限制,比如不能作为module的输入输出port另外二维数据初始化可以使用for循环来实现初始化------------------------------------------------------------------------------------------------1. 二维数组作为输入输出port报错下面举一个例子:model in...原创 2020-03-10 17:46:59 · 9841 阅读 · 1 评论 -
VIVADO cordic IP核
VIVADO中,cordic是一个实现通用坐标旋转计算的IP核,在进行数字信号处理时常常会用到,算法主要是通过迭代来解三角方程,不过这些原理的东西我们做FPGA实现的不需要掌握它的历史,重点是怎么用,正好最近刚刚做完一个bp神经网络的实现,很多地方都用到了cordic核,网上的讲解很散乱,所以决定自己写一个。cordic核主要功能包括:rotate 旋转 ——复数旋转translate 变...原创 2020-02-27 16:41:43 · 15755 阅读 · 12 评论 -
有符号无符号乘法---------------verilog中 “ * ” 号的探索
有符号数的计算在 Verilog 中是一个很重要的问题(也很容易会被忽视),有时为了简单方便,我常常会使用“*”来偷懒,这样就不用去调用乘法器了,但是结果常常不同,下面实际试验一下 Verilog 的乘法问题;编写程序测试无符号数和有符号数的乘法编写程序如下,其中,乘法的两个乘数分别是无符号、有符号的四种组合,输出的积也是分为无符号和有符号,共计 8 种可能;module signed_te...原创 2020-02-27 12:46:51 · 4111 阅读 · 1 评论 -
【超详细】VIVADO FFT IP v9.0 进阶
我对正常使用的定义我目前使用fft核都很简单,就是求固定长度时域数据的频谱,以4096点为例,我使用FFT核就是为了代替MATLAB中data_fft = fft(data,4096);这个功能。第一次用FFT IP的时候,被吓到了,用过三四次以后基本摸清了使用方法,但是也只是简单的使用,这里写个指南,希望指导小白。FFT界面这里以4096为例,图中红圈内可以改点数,一般我下面都是...原创 2020-02-27 12:27:58 · 3528 阅读 · 5 评论