• 任务:基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成串口监视系统设计并观察调试结果。
  • 要求:设计串口监视系统,实时监控串口(UART)接收数据,并将数据显示在底板的8位数码管上(仅限数字0~9)。
  • 解析:通过FPGA编程驱动底板上的CP2102串口通信模块,接收来自PC(串口调试助手)或其他串口设备的数据,经过处理,最后通过驱动8位扫描式数码管模块,将接收到的数据显示在底板数码管上。

本实验主要学习串口(UART)总线工作原理、协议及相关知识,练习如何使用FPGA驱动CP2102模块实现串口通信设计,同时复习上节中扫描式数码管模块的实例化应用。

  • 熟悉串口(UART)总线工作原理及通信协议
  • 完成基于FPGA的串口通信模块设计
  • 完成串口监视系统设计实现

根据前面的实验解析我们可以得知,该设计可以拆分成三个功能模块实现,

  • UartBus: UART串口通信设计,实现串口通信数据传输。 * Decoder:将UART模块接收到的数据转换成用于数码管显示的BCD码。 * Segmentscan:通过驱动底板扫描式数码管将串口接收的数据显示出来。

顶层模块DisplayCtl通过实例化两个子模块并将对应的信号连接,最终实现串口监视系统的总体设计。UART通信是全双工的,接收和发送是两个独立的设计,本实验只需要接收数据,串口通信有两个关键因素:传输格式和传输速率,我们可以用两个模块分别实现: * Baud:控制UART通信数据传输速率。 * UartRx:根据数据传输速率节拍控制UART通信数据格式。

Top-Down层次设计模块结构设计

UART接口介绍

UART模块连接

UART驱动实现

系统总体实现

  1. 双击打开Quartus Prime工具软件;
  2. 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择);
  3. 新建文件:File → New → Verilog HDL File,键入设计代码并保存;
  4. 设计综合:双击Tasks窗口页面下的Analysis & Synthesis对代码进行综合;
  5. 管脚约束:Assignments → Assignment Editor,根据项目需求分配管脚;
  6. 设计编译:双击Tasks窗口页面下的Compile Design对设计进行整体编译并生成配置文件;
  7. 程序烧录:点击Tools → Programmer打开配置工具,Program进行下载;
  8. 观察设计运行结果。