On Jun 22, 2010, at 4:53 , Mikolaj Chwalisz wrote:

Hi Hayden,
I was able to reproduce system as Dave told. I have control fpga made
in 7.1 and user fpga made in 10.1. After dcm changes i have the same
results with some more comments. Reading and writing registers from
TinySH works as expected. As for accessing from BORPH it works but it
seems to be a shift between names and actual registers.

Thanks, Mikolaj, that's it! I think it is an off-by-one bug in the core_info.tab file generated by xps_library/gen_xps_mod_mhs.m. If I reduce the third column of core_info.tab by one and re-run mkbof, the resulting bof file works fine!

$ mv core_info.tab core_info.tab.offbyone
$ awk '{$3=strtonum("0x" $3)-1; printf("%s %d %X %d\n", $1, $2, $3, $4)}' core_info.tab.offbyone > core_info.tab
$ ./gen_prog_files

For a more permanent fix, I'm testing the following patch...

diff --git a/xps_library/gen_xps_mod_mhs.m b/xps_library/ gen_xps_mod_mhs.m
index c01ba89..d698538 100644
--- a/xps_library/gen_xps_mod_mhs.m
+++ b/xps_library/gen_xps_mod_mhs.m
@@ -213,7 +213,7 @@ function gen_xps_mod_mhs(xsg_obj, xps_objs, mssge_proj, mssge_paths, slash)
             if strcmp(hw_sys, 'ROACH')
               str = gen_borf_info(n, blk_obj, this_opb_addr_start);
             else
-              str = gen_borf_info(n, blk_obj, {});
+              str = gen_borf_info(n-1, blk_obj, {});
             end
             fprintf(bof_fid,str);
         catch

Dave


Reply via email to