《智能系统设计》 – 五子棋系统展示 Presented by: 5110309611 陈秋文 5110309400 朱煜程 5110309604 时鹏飞 Some notes on the first slide – Presented by: 5110309611 陈秋文 5110309400 朱煜程 5110309604 时鹏飞 Some notes on the first slide



《智能系统设计》 – 五子棋系统展示 Presented by: 5110309611 陈秋文 5110309400 朱煜程 5110309604 时鹏飞 Some notes on the first slide – Presented by: 5110309611 陈秋文 5110309400 朱煜程 5110309604 时鹏飞 Some notes on the first slide

0 0


aiSystem


On Github shipengfei92 / aiSystem

《智能系统设计》

五子棋系统展示

Presented by:

5110309611 陈秋文

5110309400 朱煜程

5110309604 时鹏飞

Some notes on the first slide

OUTLINE

  • 1、系统概述
  • 2、FPGA部分
  • 3、CPU部分
  • 4、CPU与FPGA连接—PCIE接口
  • 5、功能演示

1、系统概述

系统框架

应用软件

Quotus II 2012 破解版 Qsys Visual Studio 2012 旗舰版

2、FPGA部分

VGA时序

使用VGA

注:altera的板子使用了VGA、DAC

棋子的存储

棋盘是15*15的规格,所以一共有225个位置。 我们将白子和黑子的位置信息分开存储,利用位宽为225的寄存器来进行存储。
Reg [224:0] black;
Reg [224:0] white;
例如当5行6列处放置一枚白子时,那么
Poi=4*15+6-1=65,white[poi]=1

棋盘和棋子的显示

1、VGA是逐行从左往右逐点扫描,在想要显示棋盘的地方输出相应的BGR信息就可以显示棋盘。
2、因为棋子显示权最高(棋子的显示要覆盖棋盘和背景),相应的在if-else if-else语句中是有优先权关系,所以棋子应该写在condition1的位置。
If (poi1) condition1;
Else if (poi1) condition2;
Else condition3;
在poi1处执行的是condition1而不是condition2

棋盘和棋子的显示

例如判断在1行1列处是否有棋子
if((CN1>=98) && (CN1<=102) && (CN2>=63) && (CN2<=67)) begin    
	if(white[0]) begin
		b_data <= 11111111;
		g_data <= 11111111;
		r_data <= 11111111;
	end
	else if(black[0]) begin
		b_data <= 00000000;
		g_data <= 00000000;
		r_data <= 00000000;
	end
End
注:CN1是屏幕上的列数(98~102/640),CN2是屏幕上的行数(63~67/480)。CN1=100,CN2=65屏幕上的这个位置,是棋盘上的1行1列的位置。

3、CPU部分

黑子位置计算部分

1、判断是否黑子立即赢或者白子下一个子赢,选黑子立即赢的位置或者堵住白子立即赢得位置
2、对黑子每个当前可下位置进行综合评分,对白子每个下一步可下位置进行综合评分。
3、比较黑子和白子的最高得分,确定攻守策略。

评分策略

注:x代表未落子位置,o代表本方棋子位置,@代表当前评分位置

权衡策略

4、CPU与FPGA连接—PCIE接口

基于PCI-E总线建立的FPGA系统

PCI Express,简称PCI-E,是电脑总线PCI的一种,它沿用了现有的PCI编程概念及通信标准,但建基于更快的串行通信系统。
(PCI 个人电脑接口,Personal Computer Interface)

基于PCI-E总线建立的FPGA系统

QSYS建立的FPGA系统

QSYS建立的FPGA系统

5、功能演示

thank you