Zynq开发板Z-Turn Board V5硬件原理图详解

需积分: 9 5 下载量 94 浏览量 更新于2024-07-15 收藏 496KB PDF 举报
"z-turn board_v5_20181201.pdf 是一份关于z-turn board开发板的硬件原理图手册,旨在帮助用户学习Zynq开发板的硬件开发,同时也支持拥有该开发板的使用者进行FPGA软件开发。这份文档详细描述了开发板的各个组件和接口,包括但不限于QSPI FLASH、HDMI、千兆以太网、DDR3内存、Z7020处理器、USB OTG、传感器接口以及电源管理等模块。文档还记录了不同版本的更新历史,例如对HDMI和SDIO接口电压转换的改进,USB到UART芯片的更换,MDIO电压转换器的添加,CAN接收端拉电阻电压的调整,以及以太网PHY的替换等。" 这篇文档涵盖了多个关键的硬件设计知识点: 1. **Zynq SoC** - Z7020是Xilinx公司的Zynq系列可编程系统芯片(PS),集成了ARM Cortex-A9双核处理器和可编程逻辑(PL)部分。它是开发板的核心,允许用户同时进行硬件和软件的定制。 2. **QSPI FLASH** - 快速串行外围接口闪存,用于存储启动代码和其他非易失性数据。它是Zynq芯片启动时加载固件的主要存储介质。 3. **HDMI接口** - 高清晰度多媒体接口,用于传输高质量音频和视频信号,常用于连接显示器或投影仪。 4. **以太网** - 10/100/1000 Ethernet接口提供了千兆网络连接能力,对于开发网络应用或远程调试非常有用。 5. **DDR3内存** - 双倍数据速率同步动态随机访问内存,提供高速数据处理和缓存,是现代计算平台的标准内存类型。 6. **USB OTG** - USB On-The-Go,允许设备之间直接进行主从切换,作为主机可以连接其他USB设备,如键盘、鼠标或存储设备。 7. **传感器接口** - 提供与各种传感器(如温度、加速度计、陀螺仪等)通信的连接,用于获取环境数据。 8. **电源管理** - 包括多种电压等级(如1.8V, 3.3V, 1.0V, 1.5V, VTT)的电源供应,确保各个组件正常工作。 9. **版本更新历史** - 文档记录了从Ver1到Ver5的改进,这反映了开发板硬件设计的逐步优化和功能增强。 这份手册对于理解Zynq开发板的硬件架构、设计原理和实际操作具有重要的参考价值,无论是初学者还是经验丰富的开发者都能从中获益。通过学习这些内容,用户可以更好地设计、调试和优化基于Zynq的系统。

def __next_step(self, x, y): if not self.judge_colory: self.__history += 0 else: self.__history += 1 self.color = 1 if self.__history % 2 == 0 else 2 if self.start_ai_game: if self.ai_color == self.color: row,col = self.ai_stage(self.ai_game()[0],self.ai_game()[1]) else: col = round((x-self.__margin*2)/self.__cell_width) row = round((y-self.__margin*2)/self.__cell_width) stage_row = (y-self.__margin)-(self.__cell_width*row+self.__margin) stage_col = (x-self.__margin)-(self.__cell_width*col+self.__margin) if stage_col < stage_row: self.direct= 1 else: self.direct= 0 else: col = round((x - self.__margin * 2) / self.__cell_width) row = round((y - self.__margin * 2) / self.__cell_width) stage_row = (y - self.__margin) - (self.__cell_width * row + self.__margin) stage_col = (x - self.__margin) - (self.__cell_width * col + self.__margin) if stage_col < stage_row: self.direct = 1 else: self.direct= 0 if self.valide(row, col, self.direct): if self.__history % 4 == 0 or (self.__history + 2) % 4 == 0: self.__game_board.drew_turn(2) else: self.__game_board.drew_turn(1) self.add_logic(row, col, self.color) self.__game_board.draw_chess(row, col, self.color, self.direct) if self.judge_owner(row, col, self.color, self.direct): self.__game_board.drew_turn(self.judge_next(self.color)) for i in self.judge_owner(row, col, self.color, self.direct): x,y=self.draw_owner(i) self.__game_board.drew_owner(self.color, y, x) else: self.__game_board.drew_turn(self.color) self.judge_color(row, col, self.color, self.direct) print(self.logic_board_state) if 0 not in self.logic_board_owner: self.__game_board.pop_win(self.judge_winner())

2023-07-14 上传