po一些verilog的代码

本文详细解析了RAM的读写操作过程,包括写入数据与读写地址的输出,通过具体代码示例阐述了如何在前32个时钟周期内将数据写入RAM,在后32个周期内输出读写地址。同时,文章介绍了SignalTapII的使用方法,包括添加注释、扫描、编译等步骤,以及如何利用PLL核控制内部时钟频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与RAM进行读写的操作

下面是相关代码,先是定义了几个端口,ram的读写地址和写/读数据端口,输入的ram_rd_data是没用到的。
在这里插入图片描述
在这里插入图片描述
上面的代码实现了使能判断,记了个数。
下面的代码实现在前32个时钟周期内将写的数据output到RAM里面,后32个周期内将读写的地址output到RAM里,就是简单的累加运算。
在这里插入图片描述
输出的是
在这里插入图片描述

这里有一个问题:
这里没有read的代码,如何read?(不需要写?本身就可以直接读)
如何断定output的地址写入的就是要写信号的值,它之间如何挂钩?(自带属性)
在这里插入图片描述
在这里插入图片描述
可以发现,这里的连线情况,也就回答了上面的两个问题。

讲一下SignalTap II

在这里插入图片描述
打开后如下:
在这里插入图片描述
右键add notes,右上角进行scan,按箭头方向进行编译。
在这里插入图片描述
开发板没在身边,演示不了。下面是更多功能的仿真:
在这里插入图片描述
特定的时钟进行采样。
在这里插入图片描述
采样第21个周期的信号
在这里插入图片描述
PLL核用于对内部时钟频率的控制。
在这里插入图片描述
在这里插入图片描述

控制输出的频率(100MHZ,10MHZ)
在这里插入图片描述
在这里插入图片描述
对应的端口输出不同的时钟频率
在这里插入图片描述
在这里插入图片描述
提高采样的频率
在这里插入图片描述
IP核就是已经设计好的内部功能模块,方便调用和使用

比如FIFO IP模块的调用

在这里插入图片描述
写信号:
在这里插入图片描述
在这里插入图片描述
读信号:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值