MyFPGA Forum

 找回密码
 注册
搜索
查看: 3647|回复: 5

2018年产学合作培训课程FAQ汇总

[复制链接]
发表于 2023-6-12 09:43:57 | 显示全部楼层 |阅读模式
本帖最后由 Doreen 于 2023-6-29 11:51 编辑

第一课 第一个 FPGA 工程

1. FPGA设计中为什么要添加时序约束?
答:Synopsys Design Constraints
时序约束文件里面添加的是一些约束信号路径延迟的命令,如果没有这些约束, 系统将根据默认设置自动布局布线,当工程内的信号速度要求比较高的时候,将可能会出现延迟过大导致得到数据不匹配。

1. Quartuss工程里面有中文路径或者空格会怎么样?
答:一个Quartus II 工程如果路径带有空格, 编译没有问题, 但是 后面试用system console等调试的时候会出错。
一个Quartus II 工程如果路基带有中文,基本上很难打开这个工程。要么打开了 编译就一直转圈圈。工程显示(未响应)
 楼主| 发表于 2023-6-12 10:07:36 | 显示全部楼层
本帖最后由 Doreen 于 2023-6-30 11:26 编辑

第二课 第一个 Platform Designer 系统
1. 当提示“clock_in_reset must be connected to a reset source”, 表示这个接口没有被导出,需要被导出。
1.png
答:可以如下方式导出:
2.png
或者在export栏直接双击被导出。

2. 如果提示”soc_system_system_id" cannot be declared more than once"
说明客户添加了.qip和.qsys两个文件如下图:

3.png
答:删掉其中一个即可:
4.png

3. 學員執行到這一行 有不少的會出現 錯誤 :
6.png
5.png
答:,  建議遇到就把quartus 工程 關閉 重新開啟專案後, 再 run tcl 

4. 当遇到如下错误
7.png
答:文件sopc-create-header-files 是小横线,而不是下划线

5. Tcl console的命令解释

答: 8.png

6. 当编译遇到如下错误332000 can‘t read BAT_PATH...  Error (11802): Can't fit design in device. Modify your design to reduce resources,
8e7bffb2ca834cf4d48f54e0f9cdc88b.jpg
答:sdc文件复制有误,请先移除掉旧的sdc文件,然后复制新的sdc文件并添加到工程。
 楼主| 发表于 2023-6-12 10:09:16 | 显示全部楼层
本帖最后由 BOB_Sun 于 2023-7-5 16:48 编辑

第三课 使用 System Console 与 FPGA 设计交互
1. 用system console命令与FPGA 组件进行交互的时候,为什么开关按键都能响应且结果正确,但LED ( 用命令master_write_32 $c_path $led 0x55)却不响应呢:
答:开关按钮能响应,说明FPGA 配置程序已经下载到板子上了, LED 不响应, 请查看LED 组件的实际地址和你命令里面的地址是否一致。

2. 请问open_service 和claim_service 是一个功能吧? 在locate一个服务以后,open操作或者claim操作二选一都可以吧?
答:是的。

3. device_download_sof $d_path output_files/blink.sof 提示没有jtag connection?
mm.jpg

答:最后发现Quartus 工程的路径有空格(去掉空格即可), 或是电脑用户名是中文导致的。

4. jtag_debug_loop $jb_path [list 1 2 4 8 15 16]提示 jtag_debug_loop...is not valid?

bbb.png
答:也是Quartus 工程的路径有空格(去掉空格即可)。或者只打开了system console, 没有打开对应的Quartus工程。

5. 提示sof file doesn't exist?
jj.jpg
答:这是因为学生只打开了system console, 没有打开对应的Quartus工程,所以找不到。

6. 执行jtag_debug_sample_reset $jb_path命令对reset 进行采样时,按与不按KEY0,运行结果始终为1;按KEY1运行结果却是0。
reset.jpg
答:这应该是KEY0和KEY1的引脚分配反了,在pin planner里检查引脚分配。

7. 创建完Platform Designer系统,Generate HDL没有问题,整理到Quartus工程再编译也没有问题,使用System Console工具与FPGA的组件进行交互,与LED交互没有问题,但是与BUTTON、SW交互都没有任何反应。
答:检查Platform Designer系统的BUTTON和SW组件发现,BUTTON和SW的direction设置成了output,它们都是input组件,应该设置为input。
input.jpg
 楼主| 发表于 2023-6-12 10:09:34 | 显示全部楼层
本帖最后由 Doreen 于 2023-7-3 15:54 编辑

第四课 第一个HPS系统

1.1. 关于SOC FPGA的HPS 端引脚复用的理解可以参考什么资料吗?
答:可以参考Intel 的 SOC FPGA的datasheet, 也可以参考下面的帖子:
https://www.cnblogs.com/DoreenLiu/p/14012088.html
https://www.cnblogs.com/DoreenLiu/p/14242046.html
 楼主| 发表于 2023-6-12 10:10:16 | 显示全部楼层
本帖最后由 Doreen 于 2023-7-4 15:19 编辑

第五课 使用 U-Boot 与 FPGA 设计交互
1. 我只有windows系统,手边没有linux环境怎么做实验?
答: 可以先安装一个免费的虚拟机(下载:https://www.virtualbox.org/wiki/Download_Old_Builds_6_1 ), 然后安装linux系统(https://cn.ubuntu.com/download)。注意内存和磁盘开大一点,。

2. 我之前设置过路径(export DE10_NANO=~/de10-nano 命令),为什么在后续的操作过程还是会提示找不到文件?
答:每次调用变量DE10_NANO,要用$符号, 每次调用就会进入到home/de10-nano路径下。该命令只在当前窗口有效。当窗口关闭,该变量无效。另外,linux的terminal终端命令行的前面 带 #是root用户, 带 $ 是普通用户。

3. 如何查看SD卡插到linux系统以后的盘分区?
答:使用命令:cat /proc/partitions ,下面sda 是系统盘,sdb是SD卡。sdb1 sdb2 sdb3是SD卡的三个分区。sdb1是FAT分区,rbf等文件需拷贝到这个分区。
企业微信截图_16866377744743.png

4. 执行make socfpga_de10_nano_defconfig的时候提示bin/sh cc 未找到命令。
123.png
答:原因是未安装gcc, 解决办法:请执行
sudo apt-get upgrade
sudo apt-get install build-essential
(注意:ubuntu安装都是用apt-get 不是yum)然后再执行make socfpga_de10_nano_defconfig如下:
125.png

5. 执行make examples的时候提示gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf -gcc: command not found
124.png
答:可能是环境变量设置
export CROSS_COMPILE=$DE10_NANO/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/
export CROSS_COMPILE=${CROSS_COMPILE}bin/arm-linux-gnueabihf-
存在问题。

在home/de10-nano/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/路径下先用pwd命令查看真实路径,然后用真实路径设置CROSS_COMPILE的值,结果是虽然不报错gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf -gcc: command not found, 但是依然报scripts/kconfig/conf问题。
ccccc.png
然后用命令sudo su 进入root权限,用cd命令进入uboot-socfpga/git/路径下,设置export CROSS_COMPILE=home/de10-nano/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
红色部分用真实路径代替,然后用命令env查看CROSS_COMPILE变量是否正确。正确以后再执行make socfpga_de10_nano_defconfig和make examples命令即可。


6. 关于手册第101页提到的miscmodrst寄存器的原始介绍文档在哪?
答:参见Intel https://www.intel.com/content/ww ... o1410067768606.html
33333.png

7. 当测试循环点亮LED时提示itest用法不对怎么回事?
ccccccxxxxx.png
答:< 前后要有空格。比较如下:
while itest ${COUNT}<0x0a
while itest ${COUNT} < 0x0a

8. 这个命令cp -r sources/arm-angstrom-linux-gnueabi/u-boot-socfpga* uboot-socfpga什么意思?
答:-r 表示把文件夹子目录也都包括进去。
新建一个uboot-socfpga 目录,*代表/u-boot-socfpga开头的文件夹,就是把解压的压缩包里面的uboot-socfpga*内容 拷贝出来到uboot-socfpga 文件夹。

9. 这个命令cat ../*.patch | patch -p1的-p1是什么意思?

答:打补丁,下载的uboot 不能直接使用,需要做修改,别人把要做的修改打包成补丁,然后使用patch 指令来打补丁。
是用cat命令将的home/de10-nano/uboot-socfpga/git目录的前一级目录中的所有.patch文件打印输出给 patch命令作为其输入。
-p1是跳过一级目录,详细请参考:https://blog.csdn.net/MAOTIANWANG/article/details/11107083

它产生补丁时,是对目录 a 和 b 来做的操作,所以,如果你打补丁是在与a b 同目录就用p0 
如果进入了a目录就相当于少了一级目录 就叫跳过一级目录,就用p1 ,如果在进入子目录,就是跳两级目录,用p2。

10. sudo dd if=de10-nano-image-Angstrom- v2016.12.socfpga-sdimg of=/dev/sdx bs=16M,这里  bs=16M是什么意思?

就是一次烧写的数据大小。是一次写16M,直到写完,不是只写16M。
bs是blocksize。
 命令可以参考:https://blog.csdn.net/xizaihui/article/details/53307578

11. 这个命令里面go是什么意思? 为什么是地址0x0C100001?
企业微信截图_20230615155255.png
答:go命令,是可以跳到指定地址执行代码的命令

## Ready for S-Record download ...

## First Load Addr = 0x0C100000
## Last  Load Addr = 0x0C10020D
## Total Size      = 0x0000020E = 526 Bytes
## Start Addr      = 0x0C100001

application 是从 0x0C100001 start。
 楼主| 发表于 2023-6-12 10:10:38 | 显示全部楼层
本帖最后由 Doreen 于 2023-6-28 10:57 编辑

第六课 使用 Linux 与 FPGA 设计交互

1. setenv等这些命令是怎么定义的?另外,fpga_cfg等这些环境变量的值怎么查看?
答:可以在U-Boot阶段下发help 和echo命令查看:
22222222222.png
111.png
2. 测试6.7章节时若复制命令cat /sys/kernel/config/device-tree/overlays/soc_system.dtbo/path到板子串口会发现串口卡死现象,怎么解决?
答:可能是命令太长卡死了。 建议到了这一步以后的长命令都手敲入而不要复制。

3. 运行与sysfs程序时报错 ERROR: FPGA state not in 'operating' mode'/sys/class/fpga_manager/fpga0/state'FPGA state: 'power off'?
企业微信截图_16878548159388.png

答:

4. 为什么运行 ./read_switch_pio_sysfs.sh时LED灯没有亮, 终端也没有看到报错?

答:可能是开发板对应的dtb文件没有正确加载导致的, 请回到第6.3章节将下面的命令再执行一次:
=> setenv fpga_file blink.rbf
=> run fpga_cfg
=> fatload mmc 0:1 ${kernel_addr_r} zImage
=> fatload mmc 0:1 ${fdt_addr} socfpga_cyclone5_de10_nano.dtb
=> setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait'
=> bootz ${kernel_addr_r} - ${fdt_addr}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-4-16 15:20 , Processed in 0.045561 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表