Altera Designing With Low-Level Primitives User Manual

Page 18

Advertising
background image

1–12

Altera Corporation

Designing with Low-Level Primitives User Guide

April 2007

Low-Level Primitive Examples

Example 1–7

shows a Verilog example for a 64, 8-bit word single-port

memory function.

Example 1–7. A 64, 8-Bit Word Single-Port Memory Function, Verilog

altsyncram altsyncram_component (

.wren_a (wren),

.clock0 (clock),

.address_a (wraddress),

.address_b (rdaddress),

.data_a (data_in),

.q_b (data_out),

.aclr0 (1'b0),

.aclr1 (1'b0),

.clocken1 (1'b1),

.clocken0 (1'b1),

.q_a (),

.data_b ({8{1'b1}}),

.rden_b (1'b1),

.wren_b (1'b0),

.byteena_b (1'b1),

.addressstall_a (1'b0),

.byteena_a (1'b1),

.addressstall_b (1'b0),

.clock1 (1'b1));

defparam

altsyncram_component.address_aclr_a = "NONE",

altsyncram_component.address_aclr_b = "NONE",

altsyncram_component.address_reg_b = "CLOCK0",

altsyncram_component.indata_aclr_a = "NONE",

altsyncram_component.intended_device_family = "Stratix",

altsyncram_component.lpm_type = "altsyncram",

//This is where a 64, 8-bit word is modified.

altsyncram_component.numwords_a = 64,

altsyncram_component.numwords_b = 64,

altsyncram_component.operation_mode = "DUAL_PORT",

altsyncram_component.outdata_aclr_b = "NONE",

altsyncram_component.outdata_reg_b = "CLOCK0",

altsyncram_component.power_up_uninitialized = "FALSE",

altsyncram_component.read_during_write_mode_mixed_ports

="DONT_CARE",

altsyncram_component.widthad_a = 6,

altsyncram_component.widthad_b = 6,

//This is the width of the input port.

altsyncram_component.width_a = 8,

altsyncram_component.width_b = 8,

altsyncram_component.width_byteena_a = 1,

altsyncram_component.wrcontrol_aclr_a = "NONE";

Advertising