EE 552

Text Messaging Centre

Alan Mak, Ben Lee, Wing Yee Chan, Christina Kwok

Embedded Array Block

  Introduction   MsgCounter   tmc_ram
      Reference  

 
Introduction
Embedded Array Block is the internal memory used in the Flex 10k of the Altera Board. Since it is the internal memory, it is very fast, it runs at around 25Mhz for each clock period.

The basic function of the memory is to store and retrieve data upon requested. There are many method in finding the message. Like in C, or other programming language, a pointer could be used to store the address of the content. However, it is very hard to get this done when implemented with VHDL program. Thus, making life easier, it is better to use a special code to indicate the end of the message. Then, after seeing the special code, it will immediately know that that was the beginning of the message.

Go to top

 
MsgCounter
To make the life easier, a special code was employed to indicate the end of the message. In that way, the end of the message could always be detected rather than setting up the fixed length of the message and some of the memory had been safe. To do so some memory address can be free and thus can store more and more data into the ram.Thus, MsgCounter will act as counter to count not only the address but also the number of message. To count the address or the number of message, lpm_counter was employed to control the memroy unit. Using the state machine to separate the write and read mode of the Memory unit.
Go to top

 

MsgCounter.vhd

tmc_ram
An example and details of lpm_ram_dq from the Altera website had been used. The size of the memory was taken up 5-bit per character, 1024 memory blocks for 10 messages storage. Each messages contained a maximum of 50 characters. After compression, the worse case would be 10-bit per character, with 50 characters. That is equivalent to taking up 100 spaces per message.
Go to top

tmc_ram.vhd

tmc_ram_pkg.vhd

Reference

 

a)      Title : http://www.altera.com/literature/ds/dsf10k.pdf

http://www.altera.com/literature/ds/dsf10k.pdf

b)      Title : Implementing Built in RAM Function

http://www.ee.ualberta.ca/~elliott/ee552/studentAppNotes/2000f/vhdl/lpm_ram/Appnotes.htm
Go to top

 

This page is maintained by Chris