UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Observer zhuxuanlong
Observer
162 次查看
注册日期: ‎07-23-2019

请教如何调试kc705

Hi,

  你好!我基于SiFive 的Freedom移植了kc705代码,现在mcs编译通过了,通过vivado烧结到KC705的开发板,但不知道如何调试,理论上应该有串口打印的。刚入这个行业不久,所以想请教一下各位达人是否有什么好的调试手段。比如我也尝试把时钟信号挂到某个GPIO端口上或者UART的TX口,或者通过时钟控制GPIO User LED灯闪烁,但目前都没有调通。

 

0 项奖励
4 条回复4
Xilinx Employee
Xilinx Employee
140 次查看
注册日期: ‎06-02-2017

回复: 请教如何调试kc705

Hi @zhuxuanlong 

SiFive提供的应该是快速构建基于RISC-V的SoC系统的一种方式吧?

生成的mcs文件是将这样的一个SoC系统部署到KC705上,但具执行在SoC的软件应当单独开发,并在相应的编译环境中完成。

也就是现在的SoC系统默认应该是空的。

 

0 项奖励
Community Manager
Community Manager
81 次查看
注册日期: ‎08-31-2011

回复: 请教如何调试kc705

Hello,

你的这个问题能具体些么?

比如在uart上看结果,是否把uart的接口loc到了kc705对应的管脚USB_tx, usb_rx上?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Observer zhuxuanlong
Observer
49 次查看
注册日期: ‎07-23-2019

回复: 请教如何调试kc705

我是基于SiFive的Freedom代码调试kc705板子,也就是是基于Freedom移植kc705。Freedom基本上都是scala实现了FPGA工程代码,也就是scala写的fpga工程代码编译后生成verilog,再生成bit或mcs。我前面做了调试,就是用vivado打开生成的FPGA工程,在工程里面直接加了一点点灯操作,就是通过200M晶振经过锁相环出来的50M时钟控制点灯GPIO User LED,1s一次闪烁,然后用vivado直接编译生成bit,是可以点亮的,说明50M时钟这部分没有问题。然后还是通过vivado加入了ILA调试步骤,就是抓UART的TX,发现始终是高电平。
发此贴的目的就是想探讨基于Freedom代码在移植不同FPGA过程中调试思路。比如是否有什么好的方法先调试时钟、串口、GPIO、IIC等
0 项奖励
Observer zhuxuanlong
Observer
34 次查看
注册日期: ‎07-23-2019

回复: 请教如何调试kc705

这块后来我自己用两种方式都尝试了GPIO User LED灯控制:第一种方式,freedom编译完成后,用vivado打开fpga工程,在工程里面直接修改verilog,直接通过锁相环出来的时钟控制led管脚(注掉led以前的赋值),比如:
//先注掉下面接口
// assign led = topDesign_auto_topMod_led_source_out; // @[LEDOverlay.scala 16:8:sifive.freedom.unleashed.DevKitU500FPGADesignOfKC705_WithDevKit50MHz.fir@522565.4]


reg [31:0] R_clk_count ;
reg R_led;

always @(posedge corePLL_clk_out1) begin
if(!corePLL_locked) begin
R_clk_count <= 32'd0;
R_led <= 1'b0;
end
else if(R_clk_count == 32'd50000000) begin
R_clk_count <= 32'd0;
R_led <= ~R_led;
end
else begin
R_clk_count <= R_clk_count + 32'd1;
end
end

assign led = {7'h0,R_led};

第二种方式:在freedom代码中,即GPIO IP核里面直接控制某个LED灯,这里采用了直接点亮的方式,比如在class U500VC707DevKitSystemModule里面直接
gpio_pins.pins(0).o.oval := 1.U
gpio_pins.pins(3).o.oval := 1.U


0 项奖励