SWORD,全称 Simple While Organic aRc Design(简单而又完整的处理器架构设计方法),它既不仅仅是一种单纯的硬件,也不仅仅是一种处理器架构的实现,而是一种计算机系统能力培养方法。其内容涵盖了从数字逻辑硬件设计,到指令集架构设计与扩展,并延伸到编译器设计,甚至涵盖了操作系统设计与实现,及基于上述一切内容的计算机系统集成设计与应用。
初见SWORD4.0这个FPGA开发平台,你可能仅仅以为这是一款功能丰富且强大的评估板;但当你深入了解之后,你会发现SWORD4.0更是一个生态完整的,集学习、教学、研发于一体的全方位开发平台,多种鲜明特征相连而又统一,这便是我对拿到手的SWORD4.0开平台的所见所想,本文分享实际的使用感受,且来看看SWORD4.0到底是怎样的一个开发平台。
开箱
↓ SWORD4.0包装盒
↓ 打开后的内部的情况。
↓ 物品清单详细记录了SWORD4.0开发板搭配的一些配件情况。
↓ 以下是SWORD4.0开发板包装盒内所有配件的实物,包括了一块SWORD4.0 FPGA开发板、一份USB-UART驱动光盘、一根网线、一个12V的电源适配器、一个兼容Arduino接口的扩展板、一个USB-JTAG调试器、一根USB线以及一根USB-UART线。
SWORD4.0有蓝色和绿色两种,两种仅仅是颜色的不同。笔者拿到的是绿色的SWORD4.0。蓝色的见下面3D动态图。
另外,配件中兼容Arduino扩展接口的扩展板型号为SWORD-002,可以直接插在SWORD4.0主板上使用。
SWORD-002板子上的功能比较简单,是一些常用的外设组件,包括4个七段数码显示管(并行)、8个LED (并行)、2个彩色按键、1个蜂鸣器,但其设计的意义可不像表面看起来的那么简单,其实大家可以看到,在SWORD4.0的主板上,已经有了像LED、数码管等外设组件,但为何这里还要弄一个“同类型的”扩展板,深究的同学会发现,主板上的无论是数码管还是LED都是采用串行接口,而这个子板采用了并行接口,相较于串行接口更适合初学者,并且能让学生学习串并行接口间的转换,这种完全属于系统性的学习,远不是仅仅设计一个开发板那么简单。
SWORD4.0开发板硬件
↓ 下面就是 SWORD4.0 FPGA开发板的实拍图,板子做工极其精致,板子也很大,板载功能非常丰富,这对用于教学或者研发验证是极其友好的,不过对于初学者来说,相信会感觉压力山大。当然,好在SWORD4.0不仅仅是一款开发板,更是一个系统性的教学平台,包含了一整套教学课程资料和视频,即便是初学者,也能跟着课程一步一步从无到有的入门、学懂。
具体来看下板上的一些接口功能,这在使用SWORD4.0开发板,或者用SWORD4.0验证一些产品方案的时候能让你做到心中有数,游刃有余。(为拍摄方便,特意取下了板子上盖的亚克力壳)
↓ 自左向右的接口分别是:电源开关、12V DC供电JACK接口、12位VGA接口、千兆以太网接口、两个USB HOST接口、miniUSB OTG接口、MicroSD接口、RS232 DB9串口(额外还有插针串口)、miniUSB UART接口、3.5mm音频输出接口。
↓ 自左向右:JTAG接口、4路10G光纤接口、12V DC输出接口(白色,可为外接设备供电)。
↓ 自左向右:PMOD接口、3个机械复位按键(分别针对MCU以及Arduino接口部分)、HDMI输出接口、HDMI输入接口。
↓ 自左向右:8个七段数码管(串行)、16个LED(串行)、16个拨码开关、5x5 键盘矩阵。
当然,除了靠近PCB外围的一圈接口,在整个板子上同样分布着一些外设,比如靠近电源这端有接插件的VGA接口、有插针的UART TTL以及UART 3.3V接口、还有两个三色交通灯。
又比如PCIe Gen2 4 Lane接口、Arduino扩展接口。
在PCIe接口旁边有3颗ST的MCU,两颗用于与FPGA的UART通信、一颗是实现USB OTG功能。
板子正中央则是开发板的主芯片Xilinx Kintex-7系列FPGA,芯片上加了散热片。在FPGA周围分布了存储BPI FLASH、SPI FLASH、DDR3以及SRAM:
- 6M Bytes SRAM(位宽48 bit)
- 512M Bytes DDR3 SDRAM(位宽32bit)
- 32M Bytes BPI FLASH(位宽32bit)
- 16M Bytes SPI FLASH(用户)
- 16M Bytes SPI FLASH(固化配置文件)
Xilinx Kintex-7 FPGA
SWORD4.0开发板搭载的FPGA具体型号为XC7K325T-2FFG676,属于Kintex-7系列中的高端产品,无论是逻辑单元还是功能都非常丰富,具备:
- 326,080 个逻辑单元
- 16,020Kb 容量的片内存储器
- 840 个DSP单元
- 1个PCIe 2.0 硬核控制器
- 8个12.5Gbps GTX高速串行收发器
Xilinx的这款基于28nm工艺的FPGA同时也是平衡成本、功耗、性能的优异解决方案,可以应用于3G/4G 无线、平板显示器、video over IP等领域,下面则是基于Kintex-7系列产品的3D电视解决方案。Kintex-7系列支持如 HDMI 1.4a、高速 LVDS、DisplayPort 1.1 和 V-by-One HS 等标准和新兴接口,能够解决3D电视所面临的高带宽问题,而且采用Kintex-7系列产品的灵活解决方案将能够持续升级,提升产品后续的服务。
开发环境
- EDA工具:ISE & Vivado
开发环境是每个用户绕不过去的坎,很多板子因为相应的开发环境生态做的好,受到欢迎,而有的平台在硬件上看起来不错,性能强大,功能丰富,但由于配套的开发环境、软件、生态等不健全而导致“夭折”的也不少。而采用Xilinx Kintex-7系列的SWORD4.0开发板显然有天然优势。圈内的人都知道,Xilinx之于FPGA就相当于Intel之于CPU,而赛灵思提供的EDA工具也是非常强大的,从ISE到Vivado,用户可以根据自己的需求选择。
这里要特别提下,SWORD4.0开发板的配套课程体系是浙江大学计算机系的完整课程体系,《数字逻辑》和《计算机组成》这两门最基础的课程,使用的是赛灵思的ISE EDA工具。据笔者了解下来,这是因为ISE工具中特有的原理图的设计方式更便于初学者理解数字电路的设计,所以官方特意选择了ISE工具。而后续的其他课程,则是使用赛灵思目前主推的Vivado工具,毕竟今后这个将是主流,尤其想用赛灵思高端FPGA系列的用户,Vivado是唯一选择。
- 软件工具:ComLink
这是一个通过PC远程控制SWORD4.0的软件,可以进行音视频传输、远程固件更新,也可以用于测试SWORD4.0硬件,因为从官方的角度来看,这个板子重点还是面向教育,所以一个好用且方便的演示工具是极为重要的,ComLink很好的诠释了这点。
目前SWORD4.0这个板子可以烧录不同的bit文件配置成串口版和网络版。
区分网络版与串口版主要是在使用ComLink的时候选择到底是通过网络的方式还是串口的方式实现通信控制。
ComLink包含但不限于下面的功能点:
- 视频功能:PC显示SWORD4.0采集到的HDMI图像;PC控制SWORD4.0的HDMI图像输出
- 音频功能:在SWORD4.0上播放特定格式的wav音频
- 更新SWORD4.0固件功能:支持通过因特网对SWORD4.0固件远程更新
- 网络更新用户数据:固化/读取用户数据到BPI Flash
- 网络更新用户数据:写入/读取用户数据到DDR3
- 读/写插在SWORD4.0上的microSD卡
- 获取16拨码开关状态
- 控制16LED灯/三色灯/7段数码管的显示
- 控制配套子板SWORD-002
上电使用
在使用开发板进行学习开发前,用户可以通过官方提供的Comlink软件测试开发板的基本功能是否正常。用户可以根据自己实际的开发环境选择相应的固件,从而选择是通过串口控制还是网络控制。
- 更新开发板固件实现用ComLink软件交互
笔者更新到了最新的ComLink软件(后来知道其实不更新也可以直接用ComLink)。开发板上电后、连接上USB-JTAG调试器,安装ComLink2.4,通过赛灵思的vivado工具更新最新的用于配置的固件到SPI FLASH中,配置的固件文件在ComLink的安装文件夹下,基本的步骤可以参照官方提供的文档说明,不过这里需要提一下的是默认的安装路径有空格会导致Flash配置文件无法正常加载烧录(Vivado要求文件路径中不包含空格和中文),可以将配置文件直接拷贝到电脑C盘的根目录。配置完成后有提示,如果你的SWORD4.0已经通过网线连接到DHCP的路由器上,重启板子后会自动获取IP地址,如下图所示。
可以看到数码管最后三位为122,也就是说获取到的IP地址为192.168.99.122(前三位和路由器上其他设备一样),然后通过ComLink软件可以连接到SWORD4.0开发板上。
不出意外的话整个过程还是比较简单,之后你就可以通过ComLink这个软件很直观的UI界面来测试开发板的硬件功能。无论是主板上的一些外设功能还是Arduino接口的扩展板上的功能,都可以正常交互,没有问题。
- 使用实验案例学习开发
板子验证功能OK后用户就可以尽情按照自己的需求进行学习或者开发了,因为官方提供的例程实在太多,笔者也没时间全部去测试一遍,这里只作为简要的说明和部分例程的演示,有兴趣的用户可以自行下载学习。
其实如果对这些课程都了解的用户不难发现他们之间存在的逐层递进的联系,比如入门的数字逻辑课程,专门推荐具备原理图功能的ISE EDA工具,可以让初次接触数字逻辑的用户进行直观的学习,了解逻辑电路;其次在计算机组成的课程中扩展讲解了优化逻辑实验的基本模块;计算机体系结构课程中又介绍了基于MIPS32架构的CPU中的各个功能模块组成和内部实现方式;在计算机硬件系统综合实践课程中,会基于简单的计算机系统做外设功能的扩展设计;在计算机系统综合-操作系统篇中介绍了浙大自己开发的一个简单的操作系统ZJUNIX,基本上是让从硬件思维到计算思维的转变;最后数字图像处理课程详细介绍了具体图像、视频的处理方式,是属于最贴近项目方案的实验demo。
比如下面这个是边缘检测和 Alpha 混合的demo效果,其中一路HDMI连接笔记本输出,另一路连接显示器输入。
↓ 笔记本上的原图和显示器上经过边缘检测和 Alpha 混合的效果图。
还有不少的demo不一一演示了,有想法的用户可以直接访问SWORD4.0的官网去了解(http://www.sword.org.cn/hardwares/sword4.0),上面有详细的板卡信息以及课程信息,看完之后相信你对于这个开发平台到底适不适合自己最清楚不过了。这里给两个视频处理的demo视频:(密钥:5NAzRKYVEbvWSmO4)
图像处理之边缘检测+Alpha混合:
视频处理之VideoScaler:
配套课程
笔者看好这个板子的原因还在于其配套了相应的课程,从基础到高端一步步深入,可以有效帮助用户学习,目前配套的6门课程如下。
而且每门课程都有细分化的从简入深让用户一步步适应的实验例程,甚至有的还配套了视频。由于时间关系,笔者没来得及一一体验,不过这些课程官方都免费开放,有兴趣的话可以直接下载来看,即便是没有开发平台,你也能从实验例程的代码或者视频中学到一些你想了解的知识,其实开放的实验课程确实有很多好处,就像买衣服的试穿,如果你觉得合适,符合你的学习节奏,或者满足你的需求,再去考虑采购此款开发板不迟。下面是这些课程详细的实验例程,想了解的可以看下。
↓ 《数字逻辑》 课程(课程地址:http://www.sword.org.cn/courses/digital_logic)
↓ 《计算机组成》 课程(这门课程包含视频)(课程地址:http://www.sword.org.cn/courses/CompOrg)
↓ 《计算机体系结构》 课程(课程地址:http://www.sword.org.cn/courses/CompArch)
其他几门课程就不一一展示了。
远程实验室管理软件EXOTIC
除了这些基本的课程,目前官方还新上线了一个远程实验室管理软件EXOTIC,学生通过网络可以远程配置SWORD4.0和进行实验操作,进一步提高SWORD4.0硬件利用率。
EXOTIC的一些特点:
- 远程访问SWORD4.0,通过网页界面做实验
- 通过摄像头,观察真实实验现象
- 支持线上讨论,大家合力解决问题
- 实验课摆脱时间、地点的限制
如虎添翼,RISC-V加持
不久前,官方在SWORD4.0上成功移植了基于RISC-V指令集的F32C开源CPU,并且用户可以通过简单升级后的Arduino IDE工具开发RISC-V应用,借助易于上手的编程环境和大量Arduino范例用户可以方便的进行应用开发。
RISC-V作为目前一个完全开源、极度精简,主流且火爆的指令集,非常适合物联网和边缘计算等应用,而成功移植RISC-V软核,将RISC-V作为SWORD开发平台生态系统的一部分,必然如虎添翼。
小结
不可否认,SWORD4.0是一个出众的教学平台,用高大上形容一点也不为过,它配套传统教学课程、支持远程实验管理软件、适配火爆且流行的RISC-V软核移植。当然,在实际使用SWORD4.0的时候有些地方你可能会不太适应,比如课程配套的一些视频属于随堂录制,画质会比较差;比如配套的前两个课程,因为重点要让初学者理解数字电路的原理,所以配套了ISE EDA工具(因为具备原理图设计功能)的课程,而后面的课程又会使用Vivado EDA工具(目前赛灵思主推的EDA工具)去实现更复杂的的逻辑功能设计;比如课程实验中常有要求学生开动脑筋自由发挥的部分等。不得不说浙大计算机系的课程不是那么好啃的。说真的,对于教学类的平台笔者接触的并不是很多,但若是以一个老师或者学生的身份来看,最注重的应该是配套的课程完整性,其次才是硬件本身,而SWORD4.0不仅满足前者,后者也大大超出了预期,对于真心想要了解FPGA、学习数字电路设计、学习计算机系统以及目前在人工智能领域非常火爆的图像识别处理等知识,那么SWORD4.0基本上可以满足你的需要,因为这不仅是一个功能丰富强大的开发平台,更是一个生态教学完整的系统级学习平台,而可能你唯一需要担心的是价格,因为它真不便宜。
本文原文链接: https://www.eeboard.com/evaluation/sword4/
原创申明:本文为爱板网原创,谢绝转载!
SWORD,全称 Simple While Organic aRc Design(简单而又完整的处理器架构设计方法),它既不仅仅是一种单纯的硬件,也不仅仅是一种处理器架构的实现,而是一种计算机系统能力培养方法。其内容涵盖了从数字逻辑硬件设计,到指令集架构设计与扩展,并延伸到编译器设计,甚至涵盖了操作系统设计与实现,及基于上述一切内容的计算机系统集成设计与应用。
初见SWORD4.0这个FPGA开发平台,你可能仅仅以为这是一款功能丰富且强大的评估板;但当你深入了解之后,你会发现SWORD4.0更是一个生态完整的,集学习、教学、研发于一体的全方位开发平台,多种鲜明特征相连而又统一,这便是我对拿到手的SWORD4.0开平台的所见所想,本文分享实际的使用感受,且来看看SWORD4.0到底是怎样的一个开发平台。
开箱
↓ SWORD4.0包装盒
↓ 打开后的内部的情况。
↓ 物品清单详细记录了SWORD4.0开发板搭配的一些配件情况。
↓ 以下是SWORD4.0开发板包装盒内所有配件的实物,包括了一块SWORD4.0 FPGA开发板、一份USB-UART驱动光盘、一根网线、一个12V的电源适配器、一个兼容Arduino接口的扩展板、一个USB-JTAG调试器、一根USB线以及一根USB-UART线。
SWORD4.0有蓝色和绿色两种,两种仅仅是颜色的不同。笔者拿到的是绿色的SWORD4.0。蓝色的见下面3D动态图。
另外,配件中兼容Arduino扩展接口的扩展板型号为SWORD-002,可以直接插在SWORD4.0主板上使用。
SWORD-002板子上的功能比较简单,是一些常用的外设组件,包括4个七段数码显示管(并行)、8个LED (并行)、2个彩色按键、1个蜂鸣器,但其设计的意义可不像表面看起来的那么简单,其实大家可以看到,在SWORD4.0的主板上,已经有了像LED、数码管等外设组件,但为何这里还要弄一个“同类型的”扩展板,深究的同学会发现,主板上的无论是数码管还是LED都是采用串行接口,而这个子板采用了并行接口,相较于串行接口更适合初学者,并且能让学生学习串并行接口间的转换,这种完全属于系统性的学习,远不是仅仅设计一个开发板那么简单。