当前位置:首页 > FPGA > 正文内容

(原创)基于Microsoft1768板卡实现Win/Linux下Arria10器件的开发,环境配置和安装 FPGA Microsoft FPGA Model:1768 WA 98052-6399

chanra1n2年前 (2023-06-10)FPGA9103

首先介绍一下Intel的Arria10器件

Arria 10是英特尔(Intel)公司的一款可编程逻辑器件(FPGA),是Altera公司在被Intel收购之前推出的产品之一。Arria 10系列FPGA具有高性能、低功耗和高度可编程的特点,广泛应用于通信、计算、图像处理和工业控制等领域。
Arria 10 FPGA采用了英特尔公司的第四代可编程逻辑器件架构,提供了高达1.5 TeraFLOPS的浮点性能和超过1.5 million逻辑单元。它具有灵活的硬核处理器系统(Hard Processor System,HPS),可以集成英特尔公司的ARM Cortex-A9双核处理器,实现FPGA和处理器的紧密协作。这使得Arria 10 FPGA既能实现高度并行的硬件加速,又能进行复杂的软件处理,为设计人员提供了更大的灵活性和性能优势。
Arria 10 FPGA还提供了丰富的高速接口,包括PCI Express Gen3 x8、10/40/100 Gigabit Ethernet、DDR4和DDR3存储器控制器等。这些接口使得Arria 10 FPGA能够实现高速数据传输和处理,适用于需要高带宽和低延迟的应用。
除了高性能和灵活性,Arria 10 FPGA还具有低功耗的特点。它采用了英特尔公司的22纳米工艺技术,优化了功耗和性能的平衡,提供了出色的能效比。这使得Arria 10 FPGA成为一种理想的解决方案,既能满足性能要求,又能节省能源成本。
总而言之,Arria 10是一款功能强大的可编程逻辑器件,具有高性能、低功耗和灵活性等特点。它广泛应用于通信、计算、图像处理、工业控制和数据中心等领域,为设计人员提供了一种高效、可定制的硬件平台。

Microsoft1768板卡长这样:

image.png

每个智能网卡都配备了一个大型的Arria 10 FPGA,4GB DDR4-SDRAM,128MB闪存用于FPGA配置,一个Mellanox NIC ASIC,一个用于50Gb以太网连接的QSFP+端口,三个8x PCIe Gen3接口,一个内置的USB编程器和几个LED指示灯。FPGA型号为:10AXF40GAA

image.png

板载ConnectX 3Pro is 40GbE capable连接器,10*512Mbit DDR4内存,FT232HL可实现Jtag在线编程。

image.png

FPGA:Altera Arria 10,非标准型号:10AXF40GAA。
用于FPGA配置的1 Gb(128 MB)QSPI闪存存储器:Micron N25Q00AA。
Mellanox NIC ASIC。
OCP版本使用ConnectX-3 Pro。
PCIe版本使用ConnectX-4 Lx。
5 GB(可用4.5 GB)DDR4 SDRAM,分为两个独立的2.25 GB 72位接口(64位数据+8位ECC):SK hynix H5AN4G6NAFR-UHC。
三个I2C总线。
用于U17再时钟和QSFP接口管理的总线。
用于管理以下部件的总线:多个电源分配组件、I2C EEPROM、PCIe时钟生成芯片、I2C到GPIO芯片、温度传感器和Mellanox NIC ASIC。
用于Mellanox NIC ASIC管理的总线。
两个独立的8x PCIe Gen3接口,用于FPGA。
第一个接口路由到SAMTEC连接器中的PCIe分流的第一个8x接口(OCP板)和PCIe边缘的1-8个通道(PCIe板)。
第二个接口路由到外部连接器J8(OCP板)和PCIe边缘的9-16个通道(PCIe板)。
一个8x PCIe Gen3接口用于Mellanox NIC ASIC,路由到SAMTEC连接器中的第二个8x PCIe分流(OCP板)和OCuLink连接器(PCIe板)。
一个通过U17再时钟与FPGA连接的QSFP+端口。
基于FTDI FT232H的板载USB JTAG编程器。
多个振荡器。
FPGA使用五个振荡器。
Mellanox NIC ASIC使用一个振荡器。
U17再时钟DS250DF810使用一个振荡器。
FT232H使用一个振荡器。
一个PCIe时钟分配芯片。
多个LED(其中9个可从FPGA访问)。
多个外部引脚排针。
一个I2C引脚排针用于QSFP电缆和再时钟管理。
一个I2C引脚排针用于电源调节组件、PCIe时钟生成、EEPROM、温度传感器等。
一个I2C引脚排针用于Mellanox NIC ASIC管理和LED状态。
一个用于使用标准Altera Blaster的JTAG连接的引脚排针。
一个用于风扇连接器的引脚排针(仅PCIe变种中存在)。
一个带有三个GPIO引脚的引脚排针,与FPGA相连(仅PCIe变种中存在)。
一个带有USB连接到FT232H板载编程器的引脚排针(与外部USB端口复用)。
FT232H板载编程器的外部USB端口。
OCP变种中为Micro USB。
PCIe变种中为USB Type B。
一个未知的带有2个引脚的引脚排针。
其他离散元件(电阻、电容、电平转换器等)。

image.png

image.png

image.png

作者通过Linux和Windows成功识别到了开发板,并实现程序烧录,Linux的版本号是Ubunt22.04,以下是步骤

image.png

你可以通过USB -> 方口USB2.0的线子连接电脑和板子,开发板可以通过12V供电,取电自PCIE接口,可以从拼多多购买PCIE延长线,延长线使用DC转4PIN线,从12V3A的电源适配器取电,注意,尽可能使用大功率的电源,我使用的是12V5A的60W电源,你可以参考,或者尽可能使用更大功率的电源。

然后Linux安装Quartus20.1标准版,当然,你也可以使用新版,这里安装教程略。

接下来安装FT232HL的驱动程序,请严格安装我的步骤进行:

1、安装依赖

# On Debian/Ubuntu hosts
sudo apt-get install -y libtool pkg-config texinfo libusb-dev libusb-1.0.0-dev libftdi-dev autoconf libjim-dev git wget build-essential cmake openocd

2、下载JTAG库

git clone https://github.com/j-marjanovic/jtag-quartus-ft232h
cd jtag-quartus-ft232h
mkdir build && cd build
cmake ..
make -j`nproc`

3、复制So文件到Quartus

注意,下面的/opt/quartus/linux64改成你实际的Quartus安装地址的Linux64文件夹下

#copy libjtag_hw_otma.so to your quartus linux64 directory (eg. $HOME/altera/15.0/quartus/linux64).
cp build/libjtag_hw_otma.so /opt/quartus/linux64

4、初始化设备

cat << EOF | sudo tee /etc/udev/rules.d/100-usb-ftdi.rulesSUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", OWNER="root", GROUP="plugdev", TAG+="uaccess"EOF
sudo adduser $USER plugdev
openocd \
    -f interface/ftdi/um232h.cfg \
    -c "adapter speed 2000; transport select jtag; jtag newtap auto0 tap -irlen 10 -expected-id 0x029070dd; init; exit;"

上面最后的openocd肯定会运行报错,根据报错提示的ID号修改后面的id,再重新运行。

5、尽情享用吧!

以上4步做完即可通过Quartus正常下载程序。

image.png

附上Demo工程和Pin表格

https://github.com/tow3rs/catapult-v3-smartnic-re

本文参考了以下链接的文章:

https://github.com/tow3rs/catapult-v3-smartnic-re

https://github.com/j-marjanovic/jtag-quartus-ft232h  


在Windows下的烧录方法

jtag_hw_microsoft_catapult.zip

将jtag_hw_microsoft_catapult.dll放入C:\intelFPGA\18.1\quartus\bin64下即可。

注:dll编译自https://github.com/marsohod4you/jtag_hw_mbftdi_blaster https://marsohod.org/

根据分析代码可知,烧录时间可以进一步优化(通过修改TCK的频率为30Mhz)。

AN_129_FTDI_Hi_Speed_USB_To_JTAG_Example.pdf

可能的步骤:1、修改PID和VID,FT232H对应0x04036014。

2、修改g_cfg_frequency为30000000,g_cfg_frequency_set改为True。

3、其他正在探索的步骤,如果你成功实现了,烦请联系我更新。

image.png

image.png

补充:

 1、尽量使用Quartus20.1+,虽然Demo用的是20.1,但是19.1和20.1是对18.1做的删减,而且这两个新的版本没有和谐方法。

image.png

如图使用的是Quartus18.1专业版,在Linux下的编译效率也嘎嘎的。

2、你需要修改器件型号,否则就会这样:

image.png

正确的型号是10AXF40GAE,如何修改呢?修改工程的qsf文件就可以

image.png

image.png

然后生成jif文件

image.png

板载Flash的丝印是RW188,反查得到是MT25QU01GBBB8E12-0SIT

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25qu01gbbb8e12-0sit

接下来的大家都会了,选择器件烧录即可。

image.png

但是一定要注意,如果只是调试,建议烧写SOF即可,一般几分钟就完了,但是如果要烧写JIF,真的是每次都要十多分钟!

还有一个更方便的方法,直接使用正式版的型号:

10AXF40GAE is the Arria 10 device (10AX115N2F40E2LG), which can be programed properly.

附上转换JIF的COF文件

<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<cof>
    <eprom_name>MT25QU01G</eprom_name>
    <flash_loader_device>10AXF40GAE</flash_loader_device>
    <output_filename>output_file.jic</output_filename>
    <n_pages>1</n_pages>
    <width>1</width>
    <mode>13</mode>
    <sof_data>
        <user_name>Page_0</user_name>
        <page_flags>1</page_flags>
        <bit0>
            <sof_filename>output_files/Catapult_v3_LEDs.sof</sof_filename> 
        </bit0>
    </sof_data>
    <version>10</version>
    <create_cvp_file>0</create_cvp_file>
    <create_hps_iocsr>0</create_hps_iocsr>
    <auto_create_rpd>0</auto_create_rpd>
    <rpd_little_endian>1</rpd_little_endian>
    <options>
        <map_file>1</map_file>
        <boot_page>Page_0</boot_page>
    </options>
    <advanced_options>
        <ignore_epcs_id_check>1</ignore_epcs_id_check>
        <ignore_condone_check>2</ignore_condone_check>
        <plc_adjustment>0</plc_adjustment>
        <post_chain_bitstream_pad_bytes>-1</post_chain_bitstream_pad_bytes>
        <post_device_bitstream_pad_bytes>-1</post_device_bitstream_pad_bytes>
        <bitslice_pre_padding>1</bitslice_pre_padding>
    </advanced_options>
</cof>

image.png

image.png

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:http://www.myfpga.cn/index.php/post/314.html

标签: 10AXF40GAE
分享给朋友:

“(原创)基于Microsoft1768板卡实现Win/Linux下Arria10器件的开发,环境配置和安装 FPGA Microsoft FPGA Model:1768 WA 98052-6399” 的相关文章

FPGA ALARM FPGA多功能闹钟 完整项目 内含上位机

FPGA ALARM FPGA多功能闹钟 完整项目 内含上位机

一、项目简述本项目使用苏州硬禾信息科技有限公司设计的小脚丫FPGA开发板设计了一个完成定时、测温、报警、控制的小项目,并通过上位机显示、下发音乐配置数据。本项目B站介绍:https://www.bilibili.com/video/BV1Vh411k7QV/二、研究进展(一)研究内容:l ...

Intel FPGA初级考试模拟试题 四套含答案

Intel FPGA初级考试模拟试题 四套含答案

*1.下列对异步信号进行同步的描述错误的是(使用锁存器)。采用保持寄存器加握手信号的方法特殊的具体应用电路结构,根据应用的不同而不同使用锁存器异步 FIFO *2.FPGA 的可编程是主要基于什么结构(查找表(LUT))。查找表(LUT)ROM 可编程PAL 可编程与或阵列可编程解析:FP...

SOC 在线修改设备树和FPGA配置文件 并在线配置FPGA

SOC 在线修改设备树和FPGA配置文件 并在线配置FPGA

测试过的平台:     1、DE-10 Cyclone V开发板              ...

Verilog实现时钟分频(奇数分频,偶数分频)二分频 三分频 四分频 五分频

Verilog实现时钟分频(奇数分频,偶数分频)二分频 三分频 四分频 五分频

完整工程文件:clkdiv.zip//------------------------------------------------------// File Name        : clkdiv.v// Author     &nb...

Xilinx FIFO和ILA学习

Xilinx FIFO和ILA学习

`timescale 1ns / 1ps//-------------------------------------------------------//Filename       ﹕ FIFO_TOP.v//Author      ...

Verilog实现串并转换

Verilog实现串并转换

项目文件:SIPO.zip//------------------------------------------------------// File Name        : SIPO.v// Author       &n...