User manual
Implementing a DDS sine table
▶
Use a case statement with assignments. Simple and easy. This is one
of ways described in the lab exercise. A large table requires use of a
lot of logic elements. A 256 × 16 table uses 4096 LE D-registers.
▶
Indexed arrays are supported by Verilog 2001. These can be
initialized by reading an external initialization file (constructs exist
to do this) or by using an initial block.
▶
SystemVerilog allows array initialization values to be listed pretty
much as in the same manner as for C.
▶
Use a M4K memory block to hold the table. Off fabric. Simply a RAM
block initialized using a .mif file. If you never write to it, initialized
RAM serves as a ROM. A single M4K memory block can hold a
256 × 16 sine table with 512 (nominally parity) bits left over.
EECS 452 – Fall 2014 Lecture 5 – Page 83/143 Tuesday – September 16, 2014