一. 前言
前面我们分享了一系列淘Zynq矿板进行FPGA测试学习的文章,最近在准备移植开源的RISC-V,所以希望能找一块性价比高,资源丰富的FPGA,初步选定xilinx的xc7k325t,资源足够移植risc-v跑linux系统了。但是看了下xc7k325t的核心板都要一千以上了,开发板都要大几千了,买块新的开发板有点舍不得。于是乎还是坚持我们一贯勤俭持家,节约的精神,去二手网站上淘一淘,还真淘到了,某二手平台上出的比较多的SSD,”小海豚Memblaze pblaze3” ,用的正好是xc7k325t,最吸引人的是板子4个插座引出了全部IO, 也预留了JTAG焊盘,作为开发板使用再合适不过了。
二. 板子概览
板子是一块SSD板, 用的是FPGA方案xc7k325t,板载9片256MB的DDR。板载SPI FLASH可以用于固化程序。有一个大电容用于掉电进行一些紧急处理。除了这些主要的IC其他主要就是供电部分了,各种DCDC,LDO。
大电容
SPIFLASH
卖家还送了个底板和电源
测试了下晶振,50MHz
焊接JTAG线
三. LED测试
我们焊接了JTAG排线,现在就来先新建一个工程,点个灯测试下。
3.1新建工程
File->project->New...
Next
设置工程名和路径,next
指定RTL工程,Next
选择型号xc7k325tffg900-2,Next
Finish
3.2添加源码
led.v添加如下源码
module led
(
input sys_clk, //system clock 50MHZ on board
input rst_n, //reset low active
output reg[2:0] led //LED use of control the LED signal on board
);
reg [31:0] timer;
//==============================
//cle counter : from 0 to 4 sec
//==============================
always @(posedge sys_clk or negedge rst_n)
begin
if(~rst_n)
timer <= 32'd0; //when the reset signal valid,time counter clearing
else if(timer == 32'd149_999_999) //4 seconds count(50M * 4 - 1 = 199_999_999)
timer <= 32'd0; //count done,clearing the time counter
else
timer <= timer + 1'b1; //timer counter = timer counter + 1
end
//==============================
//LED control
//==============================
always @(posedge sys_clk or negedge rst_n)
begin
if(~rst_n)
led <= 3'b111;
else if(timer == 32'd49_999_999)
led <= 3'b011;
else if(timer == 32'd99_999_999)
led <= 3'b110;
else if(timer == 32'd149_999_999)
led <= 3'b101;
end
endmodule
3.3RTL分析
Run Linter无错误
3.4引脚约束
Windows->I/O Ports显示如下对引脚配置
按如下设置引脚
Ctrl+s保存
再Run Linter
3.5综合
3.6实现
综合完自动弹出实现对话框
3.6时钟约束
设置频率50MHz
点击Skip to Finish
手动编辑led.xdc文件如下
set_property PACKAGE_PIN R24
set_property PACKAGE_PIN T20
set_property PACKAGE_PIN T21
set_property PACKAGE_PIN D27
set_property PACKAGE_PIN T22
set_property IOSTANDARD LVCMOS18
set_property IOSTANDARD LVCMOS18
set_property IOSTANDARD LVCMOS18
set_property IOSTANDARD LVCMOS18
set_property IOSTANDARD LVCMOS18
create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} -add
3.7生成bit文件
实现完后自动弹出生成bit文件对话框
3.8下载运行
连接设备
编程设备
选择bit文件
自动运行可以看到3个LED流水点亮。
四. 总结
以上分享了淘到的xc7k325t板,进行简单的点灯测试,确认板子基本没问题。该板使用xc7k325t,资源丰富能满足大部分开发需求了,尤其是引出了所有的IO和JTAG非常方便作为开发板使用,后续就是按需设计一块扩展板,然后就可以进行RISC-V的移植,玩转起来了。