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