FPGA 微码问题


  • USRP FPGA 的配置微码文件的载入?

在使用 GNU Radio USRP 函数时,宿主库负责将 “.rbf” 文件载入 FPGA 。此过程通过 USB 完成。

尽管如此,使用 usrper 命令也可手动装载 .rbf 文件:

$ usrper --help
usage:
usrper [-v] [-w <which_board>] [-x] ...
usrper load_standard_bits
usrper load_firmware <file.ihx>
usrper load_fpga <file.rbf>
usrper write_fpga_reg <reg8> <value32>
usrper set_fpga_reset {on|off}
usrper set_fpga_tx_enable {on|off}
usrper set_fpga_rx_enable {on|off}
----- diagnostic routines -----
usrper led0 {on|off}
usrper led1 {on|off}
usrper set_hash0 <hex-string>
usrper get_hash0
usrper i2c_read i2c_addr len
usrper i2c_write i2c_addr <hex-string>
usrper 9862a_write regno value
usrper 9862b_write regno value
usrper 9862a_read regno
usrper 9862b_read regno

$ usrper load_fpga <name of your .rbf file>

上面的命令会将 “.rbf” 文件载入 FPGA 。在此提请注意,载入不当的微码极有可能导致 USRP 永久损坏。

  • 在使用 python 程序(诸如 usrp_fft.py) 对 FPGA 进行编程时,是否产生相同的 .rbf 文档?它位于何处?

文档不会被生成,只能被载入。缺省地,rbf 文档被从 /usr/local/share/usrp/rev{2,4} 处载入。

The files aren't generated, they are loaded. By default, an rbf is loaded from /usr/local/share/usrp/rev{2,4}. The one used unless you specify the fpga_filename constructor argument when instantiating a usrp source or sink is std_2rxhb_2tx.rbf. FYI, we load std.ihx, standard firmware for the Cypress FX2 USB controller, before loading the FPGA .rbf file. We load the FX2 firmware over the USB. That firmware implements additional control endpoint commands, including those that know how to load an .rbf into the FPGA.












注:FPGA Bit Stream Questions(原文出处,翻译整理仅供参考!)