FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
公告
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6673 讨论

How to access data from altsyncram in two different ways

Altera_Forum
名誉分销商 II
1,743 次查看

I have an altsyncram consisting of 4,096 words, 64-bit each. 

The RAM is easily accessed by application A using widthaddress = 12 and widthdata = 64. 

 

However, I'd like to be able to access the same RAM from application B, but using widthdata = 80. 

 

Is there a simple way to do this? (without using dual-ports, which I am already using for another reason). 

 

I was thinking about fetching the data slightly in advance in application B, then do the 80-bit divison myself. Is this usually done? 

 

Thank you!
0 项奖励
6 回复数
Altera_Forum
名誉分销商 II
1,010 次查看

how are you planning on accessing the data on the 80bit side? 64bits of D0 and 16 bits of D1? then 48 + 32? etc 

 

You cannot do any mixed widths without duel port, how do you expect to get 80 bits out of a 64 bits data bus?
0 项奖励
Altera_Forum
名誉分销商 II
1,010 次查看

Yes I was thinking about doing what you're saying (64bits of D0 and 16 bits of D1? then 48 + 32? etc).

0 项奖励
Altera_Forum
名誉分销商 II
1,010 次查看

Well, you wont be able to do that with a standard altsyncram. You might be able to do it by cleverly connecting a load of 16 bit wide rams and addressing them properly.

0 项奖励
Altera_Forum
名誉分销商 II
1,010 次查看

Hmm, that's even more complicated... 

 

I'm not even sure how it would work with a dual-ported version? 

4096 x 64 = 262,144 bits of data, which is not divisible by 80. I see problems happening at the boundaries... 

Worst case I could put some garbage data in the last word. It would be written/read and then ignored, the cost seems small compared to the size of the RAM. 

 

Thanks for the response! 

 

Edit: So for a dual-port version, I'd still use a width of 12 for the address? since I would need 3276.8 words of 80-bit each. Which is between 2^11 and 2^12. 

Hmm... I hope it's doable :).
0 项奖励
Altera_Forum
名誉分销商 II
1,010 次查看

The megawizard compiler says "The valid ratio btween port A and port B widths are 1, 2, 4, 8, and 16." 

 

It looks like I can't have 64 and 80 bits in one altsyncram...
0 项奖励
Altera_Forum
名誉分销商 II
1,010 次查看

like I said, you wont be able to use a single altsyncram. You should be able to do what you want with a custom memory that is built from 5x 16 bit altsyncrams, and custom address decoding.

0 项奖励
回复