【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程

【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程

  • 0. Vivado与综合
  • 1. 建立Vivado工程
  • 2. 导入Verilog RTL源代码
  • 3. 时钟管理-DDR200T开发板
  • 4. 引脚约束

前言:本文均为作者原创,内容均来自本人的毕业设计。未经授权严禁转载、使用。里面的插图和表格均为作者本人制作,如需转载请联系我并标注引用参考。分享仅供大家学习和交流。
建立Vivado工程的详细步骤可见之前的博客

Vivado 蜂鸟 e203 MCU200T/DDR200T 逻辑综合 RISC-V 详细教程
https://blog.csdn.net/qq_43858116/article/details/123648746

Vivado 蜂鸟 e203 烧录下载MCU200T/DDR200T FPGA-FLASH里 bit/mcs/bin文件 详细教程 RISC-V
https://blog.csdn.net/qq_43858116/article/details/124152615

0. Vivado与综合

  综合就是把硬件描述语言转换为与其相对应的查找表和寄存器构成的功能电路[15]。本设计基于Xilinx Vivado 2019完成了工程建立、内核编译、板载时钟管理、硬件选择、引脚匹配、性能分析、内核烧写 、测试分析,Vivado界面如图3-9所示。
【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第1张图片

图3-9 Vivado界面

1. 建立Vivado工程

2. 导入Verilog RTL源代码

  E203内核源代码的结构非常清晰,整体呈现层次化的结构,从顶部模块e203_cpu_top到底部各个功能模块都一层一层地去例化,如图3-10所示。因为SRAM包含内存和缓存,并不涉及流水线结构的逻辑设计,只有访存功能,所以顶层的e203_cpu_top例化将逻辑设计和内存部分分开,两个模块e203_cpu和e203_SRAM分别是E203内核所有的流水线逻辑设计部分e203_cpu和存储单元SRAM部分。除了Verilog RTL代码,还需要为处理器系统分配板载时钟和板载I/O引脚的物理约束。

【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第2张图片

图 3-10 E203内核里的模块层次

3. 时钟管理-DDR200T开发板

  1. 单端100MHz的时钟,为FPGA子系统的主时钟输入,是板载开发板自带的晶振,经查询产品手册里板载原理图可见该部分的电路图如图3-11所示。
    【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第3张图片
图3-11 100MHz板载时钟的原理图
  1. 单端32.768KHz时钟,为蜂鸟E203MCU的低速时钟输入,是板载开发板自带的另一个晶振。一般处理器的设计有个重要的单位是1Hz,而一般晶振的时钟频率是32.768KHz通过15次分频后得到的频率恰好单元1Hz,也就是1秒钟的时间,用于计时。经查询产品手册里原理图可见该部分的电路图如图3-12所示。
    【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第4张图片
图3-12 32.768KHz低速时钟输入时钟原理图

  定义FPGA工程顶层设计模块system_top.v在时序分析时添加两个IP核用做时序仿真时候的时钟管理,提供各部分的时钟:MMCM( Mixed Mode Clock Manager, 混合模式时钟管理器)独立IP为高性能的FPGA设计提供更高性能的时钟管理功能,PSR(Processor System Reset,处理核系统重置器)[20],如图3-13所示。
【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第5张图片
【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第6张图片

图3-13 添加的两个IP参数(左图ip_MMCM,右图ip_PSR)

  使用MMCM将主时钟100MHZ分频为8.388MHz和16MHz,使用PSR创建一个reset复位模块。对顶层设计中的各模块添加相应的时钟,定义模块的时钟输入。综合后添加时钟管理IP后的处理器的综合结构如图3-14所示。
【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程_第7张图片

图3-14 时钟管理后的综合结构

4. 引脚约束

  在Vivado建立一个FPGA工程不仅需要添加时钟,还需要增加板载的引脚约束对I/O引脚进行例化,使之连接到FPGA芯片外部的Pin脚上增加电气属性规定,从而实现将输入输出的功能映射到物理的开发板上[20],部分引脚约束如表3-2所示。

表3-2 DDR200T上E203内核的部分引脚约束文件
Pin引脚 端口名称 电气属性
W19 CLK100MHZ 时钟周期为10us
Y18 CLK32768KHZ 时钟周期为30517.58us
T6 fpga_rst LVCMOS15
P20 mcu_rst LVCMOS33
spi0-FLASH define
W16 qspi0_cs LVCMOS33
W15 qspi0_sck LVCMOS33
U16 qspi0_dq[3] LVCMOS33
T16 qspi0_dq[2] LVCMOS33
T14 qspi0_dq[1] LVCMOS33
T15 qspi0_dq[0] LVCMOS33
MCU JTAG define
N17 mcu_TDO LVCMOS33
P15 mcu_TCK LVCMOS33
T18 mcu_TDI LVCMOS33
P17 mcu_TMS LVCMOS33
PMU-power define
U15 pmu_paden LVCMOS33
V15 pmu_padrst LVCMOS33
N15 mcu_wakeup LVCMOS33

你可能感兴趣的:(#,蜂鸟E203,fpga开发,蜂鸟e203,risc-v,嵌入式硬件,ic)