【FPGA】高云FPGA之科学的FPGA开发流程(二)https://developer.aliyun.com/article/1472627
5、引脚约束及布局布线
首先我们需要确认我们输入和输出接的引脚,这里小梅哥的板子提供了excel表格,下面是我使用到的资源;
然后我们回到软件中进行引脚约束
保存后进行点击布线查看是否存在错误
最终生成文件
//Copyright (C)2014-2023 Gowin Semiconductor Corporation. //All rights reserved. //File Title: Physical Constraints file //Tool Version: V1.9.9 (64-bit) //Part Number: GW5A-LV25UG324C2/I1 //Device: GW5A-25 //Device Version: A //Created Time: Mon 12 25 15:47:02 2023 IO_LOC "led" D14; // 指定“led”io位置为D14 IO_PORT "led" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3; // 无上拉 驱动等级8 io电压3.3v IO_LOC "sel" C15; IO_PORT "sel" PULL_MODE=NONE BANK_VCCIO=3.3; IO_LOC "in2" A15; IO_PORT "in2" PULL_MODE=NONE BANK_VCCIO=3.3; IO_LOC "in1" B16; IO_PORT "in1" PULL_MODE=NONE BANK_VCCIO=3.3;
6、时序仿真
在仿真章节的代码中其实有涉及到时序相关的代码,在那一章节就可以观察时序相关的需求,例如本设计的需求有三个输入,分别是key1、key2以及sel,我们要实现的功能便是根据这三个信号的输入状态来输出led,那当我们三个输入信号发生后多久led会产生变化,这就是时序,当我们的需求是要在10ms内反应操作,那我们就需要观察输入信号发生变化时输入信号离输出信号产生的间隙是多长如下图,这里的设计没有复杂的运算以及复杂的判断电路类似直接导通所以没有延时产生(实际不会如此,很难有绝对)
如果仿真产生的延时达不到我们的需求我们就需要进行调整修改,而且实际的IO输出和仿真的效果往往也会有不同,例如这里的输入是按键,那按键抖动时波形的状态我们就可以通过示波器或则硬件逻辑分析仪进行时序分析这样会更加准确一些;
7、bit流输出、配置烧录、板级验证
需要注意在烧录验证之前,我们需要在高云软件中配置硬件默认状态,高云编译器默认IO上拉我们需要手动更改为接地
默认烧录是烧录到sram也就是掉电后程序就不在了,如果重启后直接开始运行需要设置未固化到flash中如下图2设置
然后我们就可以在板子上验证我们设计的功能了;