RE: [casper] OPB Address Space Overlap when using DRAM

2017-06-28 Thread Schoenwald, Adam J. (GSFC-5640)
Hi Jack,

After a little trial and error, this worked for me. I got errors when I left 
the opb bus the same, and I also tried setting it to opb3, which was not 
created by an excessive number of yellow blocks. It seems like there has to be 
a partially full opb bus so it gets created early on in the synthesis process, 
but it must have room for the DRAM. Then the DRAM must be told to use that 
partially full bus in the gen_mhs_ip.m file.


I’m running https://github.com/casper-astro/mlib_devel/commits/master from 
commit d7de268723e20de4523d699c84c8d9e1d6affbc3 on Nov 11, 2016.  ( 
https://github.com/casper-astro/mlib_devel/commit/d7de268723e20de4523d699c84c8d9e1d6affbc3
 )

On a side note, I’ve modified startup.m , gen_xps_files.m to let me run in 
windows 10 and gzip my bof files through 7zip, but neither of those should 
impact the DRAM.

Now I’ve also modified xps_base/XPS_ROACH2_base/core_info.tab and 
xps_library/@xps_dram/gen_mhs_ip.m where I’ve put the opb_dram_sniffer on the 
opb1 bus, and I’ve moved the CTRL_C and MEM_C addresses into the 0x02xxx and 
0x03xxx regions.

I was getting the following error when I changed the addresses but not the opb 
bus:

ERROR:HDLCompiler:874 - 
"C:/Xilinx/14.7/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/opb_v20_v1_10_c/hdl/vhdl/opb_v20.vhd"
 Line 575: Value 34 is out of target constraint range 1 to 32
ERROR:HDLCompiler:410 - 
"C:/Xilinx/14.7/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/opb_v20_v1_10_c/hdl/vhdl/opb_v20.vhd"
 Line 576: Expression has 34 elements ; expected 17
ERROR:EDK:546 - Aborting XST flow execution!
INFO:EDK:2246 - Refer to
   C:\roach\Firmware\harvest\ddr\ddr_example11\XPS_ROACH2_base\synthesis\system_
   opb0_wrapper_xst.srp for details


After both the opb bus and addresses changes, things are working.

As far as I can tell I am getting ADC data buffered into the DRAM and then 
packetized / sent to me over UDP. I’m working on a firmware version that sends 
counters instead of ADC data to ensure I’m not missing any points. The maximum 
amount of data I’ve stored in the dram so far is 800,000 counts x 128 bits.

Thanks for the timely help!
--Adam



Adam Schoenwald - Electrical Engineer


From: Jack Hickish [mailto:jackhick...@gmail.com]
Sent: Monday, June 26, 2017 3:37 PM
To: Schoenwald, Adam J. (GSFC-5640) <adam.schoenw...@nasa.gov>; 
casper@lists.berkeley.edu
Subject: Re: [casper] OPB Address Space Overlap when using DRAM

Hi Adam,
Some months ago I tried to get the ddr in the casper-astro library working, 
using code provided by people on this list. Needless to say, I failed. I'm not 
sure what was wrong, but my spare time to debug got exhausted, and I haven't 
looked at this since.

However, for your particular problem, I think you could just change the DRAM 
memory addresses, by modifying these two files --
https://github.com/casper-astro/mlib_devel/blob/master/xps_library/%40xps_dram/gen_mhs_ip.m
 (which sets the address used in HDL, see line 191+)
https://github.com/casper-astro/mlib_devel/blob/master/xps_base/XPS_ROACH2_base/core_info.tab
 (which sets the address that the katcp server will look for the memory, see 
line 26+).
I think as long as the addresses in these two files are consistent, you could 
change them.

Does the dram interface actually work, when you can get the design to compile? 
If so I'd be interested to know what libraries you're using.

Cheers
Jack


On Mon, 26 Jun 2017 at 12:13 Schoenwald, Adam J. (GSFC-5640) 
<adam.schoenw...@nasa.gov<mailto:adam.schoenw...@nasa.gov>> wrote:
Hi All,
I am trying to compile a design with using DRAM, an ADC16x250, 1x 10Gbe, and a 
good number of software registers. I also have a 128x2^11 snapshot. I don’t 
want an interface from the DRAM to the CPU (and have checked the box saying so) 
if that is relavent. I saw a recent commit by Jack H stating the TX and RX from 
CPU on 10GBE must be checked, which it is now.

I got this to work by deleting software registers, but I don’t think I should 
have to. Is there any way I can alter the gen_xps_mod_mhs.m file to fix this 
error?

I found I had to keep deleting software registers until I only used the single 
opb bus (there were some devices added later during synthesis, so with 
headroom) to avoid getting this error.


Error message;

Checking platform address map ...
ERROR:EDK:4056 - INST:opb2opb_bridge_opb1
   BASEADDR-HIGHADDR:0x0108-0x010f and INST:opb_dram_sniffer_inst
   BASEADDR-HIGHADDR:0x010b-0x010b - address space overlap!
ERROR:EDK:440 - platgen failed with errors!
make: *** [implementation/system.bmm] Error 2
ERROR:EDK -
   Error while running "make -f system.make bits".
: XPS failed.


I’ve copied the gen_xps_mod_mhs_debug information below:


Re: [casper] OPB Address Space Overlap when using DRAM

2017-06-26 Thread Jack Hickish
Hi Adam,

Some months ago I tried to get the ddr in the casper-astro library working,
using code provided by people on this list. Needless to say, I failed. I'm
not sure what was wrong, but my spare time to debug got exhausted, and I
haven't looked at this since.

However, for your particular problem, I think you could just change the
DRAM memory addresses, by modifying these two files --
https://github.com/casper-astro/mlib_devel/blob/master/xps_library/%40xps_dram/gen_mhs_ip.m
(which
sets the address used in HDL, see line 191+)
https://github.com/casper-astro/mlib_devel/blob/master/xps_base/XPS_ROACH2_base/core_info.tab
(which
sets the address that the katcp server will look for the memory, see line
26+).
I think as long as the addresses in these two files are consistent, you
could change them.

Does the dram interface actually work, when you can get the design to
compile? If so I'd be interested to know what libraries you're using.

Cheers
Jack


On Mon, 26 Jun 2017 at 12:13 Schoenwald, Adam J. (GSFC-5640) <
adam.schoenw...@nasa.gov> wrote:

> Hi All,
>
> I am trying to compile a design with using DRAM, an ADC16x250, 1x 10Gbe,
> and a good number of software registers. I also have a 128x2^11 snapshot. I
> don’t want an interface from the DRAM to the CPU (and have checked the box
> saying so) if that is relavent. I saw a recent commit by Jack H stating the
> TX and RX from CPU on 10GBE must be checked, which it is now.
>
>
>
> I got this to work by deleting software registers, but I don’t think I
> should have to. Is there any way I can alter the gen_xps_mod_mhs.m file to
> fix this error?
>
>
>
> I found I had to keep deleting software registers until I only used the
> single opb bus (there were some devices added later during synthesis, so
> with headroom) to avoid getting this error.
>
>
>
>
>
> Error message;
>
> 
>
> Checking platform address map ...
>
> ERROR:EDK:4056 - INST:opb2opb_bridge_opb1
>
>BASEADDR-HIGHADDR:0x0108-0x010f and INST:opb_dram_sniffer_inst
>
>BASEADDR-HIGHADDR:0x010b-0x010b - address space overlap!
>
> ERROR:EDK:440 - platgen failed with errors!
>
> make: *** [implementation/system.bmm] Error 2
>
> ERROR:EDK -
>
>Error while running "make -f system.make bits".
>
> : XPS failed.
>
>
>
>
>
> I’ve copied the gen_xps_mod_mhs_debug information below:
>
>
>
> 
>
>
>
> 
>
> ## Copying custom IPs ##
>
> 
>
> ##
>
> ## Creating Simulink IP ##
>
> ##
>
> ##
>
> ## Creating EDK files   ##
>
> ##
>
> Running off adc_clk @200MHz
>
> Running off adc_clk @200MHz
>
> gen_xps_mod_mhs_debug: Searching for fixed opb0 devices. 2 initial fixed
> devices
>
> gen_xps_mod_mhs_debug: ddr_example8/adc16x250-8: 5 opb0 devices
>
> gen_xps_mod_mhs_debug: 5 fixed opb0 devices in total found
>
> gen_xps_mod_mhs_debug: Searching for opb bridges from address 0x0100
> with 7 initial devices on opb0
>
> gen_xps_mod_mhs_debug: ddr_example8/exp_id_no overflowed number of devices
> for opb0. 32 allowed, got 33
>
> gen_xps_mod_mhs_debug: ddr_example8/exp_done overflowed number of devices
> for opb1. 32 allowed, got 33
>
> gen_xps_mod_mhs_debug: Finished searching. 1 opb2opb bridges found giving
> 8 initial devices on opb0
>
> gen_xps_mod_mhs_debug: 0x0100-0x00FF opbs: 0 fixed opb0 + 0 on
> opb0 (8 so far) (ddr_example8/XSG_core_config)
>
> gen_xps_mod_mhs_debug: 0x0100-0x01FF opbs: 0 fixed opb0 + 1 on
> opb0 (9 so far) (ddr_example8/ack_error_count)
>
> gen_xps_mod_mhs_debug: 0x01000100-0x01FF opbs: 5 fixed opb0 + 0 on
> opb0 (9 so far) (ddr_example8/adc16x250-8)
>
> gen_xps_mod_mhs_debug: 0x01000100-0x010001FF opbs: 0 fixed opb0 + 1 on
> opb0 (10 so far) (ddr_example8/beacon_en)
>
> gen_xps_mod_mhs_debug: 0x01000200-0x010002FF opbs: 0 fixed opb0 + 1 on
> opb0 (11 so far) (ddr_example8/burst_per_beacon)
>
> gen_xps_mod_mhs_debug: 0x01000300-0x010003FF opbs: 0 fixed opb0 + 1 on
> opb0 (12 so far) (ddr_example8/burst_per_exp)
>
> gen_xps_mod_mhs_debug: 0x01000400-0x010004FF opbs: 0 fixed opb0 + 1 on
> opb0 (13 so far) (ddr_example8/config_mode)
>
> gen_xps_mod_mhs_debug: 0x01000500-0x010005FF opbs: 0 fixed opb0 + 1 on
> opb0 (14 so far) (ddr_example8/count_btw_burst)
>
> gen_xps_mod_mhs_debug: 0x01000600-0x010006FF opbs: 0 fixed opb0 + 1 on
> opb0 (15 so far) (ddr_example8/count_per_burst)
>
> gen_xps_mod_mhs_debug: 0x01000700-0x010007FF opbs: 0 fixed opb0 + 1 on
> opb0 (16 so far) (ddr_example8/count_per_pkt)
>
> Calling DRAM function...Looking for dimm number...gen_xps_mod_mhs_debug:
> 0x01000800-0x010007FF opbs: 0 fixed opb0 + 0 on opb0 (16 so far)
> (ddr_example8/dram)
>
> gen_xps_mod_mhs_debug: 0x01000800-0x010008FF opbs: 0 fixed opb0 + 1 on
> opb0 (17 so far) (ddr_example8/dummy_input)
>
> gen_xps_mod_mhs_debug: 0x01000900-0x010009FF opbs: 0 fixed 

[casper] OPB Address Space Overlap when using DRAM

2017-06-26 Thread Schoenwald, Adam J. (GSFC-5640)
Hi All,
I am trying to compile a design with using DRAM, an ADC16x250, 1x 10Gbe, and a 
good number of software registers. I also have a 128x2^11 snapshot. I don't 
want an interface from the DRAM to the CPU (and have checked the box saying so) 
if that is relavent. I saw a recent commit by Jack H stating the TX and RX from 
CPU on 10GBE must be checked, which it is now.

I got this to work by deleting software registers, but I don't think I should 
have to. Is there any way I can alter the gen_xps_mod_mhs.m file to fix this 
error?

I found I had to keep deleting software registers until I only used the single 
opb bus (there were some devices added later during synthesis, so with 
headroom) to avoid getting this error.


Error message;

Checking platform address map ...
ERROR:EDK:4056 - INST:opb2opb_bridge_opb1
   BASEADDR-HIGHADDR:0x0108-0x010f and INST:opb_dram_sniffer_inst
   BASEADDR-HIGHADDR:0x010b-0x010b - address space overlap!
ERROR:EDK:440 - platgen failed with errors!
make: *** [implementation/system.bmm] Error 2
ERROR:EDK -
   Error while running "make -f system.make bits".
: XPS failed.


I've copied the gen_xps_mod_mhs_debug information below:




## Copying custom IPs ##

##
## Creating Simulink IP ##
##
##
## Creating EDK files   ##
##
Running off adc_clk @200MHz
Running off adc_clk @200MHz
gen_xps_mod_mhs_debug: Searching for fixed opb0 devices. 2 initial fixed devices
gen_xps_mod_mhs_debug: ddr_example8/adc16x250-8: 5 opb0 devices
gen_xps_mod_mhs_debug: 5 fixed opb0 devices in total found
gen_xps_mod_mhs_debug: Searching for opb bridges from address 0x0100 with 7 
initial devices on opb0
gen_xps_mod_mhs_debug: ddr_example8/exp_id_no overflowed number of devices for 
opb0. 32 allowed, got 33
gen_xps_mod_mhs_debug: ddr_example8/exp_done overflowed number of devices for 
opb1. 32 allowed, got 33
gen_xps_mod_mhs_debug: Finished searching. 1 opb2opb bridges found giving 8 
initial devices on opb0
gen_xps_mod_mhs_debug: 0x0100-0x00FF opbs: 0 fixed opb0 + 0 on opb0 (8 
so far) (ddr_example8/XSG_core_config)
gen_xps_mod_mhs_debug: 0x0100-0x01FF opbs: 0 fixed opb0 + 1 on opb0 (9 
so far) (ddr_example8/ack_error_count)
gen_xps_mod_mhs_debug: 0x01000100-0x01FF opbs: 5 fixed opb0 + 0 on opb0 (9 
so far) (ddr_example8/adc16x250-8)
gen_xps_mod_mhs_debug: 0x01000100-0x010001FF opbs: 0 fixed opb0 + 1 on opb0 (10 
so far) (ddr_example8/beacon_en)
gen_xps_mod_mhs_debug: 0x01000200-0x010002FF opbs: 0 fixed opb0 + 1 on opb0 (11 
so far) (ddr_example8/burst_per_beacon)
gen_xps_mod_mhs_debug: 0x01000300-0x010003FF opbs: 0 fixed opb0 + 1 on opb0 (12 
so far) (ddr_example8/burst_per_exp)
gen_xps_mod_mhs_debug: 0x01000400-0x010004FF opbs: 0 fixed opb0 + 1 on opb0 (13 
so far) (ddr_example8/config_mode)
gen_xps_mod_mhs_debug: 0x01000500-0x010005FF opbs: 0 fixed opb0 + 1 on opb0 (14 
so far) (ddr_example8/count_btw_burst)
gen_xps_mod_mhs_debug: 0x01000600-0x010006FF opbs: 0 fixed opb0 + 1 on opb0 (15 
so far) (ddr_example8/count_per_burst)
gen_xps_mod_mhs_debug: 0x01000700-0x010007FF opbs: 0 fixed opb0 + 1 on opb0 (16 
so far) (ddr_example8/count_per_pkt)
Calling DRAM function...Looking for dimm number...gen_xps_mod_mhs_debug: 
0x01000800-0x010007FF opbs: 0 fixed opb0 + 0 on opb0 (16 so far) 
(ddr_example8/dram)
gen_xps_mod_mhs_debug: 0x01000800-0x010008FF opbs: 0 fixed opb0 + 1 on opb0 (17 
so far) (ddr_example8/dummy_input)
gen_xps_mod_mhs_debug: 0x01000900-0x010009FF opbs: 0 fixed opb0 + 1 on opb0 (18 
so far) (ddr_example8/dummy_input1)
gen_xps_mod_mhs_debug: 0x01000A00-0x01000AFF opbs: 0 fixed opb0 + 1 on opb0 (19 
so far) (ddr_example8/dummy_input10)
gen_xps_mod_mhs_debug: 0x01000B00-0x01000BFF opbs: 0 fixed opb0 + 1 on opb0 (20 
so far) (ddr_example8/dummy_input11)
gen_xps_mod_mhs_debug: 0x01000C00-0x01000CFF opbs: 0 fixed opb0 + 1 on opb0 (21 
so far) (ddr_example8/dummy_input12)
gen_xps_mod_mhs_debug: 0x01000D00-0x01000DFF opbs: 0 fixed opb0 + 1 on opb0 (22 
so far) (ddr_example8/dummy_input13)
gen_xps_mod_mhs_debug: 0x01000E00-0x01000EFF opbs: 0 fixed opb0 + 1 on opb0 (23 
so far) (ddr_example8/dummy_input14)
gen_xps_mod_mhs_debug: 0x01000F00-0x01000FFF opbs: 0 fixed opb0 + 1 on opb0 (24 
so far) (ddr_example8/dummy_input15)
gen_xps_mod_mhs_debug: 0x01001000-0x010010FF opbs: 0 fixed opb0 + 1 on opb0 (25 
so far) (ddr_example8/dummy_input2)
gen_xps_mod_mhs_debug: 0x01001100-0x010011FF opbs: 0 fixed opb0 + 1 on opb0 (26 
so far) (ddr_example8/dummy_input3)
gen_xps_mod_mhs_debug: 0x01001200-0x010012FF opbs: 0 fixed opb0 + 1 on opb0 (27 
so far) (ddr_example8/dummy_input4)
gen_xps_mod_mhs_debug: 0x01001300-0x010013FF opbs: 0 fixed opb0 + 1 on opb0 (28 
so far) (ddr_example8/dummy_input5)
gen_xps_mod_mhs_debug: 0x01001400-0x010014FF opbs: 0 fixed opb0 + 1