-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question regarding NexSys_Video example #10
Comments
In the top component, you have 1 bit for ddr3_dqs but 2 bit for ddr3_dm |
Hi @ztachip, looking on this reference manual, you are right nexys video is 16 bit wide for DDR3: The example demo only stores 8 bits from UART, so
(note: only If the full 16-bit will be used, then |
I tried to port your reference design to Diligent A7 set_property SLEW FAST [get_ports {ddr3_dq[0]}] set_property SLEW FAST [get_ports {ddr3_dq[1]}] set_property SLEW FAST [get_ports {ddr3_dq[2]}] set_property SLEW FAST [get_ports {ddr3_dq[3]}] set_property SLEW FAST [get_ports {ddr3_dq[4]}] set_property SLEW FAST [get_ports {ddr3_dq[5]}] set_property SLEW FAST [get_ports {ddr3_dq[6]}] set_property SLEW FAST [get_ports {ddr3_dq[7]}] set_property SLEW FAST [get_ports {ddr3_dq[8]}] set_property SLEW FAST [get_ports {ddr3_dq[9]}] set_property SLEW FAST [get_ports {ddr3_dq[10]}] set_property SLEW FAST [get_ports {ddr3_dq[11]}] set_property SLEW FAST [get_ports {ddr3_dq[12]}] set_property SLEW FAST [get_ports {ddr3_dq[13]}] set_property SLEW FAST [get_ports {ddr3_dq[14]}] set_property SLEW FAST [get_ports {ddr3_dq[15]}] set_property SLEW FAST [get_ports {ddr3_addr[13]}] set_property SLEW FAST [get_ports {ddr3_addr[12]}] set_property SLEW FAST [get_ports {ddr3_addr[11]}] set_property SLEW FAST [get_ports {ddr3_addr[10]}] set_property SLEW FAST [get_ports {ddr3_addr[9]}] set_property SLEW FAST [get_ports {ddr3_addr[8]}] set_property SLEW FAST [get_ports {ddr3_addr[7]}] set_property SLEW FAST [get_ports {ddr3_addr[6]}] set_property SLEW FAST [get_ports {ddr3_addr[5]}] set_property SLEW FAST [get_ports {ddr3_addr[4]}] set_property SLEW FAST [get_ports {ddr3_addr[3]}] set_property SLEW FAST [get_ports {ddr3_addr[2]}] set_property SLEW FAST [get_ports {ddr3_addr[1]}] set_property SLEW FAST [get_ports {ddr3_addr[0]}] set_property SLEW FAST [get_ports {ddr3_ba[2]}] set_property SLEW FAST [get_ports {ddr3_ba[1]}] set_property SLEW FAST [get_ports {ddr3_ba[0]}] set_property SLEW FAST [get_ports ddr3_ras_n] set_property SLEW FAST [get_ports ddr3_cas_n] set_property SLEW FAST [get_ports ddr3_we_n] set_property SLEW FAST [get_ports ddr3_reset_n] set_property SLEW FAST [get_ports ddr3_cke] set_property SLEW FAST [get_ports ddr3_odt] set_property SLEW FAST [get_ports ddr3_cs_n] set_property SLEW FAST [get_ports {ddr3_dm[0]}] set_property SLEW FAST [get_ports {ddr3_dm[1]}] set_property SLEW FAST [get_ports {ddr3_dqs_p[0]}] set_property SLEW FAST [get_ports {ddr3_dqs_n[0]}] set_property SLEW FAST [get_ports {ddr3_dqs_p[1]}] set_property SLEW FAST [get_ports {ddr3_dqs_n[1]}] set_property SLEW FAST [get_ports ddr3_clk_p] set_property SLEW FAST [get_ports ddr3_clk_n] |
But I have error |
I think I am still missing something on the XDC? Can you help? |
Hi @ztachip , based on the error: Maybe the internal VREF constraint is missing on the constraint file, I tried to generate MIG for Arty A7 and here is the constraint for internal VREF: The constraints used by MIG will usually work for UberDDR3 so this internal VREF might fix the error. |
Thanks. This fix the VREF error [DRC BIVC-1] Bank IO standard Vcc: Conflicting Vcc voltages in bank 34. For example, the following two ports in this bank have conflicting VCCOs: Thanks |
Nice to hear that. Looking on the constraint output of MIG for cs_n:
Switching to SSTL135 might fix the issue. |
I managed to build correctly for the Arty-A7 Is the way I instantiate DDR3 controller on Arty-A7 correct? I configure DDR3 controller has followed: Thanks |
Hi @ztachip , yes this should be correct. I'm sorry, it seems this is a problem on my controller, I forgot to turn off |
o_wb_stall still stays high. May be there is something wrong with my pin assignments. |
Is the board below the one you use for your test? Since I see references to this board in your folder. |
Hi, I was using Nexys Video for testing UberDDR3. For the example files here, only 8-bit is used, because somehow now OpenXC7, the open-source(non-Vivado) toolchains complains for 16-bit. Vivado will be fine with both 8 and 16 bits. For the constraint file, Nexys-video-vivado.xdc is required for Vivado. Please try using Makefile.vivado to compile, this should give you a working bitstream. (In some cases, if the Makefile.vivado gives error, you may need to change this section of makefile:)
|
Hi @ztachip , @regymm is the one with the Nexys Video, he was the one who was able to make UberDDR3 work on that board. I also don't have Nexys Video board on me. The Xilinx FPGA boards I have here are:
I don't know if any of these boards satisfy the requirements for ztachip. |
I am trying the NexSys_Video_example
In file nexsysvideo_ddr3.v, you set
.DQ_BITS(8), //width of DQ
.BYTE_LANES(1), //number of DDR3 modules to be controlled
Does this mean NexSys has just a 8-bit DDR bus? This seems very slow for this board since Diligent provides 16-bit DDR on other boards normally.
I tried to find the schematics for NexSys_Video board but seems Diligent did not provide it.
Thanks
The text was updated successfully, but these errors were encountered: