在完成了上一个在FPGA上搭建Risc-v的实验之后,我们可以修改源码来实现自主想要完成的功能
首先实现流水灯 需要用到GPIO端口 那么修改XDC文件将GPIO端口绑定至LED灯上
另外另外 上一节修改的源码 关于如何下载的依旧是需要的这里再说明一下
而TinyRisc-V的LED灯是低电平 所以我们需要修改源码,将其变为高电平。
在顶层里修改
(当然其实这里都不需要改 因为我们将这两个灯用来实现流水灯了 所以 这里没必要改 )(无用之举)
修改之后使其能够正常点灯
接下来修改串口tx和 rx信号引脚绑定
这里想要说明的是 其实绝大部分都可以绑定空的引脚,但是一定要绑定,不绑定过不了验证。 我们想要实现某些功能,让它表现出来,最好的办法就是输出在LED灯上。
由于达芬奇开发板没有拨码和自锁开关,并且未按下时按键端口输出高电平,按下时输出低电平。因为这里是高电位启动,所以我们需要修改代码,绑定至key0
(这里的唯一的作用是为了下载 摁下按键就启用下载)
修改后为
下面开始的设计才是这次流水灯设计相关的
首先修改XDC将GPIO绑定完成 修改后的XDC 如下显示
# 时钟约束50MHz,占空比50%
create_clock -add -name sys_clk_pin -period 20.00 -waveform {
0 10} [get_ports {
clk}];
# 时钟引脚
set_property -dict {
PACKAGE_PIN R4 IOSTANDARD LVCMOS33 } [get_ports {
clk}];
# 复位引脚
set_property -dict {
PACKAGE_PIN U2 IOSTANDARD LVCMOS33 } [get_ports {
rst}];
# 程序执行完毕指示引脚 任意空管脚
set_property -dict {
PACKAGE_PIN F15 IOSTANDARD LVCMOS33 } [get_ports {
over}];
# 程序执行成功指示引脚 任意空管脚
set_property -dict {
PACKAGE_PIN G17 IOSTANDARD LVCMOS33 } [get_ports {
succ}];
# CPU停住指示引脚 任意空管脚
set_property -dict {
PACKAGE_PIN H15 IOSTANDARD LVCMOS33 } [get_ports {
halted_ind}];
# 串口下载使能引脚,由于没有拨码开关和自锁开关,所以绑定到key0上,key0按住不放时才使能串口下载
set_property -dict {
PACKAGE_PIN T1 IOSTANDARD LVCMOS33 } [get_ports {
uart_debug_pin}]