FPGA常见问题解决方法

0 使用加法,注意数据位宽的变化

// 将四个阵元加权后的信号合成起来  
//下面这行代码不对,没有考虑位宽的扩展
//assign  real_y = Ct_1I+Ct_2I+Ct_3I+Ct_4I; // 实部

// 为什么需要扩展两位  
// 比如:4个1相加等于4,加数只需要1bit进行表示,而和需要3bit进行表示,所以要扩展两位
// 由于最后只需要16bit,所以低两位不要。
wire [17:0] real_y_18bit;  
wire [17:0] imag_y_18bit;

  
assign  real_y_18bit = {Ct_1I[15],Ct_1I[15],Ct_1I}
                      +{Ct_2I[15],Ct_2I[15],Ct_2I}
                      +{Ct_3I[15],Ct_3I[15],Ct_3I}
                      +{Ct_4I[15],Ct_4I[15],Ct_4I}; // 实部 

1 IP怎么调用

在这里插入图片描述

2 如何在仿真中观察更多的信号

跑出结果后—双击uut----选中object的所有信号—右键,点击 add to wave window
在这里插入图片描述

3 仿真波形如何显示十进制数

点击信号---------右键,点击radix--------点击 unsigned dec

4 常见快捷键

批量修改快捷键:Ctrl+Alt

6 约束文件的两种方法

法一:点击“Open Elaborated Design”------在弹出的窗口中点击“OK”按钮----------------在菜单中选择“Window -> I/O Ports”-----------在弹出的 I/O Ports 中可以看到管脚分配情况
法二:新建约束文件-----编写约束文件

7 修改源文件或者约束文件或者BD后,发现ILa波形不变如何处理

(1)检查是否export硬件,检查导出硬件时是否勾选了比特流文件。
(2)如果生成比特流文件所花时间较短,则重新生成比特流文件。
(3)关闭软件,重新启动。
(4)重新启动SDK端,并且选择debug界面。

8 xpm_fifo如何使用

Language Templates--------- Verilog-----------Xilinx Parameterized Macros(XPM)--------XPM--------XPM_fifo-----------Asynchronous FIFO,复制到.v中,如下图所示
在这里插入图片描述

/*
* Instantiate async fifo by using Xilinx parameterized Macros. For ultrasclae, refer to ug974, for 7 series ug953
* write and read depth is 1024, write and read data width is 8 
*/
xpm_fifo_async #(
   .CDC_SYNC_STAGES      (2),        
   .DOUT_RESET_VALUE     ("1"),      
   .ECC_MODE             ("no_ecc"), 
   .FIFO_MEMORY_TYPE     ("auto"),   
   .FIFO_READ_LATENCY    (1),        
   .FIFO_WRITE_DEPTH     (1024),     
   .FULL_RESET_VALUE     (0),        
   .PROG_EMPTY_THRESH    (10),       
   .PROG_FULL_THRESH     (10),       
   .RD_DATA_COUNT_WIDTH  (11),       
   .READ_DATA_WIDTH      (8),        
   .READ_MODE            ("std"),    
   .RELATED_CLOCKS       (0),        
   .USE_ADV_FEATURES     ("0707"),   
   .WAKEUP_TIME          (0),        
   .WRITE_DATA_WIDTH     (8),        
   .WR_DATA_COUNT_WIDTH  (11)        
)
xpm_fifo_async_inst (
   .rst            (~adc_rst_n),
   .wr_clk         (adc_clk),
   .wr_en          (adc_buf_wr),
   .din            (adc_buf_data),
   .rd_clk         (M_AXIS_CLK),
   .rd_en          (adc_buf_rd),
   .dout           (M_AXIS_tdata),
   .empty          (empty),
   .full           (),
   .almost_empty   (),
   .almost_full    (),
   .wr_data_count  (),
   .rd_data_count  (),    
   .prog_empty     (),
   .prog_full      (),    
   .data_valid     (),
   .dbiterr        (),
   .sbiterr        (),
   .overflow       (),
   .underflow      (),
   .wr_ack         (),   
   .wr_rst_busy    (),   
   .rd_rst_busy    (),
   .injectdbiterr  (1'b0),
   .injectsbiterr  (1'b0),   
   .sleep          (1'b0)   
   );

9 什么时候用input、output;什么时候用wire。两者的区别是什么?

第一种情况:用input、output。
用input、output需要编写这5个信号的约束文件。
在这里插入图片描述
第二种情况:wire。
此时不需要编写这5个信号的约束文件。

在这里插入图片描述

10 module ‘xpm_fifo_async’ not found

在这里插入图片描述
解决方法:
在TCL console输入命令:
set_property XPM_LIBRARIES XPM_FIFO [current_project]

11 注意点

(1)“Run As”时最好勾选复位,以及program 比特流文件。
(2)有 PL 的设计要“Program FPGA”,如果PL 多次修改,别忘了重新导出硬件。

12 [DRC MDRV-1] 多驱动网络

在这里插入图片描述

13 自己封装的IP如何保证每次修改IP后,不会影响以前工程的IP。

(1)将IP封装好后,命名为repo。
(2)每建立一个工程文件时,将repo文件复制在该工程目录下。
(3)打开该工程,注意删除以前的IP repo文件,重新添加本工程文件目录下的IP repo.

14 光标变成黑块解决方法

按一下 insert即可

15 testbench文件的报错如何找到错误详细信息

打开.sim文件,\sim_1\behav目录下

16 Vivado IP核锁定的解决办法(两种解决办法)

法一:
1.生成IP核的状态报告 Tools -> Report -> Report IP Status
2.点击Upgrade Selected
3.更新完成后IP Status

法二:
下面介绍另一种方法,对应上述方法不能使用的情况(Upgrade Selected 按钮是灰色的 情况)

在 Tcl console中 执行如下一条命令即可:

upgrade_ip [get_ips]
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA病房自动呼叫系统是一种利用FPGA(现场可编程门阵列)技术设计的医疗辅助设备,用于病房内患者与护士之间的实时呼叫和通信。在设计和实施此类系统时,可能会遇到一些常见问题,以下是其中几个常见问题以及可能的解决方法。 1. 网络通信问题:通常,FPGA病房自动呼叫系统需要使用网络进行实时通信。在设计过程中,可能会遇到网络连接不稳定、延迟或丢包的问题。为了解决这些问题,可以使用可靠的网络连接和协议,并对通信进行适当的错误处理和重传机制。 2. 数据准确性问题:FPGA病房自动呼叫系统需要确保实时呼叫和通信数据的准确性。可能会出现误叫或丢失呼叫的情况。为了解决这些问题,可以使用冗余校验和算法,以及在系统设计中增加数据验证和纠错功能。 3. 系统响应时间问题:FPGA病房自动呼叫系统需要快速响应患者的呼叫请求,并及时通知护士。如果系统响应时间过长,可能会对患者的健康和护理造成不良影响。为了解决这个问题,可以优化系统的硬件设计和软件算法,使系统实时响应时间尽可能地减少。 4. 系统可靠性问题:FPGA病房自动呼叫系统需要在长时间运行时保持稳定和可靠。系统可能会出现硬件故障或者软件崩溃的情况。为了解决这些问题,可以采用可靠的硬件设计和冗余系统架构,以及监测和自我修复的软件机制。 总之,设计和实施FPGA病房自动呼叫系统时可能会遇到一些常见问题,但通过合适的技术和方法,这些问题是可以解决的。关键是在系统设计过程中考虑到这些问题,并采取相应的措施来确保系统的稳定性、准确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值