[X]关闭

FPGA程序固化下载问题

文档创建者:拆穿
浏览次数:7172
最后更新:2019-11-26
刚入手开发板7010不久,做到FPGA入门实验CH06程序固化那节。不知道哪里有问题,提示操作FLASH成功,可是LED状态不正常,两个常亮,两个常灭。已经定位到是bit文件的问题,可是我都是按视频里的操作做的,代码也没改,仔细检查了发现自己的DDR型号选错了,然后米连的例程里MIO8那个管脚的勾选的,我改了这两处以后,现在还是不行,想发帖看看,下面是代码
  1. // Target Devices: XC7Z020-CLG400
  2. // Tool versions: VIVADO2017.4[img]C:\Users\Administrator\Desktop\si\硬件\ZYNQ配置.jpg[/img]
  3. // Description: water led
  4. // Revision: V1.1
  5. // Additional Comments:
  6. //1) _i PIN input
  7. //2) _o PIN output
  8. //3) _n PIN active low
  9. //4) _dg debug signal
  10. //5) _r reg delay
  11. //6) _s state machine
  12. //////////////////////////////////////////////////////////////////////////////
  13. module run_led(
  14. inout [14:0]DDR_addr,
  15. inout [2:0]DDR_ba,
  16. inout DDR_cas_n,
  17. inout DDR_ck_n,
  18. inout DDR_ck_p,
  19. inout DDR_cke,
  20. inout DDR_cs_n,
  21. inout [3:0]DDR_dm,
  22. inout [31:0]DDR_dq,
  23. inout [3:0]DDR_dqs_n,
  24. inout [3:0]DDR_dqs_p,
  25. inout DDR_odt,
  26. inout DDR_ras_n,
  27. inout DDR_reset_n,
  28. inout DDR_we_n,
  29. inout FIXED_IO_ddr_vrn,
  30. inout FIXED_IO_ddr_vrp,
  31. inout [53:0]FIXED_IO_mio,
  32. inout FIXED_IO_ps_clk,
  33. inout FIXED_IO_ps_porb,
  34. inout FIXED_IO_ps_srstb,
  35.   
  36. input CLK_i,
  37. input RSTn_i,
  38. output reg [3:0]LED_o
  39. );
  40. reg [31:0]C0;
  41. always @(posedge CLK_i)
  42.   if(!RSTn_i)
  43.     begin
  44.     LED_o <= 4'b1;
  45.     C0 <= 32'h0;
  46.     end
  47.   else
  48.     begin
  49.      if(C0 == 32'd50_000_000)
  50.         begin
  51.         C0 <= 32'h0;
  52.         if(LED_o == 4'b1000)
  53.         LED_o <= 4'b1;
  54.         else LED_o <= LED_o << 1;
  55.         end
  56.      else
  57.        begin
  58.         C0 <= C0 + 1'b1;
  59.          LED_o <= LED_o;
  60.        end
  61.      end
  62.      
  63.   system system_i
  64.           (.DDR_addr(DDR_addr),
  65.            .DDR_ba(DDR_ba),
  66.            .DDR_cas_n(DDR_cas_n),
  67.            .DDR_ck_n(DDR_ck_n),
  68.            .DDR_ck_p(DDR_ck_p),
  69.            .DDR_cke(DDR_cke),
  70.            .DDR_cs_n(DDR_cs_n),
  71.            .DDR_dm(DDR_dm),
  72.            .DDR_dq(DDR_dq),
  73.            .DDR_dqs_n(DDR_dqs_n),
  74.            .DDR_dqs_p(DDR_dqs_p),
  75.            .DDR_odt(DDR_odt),
  76.            .DDR_ras_n(DDR_ras_n),
  77.            .DDR_reset_n(DDR_reset_n),
  78.            .DDR_we_n(DDR_we_n),
  79.            .FIXED_IO_ddr_vrn(FIXED_IO_ddr_vrn),
  80.            .FIXED_IO_ddr_vrp(FIXED_IO_ddr_vrp),
  81.            .FIXED_IO_mio(FIXED_IO_mio),
  82.            .FIXED_IO_ps_clk(FIXED_IO_ps_clk),
  83.            .FIXED_IO_ps_porb(FIXED_IO_ps_porb),
  84.            .FIXED_IO_ps_srstb(FIXED_IO_ps_srstb));     
  85.      
  86. endmodule
复制代码
遇到过没。

发表评论已发布 3

拆穿

发表于 2019-11-24 23:30:40 | 显示全部楼层

是不是哪里的设置不对呢?看着vivado工程和他们提供的例程是一样的

mlink_fae

发表于 2019-11-26 09:11:51 | 显示全部楼层

参考处理方法:我们提供的flash下载方法基于vivado2017.4。首先,测试我们提供固化例程,按照教程的方法,调整拨码开关并在SDK中下载测试。
然后,对比你的工程和我们提供的测试例程的区别,尤其是zynq ip的配置。

uisrc

发表于 2019-11-26 10:56:48 | 显示全部楼层

你贴上的代码没有问题,但是你的blockdesign 里面的ZYNQ IP 检查下QSPI接口是否配置对了,包括MIO好,以及时钟,另外还有DDR配置是否正确等。你可以试试我们的代码编译后,你使能能够固化成功。
越努力越幸运!加油!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则