WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2008-Jan-23 18:25:36

jyhng
Member
Registered: 2007-Jan-25
Posts: 37

sysgen2opb problem with over 32 registers

Hi, when I try to run sysgen2opb with over 32 registers and the option 'smon' (shared memory on), I get some errors. 

The first error is on line 1408, but I fixed this by not assigning the set_param function's output to delay since the function set_param doesn't return any value.

The second error is on line 1485, and I'm unsure how to solve this.  dpramRODataO is an empty cell but it's trying to access something from it, which is different from the case in which the number of registers is less than 33.
It seems that this code was not updated when some changes were made to it.

These two errors are the ones I caught, but there may be other ones after these lines.

You can reproduce this problem by making an empty model with over 32 registers (in my case i used 24 read-write and 9 read-only).  Also, you need the 'smon' flag to be turned on for this error to surface.
In order to speed up the test model generation you can use this code to give the registers unique names:

Code:

rwr = find_system(gcs, 'regexp', 'on', 'Name', 'Read-Write Register'); (same for 'Read Only Register')
for cnt = 1:length(rwr)
    set_param(rwr{cnt}, 'regName', ['''temp' num2str(cnt) '''']);
end;

^ Might have some typos in there.

Joshua

Offline

 

#2 2008-Jan-24 12:53:02

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: sysgen2opb problem with over 32 registers

Definitely an issue- I reproduced it just the way you suggested.

The error seems to crop up when:
-There are more than 32 registers
-'smon' is enabled
-There are no RO dual-port RAMs in the model

Try changing line 1481 from

Code:

if (gwLeft ==0)

to

Code:

if (length(dpramRODataO) == 0)

With this, I was able to convert a model with 33 registers and 1 WO RAM. I still need to test cases with RO or multiple RO/WO RAMs.

Offline

 

Board footer