FPGA串口通信c语言程序,【技术分享】FPGA杂记之基础篇二及Demo案例

本文详细介绍了如何在FPGA中实现串口通信,包括IP例化、PLL配置、RAM模块搭建以及UART协议的应用。通过实例展示了FPGA串口接收与发送数据的过程,同时针对遇到的问题进行了调试与解决,最终实现了数据的闭环回路传输。
摘要由CSDN通过智能技术生成

本文接续上一篇《FPGA杂记基础篇》,继续为大家分享IP例化和几个基于FPGA芯片实现的Demo工程。

IP例化

IP即是一个封装好的模块,集成在相应的开发环境里面,以安路的TD软件为例,不同系列的芯片集成了不同的IP模块,可以通过软件例化调用。

以下是安路TD4.6.5集成的EF3L40CG332B的相关IP。

d14a14f0b87c15320fbcbb23546379e7.png

1.1 PLL&RAM

以例化PLL和RAM为例,实现两个异步双口 RAM。

读写时钟都设置 100Mhz, 两个 RAM 为 RAMA 和RAMB, 深度为 1024,位宽为 8bit,写入数据为 8bit,100Mhz 持续数据流, 当 RAMA被写入 1024 字节数据后切换到写 RAMB, RAMB 被写入 1024 字节后切换 RAMA。以此循环类推。

当 RAMA 被写入 1024 字节时, 给读时序提供一个启动信号读取 RAMA 的数据, 读取完 RAMA 的 1024 字节数据时, 切换读 RAMB 以此类推。

这个工程的工程结构如下图:

287c451dab09ec64d93ceb7100982df2.png

首先EF3L40CG332B_DEV开发板提供了25Mhz的晶振时钟输入到EF3L40CG332B的时钟管脚。

2214c65d2731e649c57ed468eb48255e.png

想要得到100Mhz的读写速率,需要先用PLL得到倍频时钟。

0a8351cc675e3b2c15bdd818e01876ff.png

在tools目录下点击IP Generator进入IP core页面,并选择PLL,输入时钟填入板子晶振25Mhz。

ea4fa3ce5dd82d6a799dfbf854620518.png

输出时钟填入所需要的100Mhz,并从C0输出。

fac25c4bdd27208162ef012ecea0387b.png

设置完成后,生成的module声明如下(完整模块可参考代码)

c362477f07e6efbaf49eced6a68a7f64.png

再生成ram的IP模块。

在IP core中选择RAM。

a5da602dca999625aeaee55df3045ba3.png

f308cce9365490079b79876afdd35d2e.png

Memory type选择简单双口ram,memory size设置位宽8bit深度1024。

设置完成后,生成的module声明如下。(完整模块可参考代码)

56236d25aedb42a18b3e4915a85039ea.png

然后编写顶层文件并且在顶层例化PLL和RAMA、RAMB。

顶层文件中主要是对ram的输入口进行时序操作,包括ramA、ramB的读地址,写地址、使能信号和输入输出数据,详细代码笔记中不再赘述,可以直接参考代码。

可综合模块编写完成后,编写仿真模块并使用仿真软件进行仿真。

由于本次工程使用到了安路的IP库,因此也需要在modelsim中添加相应的安路仿真库,添加方法如下:

首先在modelsim的安装目录下面编辑modelsim的初始化文件modelsim.ini,右键属性后,将它的只读属性取消,然后用文本文件(本工程使用的是notepad++)编辑。

f2b196a68d980cb511f13391b1ce9779.png

在modelsim.ini的[library]列表下添加安路的仿真库文件目录,安路所有的仿真库文件都在安路的编译软件TD安装目录下的sim文件夹中,此处将其所有的库文件都复制进了modelsim的文件夹里,若不复制,也可直接输入安路文件夹的路径。

c9377270762e1d7757af65dd204cdac8.png

a81a33a46355aa1defa0c430b144c186.png

保存后退出,打开modelsim并创建工程,编译通过后,进入仿真步骤,在simulate状态栏下选择start simulate,如下图:

7568007f7dbe35c1dcb4299c0cbd765c.png

选择后进入到如下页面:

88100ea2b9b7303a651033b32ab63905.png

选择仿真的顶层并且关闭优化选项。

同一个窗口打开libraries页面并在search libraries栏右侧选择add,下拉列表选择对应的ef3的库文件。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值