0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用PCIe总线将FPGA板连接到运行Linux的X86主机

454398 来源:网络整理 作者:网络整理 2019-11-25 16:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:零件清单

0。运行Ubuntu

1的构建/主机计算机。 Xilinx VC707或KC705板

2。 FPGA电源线

3。 USB转Micro-USB电缆

4。 8线PCIE带状电缆(可选)

步骤2:将板卡连接到主机

如果外形尺寸如果允许,将板卡直接插入主机板主板上的开放PCIE插槽中。在这些说明中,我们使用的是1u机架式服务器,需要使用PCIe带状电缆。

步骤3:连接编程电缆

将电缆的MICRO USB端连接到Digilent USB JTAG表面安装的编程模块,另一端连接到主机上的空闲USB端口

步骤4:连接电源线

将电源线连接到板上,并将另一端插入墙上的插座。

步骤5:安装Vivado

如果要使用Connectal Build服务,请跳过此步骤。

p》

Connectal当前支持版本2014.1

步骤6:安装Bluespec

如果您正在使用Connectal Build Service,请跳过此步骤。

在某些计算机上,基础的Haskell运行时需要特定版本的libgmp。这种依赖性似乎是人为的,可以使用以下命令轻松伪造:

sudo ln -s /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3 /usr/lib/x86_64-linux-gnu/libgmp.so.3

步骤7:安装Connectal

即使您在使用Connectal Build Service时,必须安装软件包才能对设备进行编程并执行设计。以下命令将添加连接存储库并下载/安装软件包:

sudo apt-add-repository -y ppa:jamey-hicks/connectal

sudo apt-get update

sudo apt-get install connectal

您将需要重新引导计算机(对于udev)。如果未自动加载portalmem驱动程序,请使用modprobe

sudo modprobe portalmem

加载它。安装脚本会将Connectal源代码写入/usr/share/connectal。

第8步:编译并运行设计

如果您使用的是Connectal Build Service,请按照此处的示例进行构建(请确保使用https://github.com/connectal-examples/simple.git并选择正确的构建目标)。否则,请继续执行此步骤以在本地下载并编译设计。

检出一个示例项目,然后为已安装的板(kc705)编译构建该项目。

git clone https://github.com/connectal-examples/simple.git

cd simple

make CONNECTALDIR=/usr/share/connectal IPDIR=~/connectalip build.kc705

最后,运行示例:

make CONNECTALDIR=/usr/share/connectal IPDIR=~/connectalip run.kc705

如果这是您在安装主板后的首次尝试,则运行命令将失败,并显示以下错误(或类似错误):

Failed to open /dev/portal1 fd=-1 errno=2

如果是这种情况,请重新引导主机再次运行计算机(用于检测BIOS PCIe)并重新调用运行命令:

mdk@xg06:~/sandbox/simple$ make CONNECTALDIR=/usr/share/connectal IPDIR=~/connectalip run.kc705

make -C kc705 BOARD=kc705 --no-print-directory run

/usr/share/connectal/scripts/run.pcietest bin/mk*.bin.gz bin/ubuntu.exe

+ set -e

+ dirname /usr/share/connectal/scripts/run.pcietest

+ cd /usr/share/connectal/scripts

+ pwd

+ export SCRIPT_DIR=/usr/share/connectal/scripts

+ echo run.pcie parameters are: bin/mkTop.bin.gz bin/ubuntu.exe

run.pcie parameters are: bin/mkTop.bin.gz bin/ubuntu.exe

+ SSHPARAM= -o StrictHostKeyChecking=no

+ [ != ]

+ BOARD_SERIAL=

+ [ != ]

+ TIMELIMIT=3m

+ [ != ]

+ [ != 1 ]

+ fpgajtag bin/mkTop.bin.gz

fpgajtag: Digilent:Digilent Adept USB Device:210203339470; bcd:700

fpgajtag: unzip input file, len 731639

fpgajtag: bypass already programmed bc

fpgajtag: bypass already programmed bc

fpgajtag: bypass already programmed bc

STATUS 00401079 done 0 release_done 0 eos 10 startup_state 0

fpgajtag: Starting to send file

fpgajtag: Done sending file

STATUS 00401079 done 0 release_done 0 eos 10 startup_state 0

Running /usr/bin/pciescan.sh

+ PATH=/scratch/Xilinx/Vivado/2014.1/bin:/scratch/bluespec/Bluespec-2014.05.beta1/bin:/scratch/arm-2009q1/bin:/home/mdk/bin:/scratch/android-ndk-r9d:/scratch/jdk1.6.0_45/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin

++ lspci -d 1be7:c100

++ sed -e ‘s/ .*//’

+ BLUEDEVICE=03:00.0

+ ‘[’ 03:00.0 ‘!=’ ‘’ ‘]’

+ sh -c ‘echo 1 》/sys/bus/pci/devices/0000:03:00.0/remove’

+ rmmod pcieportal

+ sh -c ‘echo 1 》/sys/bus/pci/rescan’

+ sleep 1

+ timeout 3m catchsegv bin/ubuntu.exe

Portal::registerInstance fpga1 fd 3 clients 0

portalExec::about to enter loop, numFds=1

Main::calling say1(42)

Main::calling say2(2, 4)

Main::calling say3(S1{a:3,b:6})

Main::calling say4(S2{a:7,b:8,c:9})

Main::calling say5(00000000, deadbeeffecafeca, 00000001)

Main::calling say6(bbbbbbbb, 000000effecafeca, cccccccc)

Main::calling say7(dadadada, 00000001)

Main::calling say8

say1(42)

say2(2 4)

say3(S1{a:3,b:6})

say4(S2{a:7,b:8,c:9})

Main::about to go to sleep

say5(00000000, deadbeeffecafeca, 00000001)

say6(bbbbbbbb, 000000effecafeca, cccccccc)

say7(dadadada, 00000001)

say8

[0] = 0x0

[1] = 0xffffffe0

[2] = 0xffffffc0

[3] = 0xffffffa0

[4] = 0xffffff80

[5] = 0xffffff60

[6] = 0xffffff40

[7] = 0xffffff20

[8] = 0xffffff00

[9] = 0xfffffee0

[10] = 0xfffffec0

[11] = 0xfffffea0

[12] = 0xfffffe80

[13] = 0xfffffe60

[14] = 0xfffffe40

[15] = 0xfffffe20

[16] = 0xfffffe00

[17] = 0xfffffde0

[18] = 0xfffffdc0

[19] = 0xfffffda0

[20] = 0xfffffd80

[21] = 0xfffffd60

[22] = 0xfffffd40

[23] = 0xfffffd20

[24] = 0xfffffd00

[25] = 0xfffffce0

[26] = 0xfffffcc0

[27] = 0xfffffca0

[28] = 0xfffffc80

[29] = 0xfffffc60

[30] = 0xfffffc40

[31] = 0xfffffc20

[32] = 0xfffffc00

[33] = 0xfffffbe0

[34] = 0xfffffbc0

[35] = 0xfffffba0

[36] = 0xfffffb80

[37] = 0xfffffb60

[38] = 0xfffffb40

[39] = 0xfffffb20

[40] = 0xfffffb00

[41] = 0xfffffae0

[42] = 0xfffffac0

[43] = 0xfffffaa0

[44] = 0xfffffa80

[45] = 0xfffffa60

[46] = 0xfffffa40

[47] = 0xfffffa20

[48] = 0xfffffa00

[49] = 0xfffff9e0

[50] = 0xfffff9c0

[51] = 0xfffff9a0

[52] = 0xfffff980

[53] = 0xfffff960

[54] = 0xfffff940

[55] = 0xfffff920

[56] = 0xfffff900

[57] = 0xfffff8e0

[58] = 0xfffff8c0

[59] = 0xfffff8a0

[60] = 0xfffff880

[61] = 0xfffff860

[62] = 0xfffff840

[63] = 0xfffff820

[64] = 0xfffff800

[65] = 0xfffff7e0

[66] = 0xfffff7c0

[67] = 0xfffff7a0

[68] = 0xfffff780

[69] = 0xfffff760

[70] = 0xfffff740

[71] = 0xfffff720

[72] = 0xfffff700

[73] = 0xfffff6e0

[74] = 0xfffff6c0

[75] = 0xfffff6a0

[76] = 0xfffff680

[77] = 0xfffff660

[78] = 0xfffff640

[79] = 0xfffff620

[80] = 0xfffff600

[81] = 0xfffff5e0

[82] = 0xfffff5c0

[83] = 0xfffff5a0

[84] = 0xfffff580

[85] = 0xfffff560

[86] = 0xfffff540

[87] = 0xfffff520

[88] = 0xfffff500

[89] = 0xfffff4e0

[90] = 0xfffff4c0

[91] = 0xfffff4a0

[92] = 0xfffff480

[93] = 0xfffff460

[94] = 0xfffff440

[95] = 0xfffff420

[96] = 0xfffff400

[97] = 0xfffff3e0

[98] = 0xfffff3c0

[99] = 0xfffff3a0

[100] = 0xfffff380

[101] = 0xfffff360

[102] = 0xfffff340

[103] = 0xfffff320

[104] = 0xfffff300

[105] = 0xfffff2e0

[106] = 0xfffff2c0

[107] = 0xfffff2a0

[108] = 0xfffff280

[109] = 0xfffff260

[110] = 0xfffff240

[111] = 0xfffff220

[112] = 0xfffff200

[113] = 0xfffff1e0

[114] = 0xfffff1c0

[115] = 0xfffff1a0

[116] = 0xfffff180

[117] = 0xfffff160

[118] = 0xfffff140

[119] = 0xfffff120

[120] = 0xfffff100

[121] = 0xfffff0e0

[122] = 0xfffff0c0

[123] = 0xfffff0a0

[124] = 0xfffff080

[125] = 0xfffff060

[126] = 0xfffff040

[127] = 0xfffff020

+ [ != ]

+ pcieflat

mdk@xg06:~/sandbox/simple

mdk@xg06:~/sandbox/simple$ make CONNECTALDIR=/usr/share/connectal IPDIR=~/connectalip run.kc705

make -C kc705 BOARD=kc705 --no-print-directory run

/usr/share/connectal/scripts/run.pcietest bin/mk*.bin.gz bin/ubuntu.exe

+ set -e

+ dirname /usr/share/connectal/scripts/run.pcietest

+ cd /usr/share/connectal/scripts

+ pwd

+ export SCRIPT_DIR=/usr/share/connectal/scripts

+ echo run.pcie parameters are: bin/mkTop.bin.gz bin/ubuntu.exe

run.pcie parameters are: bin/mkTop.bin.gz bin/ubuntu.exe

+ SSHPARAM= -o StrictHostKeyChecking=no

+ [ != ]

+ BOARD_SERIAL=

+ [ != ]

+ TIMELIMIT=3m

+ [ != ]

+ [ != 1 ]

+ fpgajtag bin/mkTop.bin.gz

fpgajtag: Digilent:Digilent Adept USB Device:210203339470; bcd:700

fpgajtag: unzip input file, len 731639

fpgajtag: bypass already programmed bc

fpgajtag: bypass already programmed bc

fpgajtag: bypass already programmed bc

STATUS 00401079 done 0 release_done 0 eos 10 startup_state 0

fpgajtag: Starting to send file

fpgajtag: Done sending file

STATUS 00401079 done 0 release_done 0 eos 10 startup_state 0

Running /usr/bin/pciescan.sh

+ PATH=/scratch/Xilinx/Vivado/2014.1/bin:/scratch/bluespec/Bluespec-2014.05.beta1/bin:/scratch/arm-2009q1/bin:/home/mdk/bin:/scratch/android-ndk-r9d:/scratch/jdk1.6.0_45/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin

++ lspci -d 1be7:c100

++ sed -e ‘s/ .*//’

+ BLUEDEVICE=03:00.0

+ ‘[’ 03:00.0 ‘!=’ ‘’ ‘]’

+ sh -c ‘echo 1 》/sys/bus/pci/devices/0000:03:00.0/remove’

+ rmmod pcieportal

+ sh -c ‘echo 1 》/sys/bus/pci/rescan’

+ sleep 1

+ timeout 3m catchsegv bin/ubuntu.exe

Portal::registerInstance fpga1 fd 3 clients 0

portalExec::about to enter loop, numFds=1

Main::calling say1(42)

Main::calling say2(2, 4)

Main::calling say3(S1{a:3,b:6})

Main::calling say4(S2{a:7,b:8,c:9})

Main::calling say5(00000000, deadbeeffecafeca, 00000001)

Main::calling say6(bbbbbbbb, 000000effecafeca, cccccccc)

Main::calling say7(dadadada, 00000001)

Main::calling say8

say1(42)

say2(2 4)

say3(S1{a:3,b:6})

say4(S2{a:7,b:8,c:9})

Main::about to go to sleep

say5(00000000, deadbeeffecafeca, 00000001)

say6(bbbbbbbb, 000000effecafeca, cccccccc)

say7(dadadada, 00000001)

say8

[0] = 0x0

[1] = 0xffffffe0

[2] = 0xffffffc0

[3] = 0xffffffa0

[4] = 0xffffff80

[5] = 0xffffff60

[6] = 0xffffff40

[7] = 0xffffff20

[8] = 0xffffff00

[9] = 0xfffffee0

[10] = 0xfffffec0

[11] = 0xfffffea0

[12] = 0xfffffe80

[13] = 0xfffffe60

[14] = 0xfffffe40

[15] = 0xfffffe20

[16] = 0xfffffe00

[17] = 0xfffffde0

[18] = 0xfffffdc0

[19] = 0xfffffda0

[20] = 0xfffffd80

[21] = 0xfffffd60

[22] = 0xfffffd40

[23] = 0xfffffd20

[24] = 0xfffffd00

[25] = 0xfffffce0

[26] = 0xfffffcc0

[27] = 0xfffffca0

[28] = 0xfffffc80

[29] = 0xfffffc60

[30] = 0xfffffc40

[31] = 0xfffffc20

[32] = 0xfffffc00

[33] = 0xfffffbe0

[34] = 0xfffffbc0

[35] = 0xfffffba0

[36] = 0xfffffb80

[37] = 0xfffffb60

[38] = 0xfffffb40

[39] = 0xfffffb20

[40] = 0xfffffb00

[41] = 0xfffffae0

[42] = 0xfffffac0

[43] = 0xfffffaa0

[44] = 0xfffffa80

[45] = 0xfffffa60

[46] = 0xfffffa40

[47] = 0xfffffa20

[48] = 0xfffffa00

[49] = 0xfffff9e0

[50] = 0xfffff9c0

[51] = 0xfffff9a0

[52] = 0xfffff980

[53] = 0xfffff960

[54] = 0xfffff940

[55] = 0xfffff920

[56] = 0xfffff900

[57] = 0xfffff8e0

[58] = 0xfffff8c0

[59] = 0xfffff8a0

[60] = 0xfffff880

[61] = 0xfffff860

[62] = 0xfffff840

[63] = 0xfffff820

[64] = 0xfffff800

[65] = 0xfffff7e0

[66] = 0xfffff7c0

[67] = 0xfffff7a0

[68] = 0xfffff780

[69] = 0xfffff760

[70] = 0xfffff740

[71] = 0xfffff720

[72] = 0xfffff700

[73] = 0xfffff6e0

[74] = 0xfffff6c0

[75] = 0xfffff6a0

[76] = 0xfffff680

[77] = 0xfffff660

[78] = 0xfffff640

[79] = 0xfffff620

[80] = 0xfffff600

[81] = 0xfffff5e0

[82] = 0xfffff5c0

[83] = 0xfffff5a0

[84] = 0xfffff580

[85] = 0xfffff560

[86] = 0xfffff540

[87] = 0xfffff520

[88] = 0xfffff500

[89] = 0xfffff4e0

[90] = 0xfffff4c0

[91] = 0xfffff4a0

[92] = 0xfffff480

[93] = 0xfffff460

[94] = 0xfffff440

[95] = 0xfffff420

[96] = 0xfffff400

[97] = 0xfffff3e0

[98] = 0xfffff3c0

[99] = 0xfffff3a0

[100] = 0xfffff380

[101] = 0xfffff360

[102] = 0xfffff340

[103] = 0xfffff320

[104] = 0xfffff300

[105] = 0xfffff2e0

[106] = 0xfffff2c0

[107] = 0xfffff2a0

[108] = 0xfffff280

[109] = 0xfffff260

[110] = 0xfffff240

[111] = 0xfffff220

[112] = 0xfffff200

[113] = 0xfffff1e0

[114] = 0xfffff1c0

[115] = 0xfffff1a0

[116] = 0xfffff180

[117] = 0xfffff160

[118] = 0xfffff140

[119] = 0xfffff120

[120] = 0xfffff100

[121] = 0xfffff0e0

[122] = 0xfffff0c0

[123] = 0xfffff0a0

[124] = 0xfffff080

[125] = 0xfffff060

[126] = 0xfffff040

[127] = 0xfffff020

+ [ != ]

+ pcieflat

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22304

    浏览量

    630761
  • Linux
    +关注

    关注

    88

    文章

    11635

    浏览量

    218092
  • PCIE总线
    +关注

    关注

    0

    文章

    58

    浏览量

    13954
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PCIE725G】青翼凌云科技基于 PCIe x16 总线架构的 JFM9VU9P FPGA 高性能数据预处理平台(100%国产化)

    PCIE725G 是一款基于 PCIe x16 总线架构的高性能 FMC 接口信号处理平台,该平台支持采用 16nm 工艺 JFM9VU9P FPG
    的头像 发表于 11-05 17:30 595次阅读
    【<b class='flag-5'>PCIE</b>725G】青翼凌云科技基于 <b class='flag-5'>PCIe</b> <b class='flag-5'>x</b>16 <b class='flag-5'>总线</b>架构的 JFM9VU9P <b class='flag-5'>FPGA</b> 高性能数据预处理平台(100%国产化)

    PCIE737】青翼凌云科技基于全高PCIe x8总线的KU115 FPGA高性能硬件加速卡

    PCIE737是一款基于PCIE总线架构的KU115 FPGA的12路光纤通道处理平台,该板卡具有1个PCIe Gen3
    的头像 发表于 11-03 16:31 480次阅读
    【<b class='flag-5'>PCIE</b>737】青翼凌云科技基于全高<b class='flag-5'>PCIe</b> <b class='flag-5'>x</b>8<b class='flag-5'>总线</b>的KU115 <b class='flag-5'>FPGA</b>高性能硬件加速卡

    PCIE723】青翼凌云科技基于 VU3P FPGA 的 100%全国产化高性能 PCIe 数据预处理载

    PCIE723 是一款基于国产 16nm 工艺 FM9VU3P FPGAPCIE 总线架构的全国产化高性能数据预处理平台,板卡具有 1 个 FMC+ (HPC)接口,1 路
    的头像 发表于 09-24 12:03 1155次阅读
    【<b class='flag-5'>PCIE</b>723】青翼凌云科技基于 VU3P <b class='flag-5'>FPGA</b> 的 100%全国产化高性能 <b class='flag-5'>PCIe</b> 数据预处理载<b class='flag-5'>板</b>

    嵌入式接口通识知识之PCIe接口

    PCIe插槽连接到主板上。插槽的形状和尺寸根据通道数不同而有所变化,常见的插槽类型有PCIe x1、x4、
    发表于 08-21 16:51

    PCIe协议分析仪能测试哪些设备?

    场景:分析连接到PCIe总线的NVMe存储设备的性能,评估高速数据读写时的表现。 应用价值:优化存储子系统,确保其满足大规模数据集训练任务的需求。 企业级存储阵列 测试场景:测试多盘位NVMe SSD
    发表于 07-25 14:09

    KaihongOS桌面版成功适配x86设备,邀您抢先体验!

    2025年6月30日,KaihongOS桌面版已成功适配x86设备,首次开启开发者Beta体验!我们诚邀您参与本次体验计划,共同探索国产操作系统的创新与潜力。您的反馈帮助我们优化系统,打造更稳
    的头像 发表于 06-30 22:57 1252次阅读
    KaihongOS桌面版成功适配<b class='flag-5'>x86</b>设备,邀您抢先体验!

    聚徽厂家视角——X86 架构 vs. ARM 架构:工控一体机的算力、功耗与成本差异解析

    ,有助于企业精准选型,实现工业生产效益最大化。 算力比拼:复杂运算与高效并行的较量 X86 架构:复杂指令集下的计算强者 X86 架构凭借复杂指令集计算(CISC)设计,在处理复杂数据和高负载运算任务时优势尽显。以运行大型工业软
    的头像 发表于 06-07 14:56 679次阅读

    龙芯处理器支持WINDOWS吗?

    龙芯处理器目前不支持原生运行Windows操作系统,主要原因如下: 架构差异 龙芯架构:龙芯早期基于MIPS架构,后续转向自主研发的LoongArch指令集(与x86/ARM不兼容
    发表于 06-05 14:24

    请问可以EEPROM和FPGA连接到FX3 I2C线路上吗?

    我的客户使用带有 UVC 32 位配置的 FX3。 他们希望 EEPROM 和 FPGA 连接到 I2C 线路。 这有什么问题吗? 因为 EEPROM 是用来启动的,所以我想检查一下是否有问题。
    发表于 05-21 06:33

    【高清视频案例分享】CameraLink接口的PCIe采集卡 ,基于FPGA开发平台

    相机、Kintex7开发和电脑主机对应连接,硬件连接如下图所示 图 6 案例实物连接 Kintex7开发
    发表于 03-25 15:21

    linux下编译了cyusbserial SDK生成so文件,但是运行测试程序和编写API都访问不到DLP3010EVM,为什么?

    主要想再arm-linux下控制DLP3010,但是发现Ubuntu x86和 zynq 的petalinux 都不行 请问TI对于linux下控制DLP3010EVM有相关的示例,或者demo,或者手册指导说明吗?
    发表于 02-26 08:27

    使用插件Excel连接到MySQL/MariaDB

    使用插件 Excel 连接到 MySQL/MariaDB 适用于 MySQL 的 Devart Excel 插件允许您将 Microsoft Excel 连接到 MySQL 或 MariaDB
    的头像 发表于 01-20 12:38 1154次阅读
    使用插件<b class='flag-5'>将</b>Excel<b class='flag-5'>连接到</b>MySQL/MariaDB

    ARM与x86:架构对比及其应用

    典型的服务器架构的x86采用模块化方法,基于带有可更换组件的主板。CPU和其他组件(如显卡和GPU、内存控制器、存储或处理核心)针对特定功能进行了优化,可以轻松更换或扩展。然而,这种便利是有代价
    的头像 发表于 01-15 15:43 2076次阅读
    ARM与<b class='flag-5'>x86</b>:架构对比及其应用

    EE-86SHARC 2106x DSP与PLX 9080 PCI桥接芯片连接

    电子发烧友网站提供《EE-86SHARC 2106x DSP与PLX 9080 PCI桥接芯片连接.pdf》资料免费下载
    发表于 01-08 14:42 0次下载
    EE-<b class='flag-5'>86</b>:<b class='flag-5'>将</b>SHARC 2106<b class='flag-5'>x</b> DSP与PLX 9080 PCI桥接芯片<b class='flag-5'>连接</b>

    Arm主板与x86主板的区别

    在当今数字化迅猛发展的时代,计算机硬件的架构选择对于系统的性能、能效以及适用性具有至关重要的影响。Arm架构与x86架构是目前主流的两种计算机体系结构,各自在个人计算机、服务器、嵌入式系统及移动设备
    的头像 发表于 01-07 12:21 1472次阅读
    Arm主板与<b class='flag-5'>x86</b>主板的区别