// Note: CLK must be defined as a wire when using this method
parameter PERIOD = <value>;
initial begin
CLK = 1'b0;
#(PERIOD/2);
forever
#(PERIOD/2) CLK = ~CLK;
end
// Note: CLK must be defined as a reg when using this method
parameter PERIOD = <value>;
always begin
CLK = 1'b0;
#(PERIOD/2) CLK = 1'b1;
#(PERIOD/2);
end
// Note: CLK_P and CLK_N must be defined as a reg when using this method
parameter PERIOD = <value>;
always begin
CLK_P = 1'b0;
CLK_N = 1'b1;
#(PERIOD/2) CLK_P = 1'b1;
CLK_N = 1'b0;
#(PERIOD/2);
end
// Note: CLK_P and CLK_N must be defined as a wire when using this method
parameter PERIOD = <value>;
initial begin
CLK_P = 1'b0;
CLK_N = 1'b1;
#(PERIOD/2);
forever
#(PERIOD/2) {CLK_P, CLK_N} = ~{CLK_P, CLK_N};
end
// Note: CLK must be defined as a wire when using this method
parameter PERIOD = <value>;
parameter DUTY_CYCLE = <value_0.01_to_0.99>;
initial
forever begin
CLK = 1'b0;
#(PERIOD-(PERIOD*DUTY_CYCLE)) CLK = 1'b1;
#(PERIOD*DUTY_CYCLE);
end
// Note: CLK must be defined as a reg when using this method
parameter PERIOD = <value>;
parameter DUTY_CYCLE = <value_0.01_to_0.99>;
always begin
CLK = 1'b0;
#(PERIOD-(PERIOD*DUTY_CYCLE)) CLK = 1'b1;
#(PERIOD*DUTY_CYCLE);
end
// Note: CLK_P and CLK_N must be defined as a wire when using this method
parameter PERIOD = <value>;
parameter DUTY_CYCLE = <value_0.01_to_0.99>;
initial
forever begin
CLK_P = 1'b0;
CLK_N = 1'b1;
#(PERIOD-(PERIOD*DUTY_CYCLE)) CLK_P = 1'b1;
CLK_N = 1'b0;
#(PERIOD*DUTY_CYCLE);
end
// Note: CLK_P and CLK_N must be defined as a reg when using this method
parameter PERIOD = <value>;
parameter DUTY_CYCLE = <value_0.01_to_0.99>;
always begin
CLK_P = 1'b0;
CLK_N = 1'b1;
#(PERIOD-(PERIOD*DUTY_CYCLE)) CLK_P = 1'b1;
CLK_N = 1'b0;
#(PERIOD*DUTY_CYCLE);
end
initial begin
// Wait for Global Reset to Complete
#100;
<statements>;
end
always begin
<statements>;
end
always @(<signals>) begin
<statements>;
end
integer <var>;
for (<var> = <initial_value>; <var> <= <final_value>; <var>=<var>+1) begin
<statement>;
end
integer <var>;
for (<var> = <initial_value>; <var> >= <final_value>; <var>=<var>-1) begin
<statement>;
end
forever begin
<statement>;
end
repeat (<value>) begin
<statements>;
end
disable <loop_identifier>;
while (<condition>) begin
<statement>;
end
// Information for Verilog Looping Statements (i.e. while, repeat, forever, for, etc.)
// ===================================================================================
//
// There are several ways to create a looping statement within a verilog
// testbench. Each of these constructs must appear within an initial or
// always block and can be disabled if the block is labeled.
//
// Repeat - A repeat loop is generally the easiest construct if it is desired
// to perform an action a known, finite number of times and the loop
// variable is not needed for the function.
//
// Example: The following example will apply random data to the
// DATA_IN signal 30 times at each clock signal.
initial begin
repeat (30) begin
@(posedge CLK);
#1 DATA_IN = $random;
end
end
// While - The while loop is a good way to create a conditional loop that will
// execute as long as a condition is met.
//
// Example: The following example will read from a FIFO as long as the
// EMPTY flag is true.
initial begin
while (EMPTY==1'b0) begin
@(posedge CLK);
#1 read_fifo = 1'b1;
end
// For - The for loop is generally used when a finite loop is desired and it
// is necessary to key off the loop variable. Depending on how the for
// condition is created, an incrementing or decrementing loop can be created.
//
// Example: The following will assign a 1'b0 to each bit in the 32 bit
// DATA signal at time zero. An incrementing for loop will be used.
parameter WIDTH=32;
reg [WIDTH-1:0] DATA;
integer i;
intitial
for (i=0; i<WIDTH; i=i+1)
DATA[i] = 1'b0;
// Forever - The forever loop is a construct generally used to create an infinite
// loop for simulation.
//
// Example: The following will create a clock using a forever loop with
// a period of 10 ns and a 50% duty cycle.
`timescale 1ns/1ps
initial
forever begin
CLK = 1'b0;
#5 CLK = 1'b1;
#5;
end
// Disable - Any loop can be disabled by using the disable construct. In order
// to disable a loop, a loop identifier or label must be used on the
// loop to be disabled.
//
// Example: The following will stop a clock created in a forever loop
// if a signal called stop_clock is 1'b1.
`timescale 1ns/1ps
initial
forever begin : clock_10ns
CLK = 1'b0;
#5 CLK = 1'b1;
#5;
end
always @(posedge stop_clock)
if (stop_clock)
disable clock_10ns;
force <wire_or_reg> = <value>;
release <wire_or_reg>;
release <wire_or_reg>;
assign <reg> = <value>;
deassign <reg>;
initial begin
<reg> = 1'b0;
end
initial begin
<reg> = 2'b00;
end
initial begin
<reg> = 3'b000;
end
initial begin
<reg> = 4'h0;
end
initial begin
<reg> = 8'h00;
end
initial begin
<reg> = 16'h0000;
end
initial begin
<reg> = 32'h00000000;
end
initial begin
<reg> = 64'h0000000000000000;
end
reg <name> = 1'b0;
reg [1:0] <name> = 2'b00;
reg [2:0] <name> = 3'b000;
reg [3:0] <name> = 4'h0;
reg [7:0] <name> = 8'h00;
reg [15:0] <name> = 16'h0000;
reg [31:0] <name> = 32'h00000000;
reg [63:0] <name> = 64'h0000000000000000;
supply1 <name>;
supply0 <name>;
#<delay_value>;
@(posedge <signal>);
@(negedge <signal>);
@(<signal>);
wait (<signal>==<value>);
$stop;
$finish;
// Information of $display, $monitor, $write, and $strobe System Functions
// =======================================================================
//
// $display will display a string to the standard output (screen/console)
// of the simulator. Variables may be added to the string to indicate
// current time (as well as other system functions) and states of signals
// in the design. After the string is displayed, a carriage return is
// issued.
//
// $monitor will display a string to the standard output whenever a change
// in value is detected for one of the variables being displayed. After
// the string is displayed, a carriage return is issued.
//
// $write acts very similar to $display in that it can output a specified
// string to the standard out however it does not return a carriage return
// after performing this operation.
//
// $strobe is also similar to $display only waits for all simulation events
// in the queue to be executed before generating the message.
//
// When using these standard output commands, variables can be specified to
// the output in a variety of formats. Also, special escape characters can
// be used to specify special characters or formatting. These formats are
// listed below.
//
// Variables
// ---------
// %b .... Binary Value
// %h .... Hexadecimal Value
// %d .... Decimal Value
// %t .... Time
// %s .... String
// %c .... ASCII
// %f .... Real Value
// %e .... Exponential Value
// %o .... Octal Value
// %m .... Module Hierchical Name
// %v .... Strength
//
// Escape Characters
// -----------------
// \t ........ Tab
// \n ........ Newline
// \\ ........ Backslash
// %% ........ Percent
// \" ........ Quote
// \<octal> .. ASCII representation
//
// $display and $strobe are general used within a conditional statement
// (i.e. if (error) $display) specified from an initial or always construct
// while the $monitor is genearlly specified from an initial statement without
// any other qualification. Display functions are for simulation purposes only
// and while very useful, should be used sparingly in order to increase the
// overall speed of simulation. It is very useful to use these constructs to
// indicate problems in the simulation however every time an output is written
// to the screen, a penalty of a longer simulation runtime is seen.
//
// Example of $display:
initial begin
#100000;
$display("Simulation Ended Normally at Time: %t", $realtime");
$stop;
end
// Example of $monitor:
initial
$monitor("time %t: out1=%d(decimal), out2=%h(hex), out3=%b(binary),
state=%s(string)", $realtime, out1, out2, out3, state);
// Example of $write:
always @(posedge check)
$write(".");
// Example of $strobe:
always @(out1)
if (out1 != correct_out1)
$strobe("Error at time %t: out1 is %h and should be %h",
$realtime, out1, correct_out1);
// Example of using a $monitor to display the state of a state-machine to the screen:
reg[8*22:0] ascii_state;
initial
$monitor("Current State is: %s", ascii_state);
always @(UUT.top.state_reg)
case (UUT.top.state_reg)
2'b00 : ascii_state = "Reset";
2'b01 : ascii_state = "Send";
2'b10 : ascii_state = "Poll";
2'b11 : ascii_state = "Receive";
default: ascii_state = "ERROR: Undefined State";
endcase
$display("<string_and/or_variables>", <functions_or_signals>);
$monitor("<string_and/or_variables>", <functions or signals>);
$write ("<string_and/or_variables>", <functions_or_signals>);
$strobe ("<string_and/or_variables>", <functions_or_signals>);
<reg> = $random(<seed>);
// Information on the system tasks $time, $stime, $realtime, and $timeformat
// =========================================================================
//
// $time is a system function in which returns the current simulation time
// as a 64-bit integer.
//
// $stime is a system function in which returns the lower 32-bits of the
// current simulation time.
//
// $realtime is a system function that returns the current simulation time
// as a real number.
//
// Generally, these system time functions are using within screen
// ($monitor and $display) and file output ($fwrite and $fmonitor) commands
// to specify within the message the simulation time at which the message is
// displayed or written.
//
//
// $timeformat is a system call which specifies the format in which the $time,
// $stime and $realtime should be displayed when used with the %t format
// variable in a display or write call. It is recommended to specify this
// within the testbench when using the %t variable to make the time value more
// readable. The $timeformat must be specified within an initial declaration.
// The format of $timeformat is the following:
initial
$timeformat (<unit>, <precision>, <suffix_string>, <min_field_width>);
//
// Example:
//
// This specifies the output to be displayed in nano-seconds, a precision
// down to pico seconds, to append the string " ns" after the time and
// to allow for 13 numbers to be displayed to show this value.
initial
$timeformat (-9, 3, " ns", 13);
// This will display the system time in the format specified above after
// the string "Time=" as well as display the value of DATA_OUT every
// time DATA_OUT changes value.
initial
$monitor("Time=%t : DATA_OUT=%b", $realtime, DATA_OUT);
initial
$timeformat (-9, 3, " ns", 13);
initial
$timeformat (-12, 1, " ps", 13);
initial
$timeformat (-6, 6, " us", 13);
// Information on the $readmemb and $readmemh system functions
// ===========================================================
//
// $readmemb is a system function which will read binary data from a
// specified file and place it in an array. The syntax is the following:
// $readmemb ("<file_name>", <reg_name>, <start_address>, <end_address>);
// where the <file_name> is the name and location of the file containing
// the binary data, the <reg_name> is a 2-D register array in which the
// memory data is stored, and the last two optional comma separated numbers
// specify the beginning and ending address of the data. The data file
// may only contain binary data, white spaces and comments. This function
// must be executed within an initial block.
//
// $readmemh is the same as $readmemb with the exception that it
// inputs hex data as the read values.
//
// In the past, these functions could only be used for simulation
// purposes however synthesis tools now has the ability to initialize RAM
// and ROM arrays using this construct.
//
// Example of reading binary data from a file:
reg [31:0] rom_data[1023:0];
initial
$readmemb("../data/mem_file.dat", rom_data, 0, 7);
// The initialization file may only contain white spaces, address
// labels (denoted by @<address>), comments and the actual binary
// or hexadecimal data.
// The following is a small example of a binary memory file data:
// This is a comment
1111000011110000 // This specifies these 16-bits to the first address
1010_0101_1010_0101 // This is for the second address with underscores
// to make this more readable
<more entries like above to fill up the array>
// Optionally, we can change addresses
@025 // Now at address 025
11111111_00000000
// Addresses can also be specified in-line
@035 00000000_11111111
// It is highly suggested to fill all memory contents with a known value
// when initializing memories.
reg [<memory_width>] <reg_name> [<memory_depth>];
initial
$readmemb ("<file_name>", <reg_name>, <start_address>, <end_address>);
reg [<memory_width>] <reg_name> [<memory_depth>];
initial
$readmemh ("<file_name>", <reg_name>, <start_address>, <end_address>);
// Information on the $fopen, $fdisplay, $fstrobe, $fwrite, $ftell,
// $feof, $ferror, $fgetc, $fgets, and $fclose system functions
// ================================================================
//
// Opening Command
// ---------------
// $fopen is used to open a file for reading, writing and/or appending.
// This operation must preceed any of the reading or writing commands
// specified in this document. When using the $fopen, you must specify
// the file name and file mode (read, write, etc.). The syntax looks like
// the following: $fopen("<file_name>", "<file_mode>")
// Upon opening the file a handle number is issued for the file and must
// be used to reference the file in subsequent commands. Generally, this
// number should be assigned to a declared integer.
//
// The file mode can be one of the following:
//
// "r" ...... Open ASCII file for reading
// "rb" ..... Open Binary file for reading
// "w" ...... Open ASCII file for writing (delete if exists)
// "wb" ..... Open Binary file for writing (delete if exists)
// "a" ...... Open ASCII file for writing (append to end of file)
// "ab" ..... Open Binary file for writing (append to end of file)
// "r+" ..... Open ASCII file for reading and writing
//
//
// Writing Commands
// ----------------
// $fdisplay will write formatted text to a specified file. Specific text,
// system functions/tasks and signal values can be output using this
// function. The file handle assigned by the $fopen function must be
// specified to indicate the destination file for the text. The syntax looks
// as follows: $fdisplay(<file_desc>, "<string>", variables);
//
// $fwrite acts very similar to $fdisplay in that it can write a specified
// string to a file however it does not specify a carriage return after
// performing this operation.
//
// $fstrobe is also similar to $fdisplay only waits for all simulation events
// in the queue to be executed before writing the message.
//
// $fmonitor will write a string to the specified file whenever a change
// in value is detected for one of the variables being written. After
// the string is written, a carriage return is issued.
//
// When using these write commands ($fdisplay, $fwrite, $fstrobe, $fmonitor),
// variables can be specified to the output in a variety of formats. Also,
// special escape characters can be used to specify special characters or
// formatting. These formats are listed below.
//
// Variables
// ---------
// %b .... Binary Value
// %h .... Hexadecimal Value
// %d .... Decimal Value
// %t .... Time
// %s .... String
// %c .... ASCII
// %f .... Real Value
// %e .... Exponential Value
// %o .... Octal Value
// %m .... Module Hierarchical Name
// %v .... Strength
//
// Escape Characters
// -----------------
// \t ........ Tab
// \n ........ Newline
// \\ ........ Backslash
// %% ........ Percent
// \" ........ Quote
// \<octal> .. ASCII representation
//
//
// Reading Commands
// ----------------
// $fgets will read an entire line of text from a file and store it as a
// string. The format for $fgets is: $fgets(<string_reg>, <file_desc>);
// $fgets returns an integer value either indicating the number of characters
// read or a zero indication an error during the read attempt. The <string_reg>
// should be defined a width equal to the number of characters on the longest
// line multiplied by 8.
//
// $fgetc will read a character from a file and return it as an 8-bit string.
// If EOF is encountered, a value of -1 is written.
//
// $fscanf will read a line from a file and store it in a specified form. The
// format for the $fsacnf is: $fscanf(<file_desc>, <format>, <destination_regs>)
// where the format is specified similar to how it is specified in the read
// command above and the <destination_regs> is where the read data is stored.
// $fscanf will return an integer value indicating the number of matched
// formatted data read. If an error occurs during the read, this number will
// be zero.
//
//
// Special Functions
// -----------------
// $ferror tests and reports last error encountered during a file open, read
// or write. The written string can be up to 80 characters (640 bits) wide.
//
// $fseek will reposition the pointer within the file to the specified position.
// The format for the $fseek command is:
// $fseek(<file_desc>, <offset_value>, <operation_number>) where the operation
// number is one of three values:
// 0 - set position using the beginning of file as the reference point
// 1 - set position using the current location of the pointer as reference
// 2 - set position using the EOF as reference
// $fseek will return a zero if the command was successful and a -1 if not.
//
// $ftell specifies the position of the pointer within the file by outputting an
// integer value indicating the number of offset bytes from the beginning of the
// file.
//
// $fflush writes any buffered output to the specified file.
//
//
// Close File
// ----------
// $fclose closes a previous opened file. The format is $fclose(<file_desc>);
//
// In general, you may wish to limit the amount and occurrences of reading and
// writing to a file during simulation as it may have a negative impact on
// overall simulation runtime. File access can be a slow process and if done
// often can weigh down simulation quite a bit.
//
//
// Example of writing monitored signals:
// -------------------------------------
// Define file handle integer
integer outfile;
initial begin
// Open file output.dat for writing
outfile = $fopen(outfile, "output.dat", "w");
// Check if file was properly opened and if not, produce error and exit
if (outfile == 0) begin
$display("Error: File, output.dat could not be opened.\nExiting Simulation.");
$finish;
end
// Write monitor data to a file
$fmonitor (outfile, "Time: %t\t Data_out = %h", $realtime, Data_out);
// Wait for 1 ms and end monitoring
#1000000;
// Close file to end monitoring
$fclose(outfile);
end
// Example of reading a file using $fscanf:
// ----------------------------------------
real number;
// Define integers for file handling
integer number_file;
integer i=1;
initial begin
// Open file numbers.txt for reading
number_file = $fopen("numbers.txt", "r");
// Produce error and exit if file could not be opened
if (number_file == 0) begin
$display("Error: Failed to open file, numbers.txt\nExiting Simulation.");
$finish;
end
// Loop while data is being read from file
// (i will be -1 when end of file or 0 for blank line)
while (i>0) begin
$display("i = %d", i);
i=$fscanf(number_file, "%f", number);
$display("Number read from file is %f", number);
@(posedge CLK);
end
// Close out file when finished reading
$fclose(number_file);
#100;
$display("Simulation ended normally");
$stop;
end
<640-bit_reg> = $ferror(<file_desc>);
<reg> = $ftell(<file_desc>);
<integer> = $fseek(<file_desc>, <offset_value>, <operation_number>);
$fflush(<file_desc>);
integer <file_desc>;
<file_desc> = $fopen("<file_name>", "<file_mode>");
$fclose(<file_desc>);
$fdisplay(<file_desc>, "<string>", variables);
$fwrite(<file_desc>, "<string>", variables);
$fstrobe(<file_desc>, "<string>", variables);
$fmonitor(<file_desc>, "<string>", variables);
reg [7:0] <8-bit_reg>;
<8-bit_reg> = $fgetc(<file_desc>);
integer <integer>;
reg [8*<#_of_chars>:0] <string_reg>;
<integer> = $fgets(<string_reg>, <file_desc>);
integer <integer>;
<integer> = $fscanf(<file_desc>, "<format>", <destination_regs>);
$signed(<signal>);
$unsigned(<signal>);
integer <name>;
real <name>;
time <name>;
localparam <name> = <value>;
localparam [upper:lower] <name> = <value>;
localparam signed <name> = <value>;
localparam signed [upper:lower] <name> = <value>;
localparam integer <name> = <value>;
localparam real <name> = <value>;
localparam realtime <name> = <value>;
localparam time <name> = <value>;
parameter <name> = <value>;
parameter [upper:lower] <name> = <value>;
parameter signed <name> = <value>;
parameter signed [upper:lower] <name> = <value>;
parameter integer <name> = <value>;
parameter real <name> = <value>;
parameter realtime <name> = <value>;
parameter time <name> = <value>;
// Information on the Verilog Parmameter, Local Parameter,
// Defparam and Named Parameter Value Assignment
// =======================================================
//
// Parameters are a method within Verilog in order to define constants
// within the code. They are very useful in order to define bus widths,
// memory depths, state-machine assignments, clock periods and other useful
// constants used throughout the design and testbench. Parameters can bring
// more meaning and documentation to the code or can be used to make the
// code more paramatizable and thus help enable re-use or help adjust to
// late changes in the design. There are two main types of parameters, the
// parameter and local parameter. A local parameter acts the same as a
// parameter however its contents can not be modified via a defparam or a
// named parameter value assignment in the instantiation. A defparam allows
// the reassignment to the value of a parameter from a different level of
// hierarchy in the testbench or design. A named parameter value assignment
// allows a respecification of the parameter value within the instance
// declaration of the instantiation of the component. Both local paramters
// and parameters can be sized to a specified number of bits and/or can be typed
// to be either a signed value, an integer, a real number, a time (64-bit
// precision) or a realtime (double-precision floating point) value.
// Example declaring a parameter and local parameter
// Define pi as a local real number parameter since I do not want to ever change this
localparam real pi = 3.14;
// Define BUS_WIDTH as a parameter with a default value of 8
parameter BUS_WIDTH = 8;
// Use this parameter to define the width of a declared register
reg [BUS_WIDTH-1:0] my_reg;
// Use a defparam from my testbench to change BUS_WIDTH to 16 for the instantiated
// design instance UUT
defparam UUT.BUS_WIDTH = 16;
// Alternatively to the defparam, I could have done this using the named parameter value assignment when I instantiate UUT
my_design #(
.BUS_WIDTH(16)
) UUT (
.A(A),
.B(B),
.C(C)
);
wire <name>;
wire [1:0] <name>;
wire [2:0] <name>;
wire [3:0] <name>;
wire [7:0] <name>;
wire [15:0] <name>;
wire [31:0] <name>;
wire [63:0] <name>;
wire signed [7:0] <name>;
wire signed [8:0] <name>;
wire signed [15:0] <name>;
wire signed [17:0] <name>;
wire signed [31:0] <name>;
wire signed [63:0] <name>;
tri1 <name>;
tri1 [1:0] <name>;
tri1 [2:0] <name>;
tri1 [3:0] <name>;
tri1 [7:0] <name>;
tri1 [15:0] <name>;
tri1 [31:0] <name>;
tri1 [63:0] <name>;
reg <name>;
reg [1:0] <name>;
reg [2:0] <name>;
reg [3:0] <name>;
reg [7:0] <name>;
reg [15:0] <name>;
reg [31:0] <name>;
reg [63:0] <name>;
reg signed [7:0] <name>;
reg signed [8:0] <name>;
reg signed [15:0] <name>;
reg signed [17:0] <name>;
reg signed [31:0] <name>;
reg signed [63:0] <name>;
// Stores last value when 3-stated
trireg <name>;
// Stores last value when 3-stated
trireg [1:0] <name>;
// Stores last value when 3-stated
trireg [2:0] <name>;
// Stores last value when 3-stated
trireg [3:0] <name>;
// Stores last value when 3-stated
trireg [7:0] <name>;
// Stores last value when 3-stated
trireg [15:0] <name>;
// Stores last value when 3-stated
trireg [31:0] <name>;
// Stores last value when 3-stated
trireg [63:0] <name>;
reg <name> [15:0];
reg <name> [31:0];
reg <name> [31:0];
reg <name> [16383:0];
reg [1:0] <name> [8191:0];
reg [3:0] <name> [4095:0];
reg [8:0] <name> [2047:0];
reg [17:0] <name> [1023:0];
reg [35:0] <name> [511:0];
reg <name> = 1'b0;
reg [1:0] <name> = 2'b00;
reg [2:0] <name> = 3'b000;
reg [3:0] <name> = 4'h0;
reg [7:0] <name> = 8'h00;
reg [15:0] <name> = 16'h0000;
reg [31:0] <name> = 32'h00000000;
reg [63:0] <name> = 64'h0000000000000000;
reg signed [7:0] <name> = 8'sh00;
reg signed [8:0] <name> = 9'sh000;
reg signed [15:0] <name> = 16'sh0000;
reg signed [17:0] <name> = 18'sh00000;
reg signed [31:0] <name> = 32'sh00000000;
reg signed [63:0] <name> = 64'sh0000000000000000;
// Stores last value when 3-stated
trireg <name> = 1'b0;
// Stores last value when 3-stated
trireg [1:0] <name> = 2'b00;
// Stores last value when 3-stated
trireg [2:0] <name> = 3'b000;
// Stores last value when 3-stated
trireg [3:0] <name> = 4'h0;
// Stores last value when 3-stated
trireg [7:0] <name> = 8'h00;
// Stores last value when 3-stated
trireg [15:0] <name> = 16'h0000;
// Stores last value when 3-stated
trireg [31:0] <name> = 32'h00000000;
// Stores last value when 3-stated
trireg [63:0] <name> = 64'h0000000000000000;
// The Verilog-2001 Configuration Statement
// ========================================
//
// Verilog-2001 adds a new construct, the configuration or config statement,
// to the Verilog language to allow the modification of library binding rules.
// In general, it is still suggested to use the simulator to specify the library
// binding however at times more specific control is needed and this construct
// allows very specific binding rules for libraries. This is generally used
// for simulation where different models (i.e. behavioral, rtl or gate-level) can
// be used and inter-changed during simulation. For instance, a config can be
// used with the KEEP_HIERARCHY=TRUE and the MHF (Multiple Hierarchical Netlists)
// feature in the Xilinx tools to allow for a true mixed gate-level timing
// and behavioral/RTL simulation so that you can have speed in the parts of
// the simulation that is not currently being verified for gate-level function
// and/or timing and full timing gate-level netlists for the parts that are
// being verified for timing and end function.
//
// Example: The following will change the default library binding rules for
// a design named ethernet_top located in the work library so that
// the library named gate_lib is used first and if not found there,
// rtl_lib is used. The configuration is name mixed_gate_sim
config mixed_gate_sim;
design work.ethernet_top
default liblist gate_lib rtl_lib;
endconfig;
// Example: The following will change the default library binding rules for
// any instantiation of a module named sram512 in the module named
// ethernet_top located in the work library so that the library named
// sim_lib is used for that model
config mixed_gate_sim;
design work.ethernet_top
default liblist gate_lib rtl_lib;
cell sram512 use sim_lib.sram512;
endconfig;
// Example: The following will change the default library binding rules for
// the instantance named sdram_ctrl_inst in the module named
// custom_cpu located in the work library so that the library named
// dave_lib is used for that model
config mixed_gate_sim;
design work.custom_cpu
default liblist gate_lib rtl_lib;
instance custom_cpu_top.sdram_ctrl_inst liblist dave_lib;
endconfig;
// The following overrides the default library search order
config <config_name>;
design <lib_name>.<design_name>
default liblist <library_1> <library_2>;
endconfig;
// The following will specify which library to bind to a sub-module (cell) within the design
config <config_name>;
design <lib_name>.<design_name>
default liblist <new_library_1> <library_2>;
cell <sub-module_name> use <new_library>.<new_module_name>;
endconfig;
// The following will specify which library to bind to an instance within the design
config <config_name>;
design <lib_name>.<design_name>
default liblist <new_library_1> <library_2>;
instance <instance_name> liblist <new_library>;
endconfig;
// Mnemonics
//
// Most simulators have the ability to display ASCII text in the waveform and
// other debug windows as a means to allow for easier visual reference and
// understanding of a circuit operation. A useful debugging methodology is to
// assign text values to certain circuit values from within the testbench so
// that when added to the waveform and displayed as ASCII, would give more
// useful information about that current state of the circuit. Such methods are
// particularly useful in state-machine designs where each state value could be
// represented as a more easily identified text string. Other examples could
// include mapping OPMODEs, detecting certain data (i.e. packet starts, training
// sequences, etc.) or mapping address values/ranges. Below is an example of
// defining a mnemonic in a testbench to decode a simple state-machine states to
// something more intelligible.
//
// A reg must be declared with enough bits (8 times number of characters)
// to store the desired string. Add this vector to the waveform and set the
// radix to ASCII
reg [(8*12)-1:0] state_string = "??UNKNOWN??";
// There is a 4-bit register called "state" in the uart_inst sub-instance in
// the design file. This always statement looks at it to generate the
// mnemonics for the state-machine to the desired state_string reg.
always @(uut.uart_inst.state)
case (uut.uart_inst.state)
4'b0001 : begin
$display("%t: STATE is now: START", $realtime);
state_string = "START";
end
4'b0010 : begin
$display("%t: STATE is now: FIRST_MATCH", $realtime);
state_string = "FIRST_MATCH";
end
4'b0100 : begin
$display("%t: STATE is now: SECOND_MATCH", $realtime);
state_string = "SECOND_MATCH";
end
4'b1000 : begin
$display("%t: STATE is now: SUCCESS", $realtime);
state_string = "SUCCESS";
end
default : begin
$display("%t: ERROR: STATE is now: UNKNOWN !!!!", $realtime);
state_string = "??UNKNOWN??";
end
endcase
assign <output> = <1-bit_select> ? <input1> : <input0>;
if (<condition>) begin
<statement>;
end
else if (<condition>) begin
<statement>;
end
else begin
<statement>;
end
case (<2-bit select>)
2'b00 : begin
<statement>;
end
2'b01 : begin
<statement>;
end
2'b10 : begin
<statement>;
end
2'b11 : begin
<statement>;
end
default: begin
<statement>;
end
endcase
case (<3-bit select>)
3'b000 : begin
<statement>;
end
3'b001 : begin
<statement>;
end
3'b010 : begin
<statement>;
end
3'b011 : begin
<statement>;
end
3'b100 : begin
<statement>;
end
3'b101 : begin
<statement>;
end
3'b110 : begin
<statement>;
end
3'b111 : begin
<statement>;
end
default: begin
<statement>;
end
endcase
case (<4-bit select>)
4'b0000: begin
<statement>;
end
4'b0001: begin
<statement>;
end
4'b0010: begin
<statement>;
end
4'b0011: begin
<statement>;
end
4'b0100: begin
<statement>;
end
4'b0101: begin
<statement>;
end
4'b0110: begin
<statement>;
end
4'b0111: begin
<statement>;
end
4'b1000: begin
<statement>;
end
4'b1001: begin
<statement>;
end
4'b1010: begin
<statement>;
end
4'b1011: begin
<statement>;
end
4'b1100: begin
<statement>;
end
4'b1101: begin
<statement>;
end
4'b1110: begin
<statement>;
end
4'b1111: begin
<statement>;
end
default: begin
<statement>;
end
endcase
case (<5-bit select>)
5'b00000: begin
<statement>;
end
5'b00001: begin
<statement>;
end
5'b00010: begin
<statement>;
end
5'b00011: begin
<statement>;
end
5'b00100: begin
<statement>;
end
5'b00101: begin
<statement>;
end
5'b00110: begin
<statement>;
end
5'b00111: begin
<statement>;
end
5'b01000: begin
<statement>;
end
5'b01001: begin
<statement>;
end
5'b01010: begin
<statement>;
end
5'b01011: begin
<statement>;
end
5'b01100: begin
<statement>;
end
5'b01101: begin
<statement>;
end
5'b01110: begin
<statement>;
end
5'b01111: begin
<statement>;
end
5'b10000: begin
<statement>;
end
5'b10001: begin
<statement>;
end
5'b10010: begin
<statement>;
end
5'b10011: begin
<statement>;
end
5'b10100: begin
<statement>;
end
5'b10101: begin
<statement>;
end
5'b10110: begin
<statement>;
end
5'b10111: begin
<statement>;
end
5'b11000: begin
<statement>;
end
5'b11001: begin
<statement>;
end
5'b11010: begin
<statement>;
end
5'b11011: begin
<statement>;
end
5'b11100: begin
<statement>;
end
5'b11101: begin
<statement>;
end
5'b11110: begin
<statement>;
end
5'b11111: begin
<statement>;
end
default : begin
<statement>;
end
endcase
case (<6-bit select>)
6'b000000: begin
<statement>;
end
6'b000001: begin
<statement>;
end
6'b000010: begin
<statement>;
end
6'b000011: begin
<statement>;
end
6'b000100: begin
<statement>;
end
6'b000101: begin
<statement>;
end
6'b000110: begin
<statement>;
end
6'b000111: begin
<statement>;
end
6'b001000: begin
<statement>;
end
6'b001001: begin
<statement>;
end
6'b001010: begin
<statement>;
end
6'b001011: begin
<statement>;
end
6'b001100: begin
<statement>;
end
6'b001101: begin
<statement>;
end
6'b001110: begin
<statement>;
end
6'b001111: begin
<statement>;
end
6'b010000: begin
<statement>;
end
6'b010001: begin
<statement>;
end
6'b010010: begin
<statement>;
end
6'b010011: begin
<statement>;
end
6'b010100: begin
<statement>;
end
6'b010101: begin
<statement>;
end
6'b010110: begin
<statement>;
end
6'b010111: begin
<statement>;
end
6'b011000: begin
<statement>;
end
6'b011001: begin
<statement>;
end
6'b011010: begin
<statement>;
end
6'b011011: begin
<statement>;
end
6'b011100: begin
<statement>;
end
6'b011101: begin
<statement>;
end
6'b011110: begin
<statement>;
end
6'b011111: begin
<statement>;
end
6'b100000: begin
<statement>;
end
6'b100001: begin
<statement>;
end
6'b100010: begin
<statement>;
end
6'b100011: begin
<statement>;
end
6'b100100: begin
<statement>;
end
6'b100101: begin
<statement>;
end
6'b100110: begin
<statement>;
end
6'b100111: begin
<statement>;
end
6'b101000: begin
<statement>;
end
6'b101001: begin
<statement>;
end
6'b101010: begin
<statement>;
end
6'b101011: begin
<statement>;
end
6'b101100: begin
<statement>;
end
6'b101101: begin
<statement>;
end
6'b101110: begin
<statement>;
end
6'b101111: begin
<statement>;
end
6'b110000: begin
<statement>;
end
6'b110001: begin
<statement>;
end
6'b110010: begin
<statement>;
end
6'b110011: begin
<statement>;
end
6'b110100: begin
<statement>;
end
6'b110101: begin
<statement>;
end
6'b110110: begin
<statement>;
end
6'b110111: begin
<statement>;
end
6'b111000: begin
<statement>;
end
6'b111001: begin
<statement>;
end
6'b111010: begin
<statement>;
end
6'b111011: begin
<statement>;
end
6'b111100: begin
<statement>;
end
6'b111101: begin
<statement>;
end
6'b111110: begin
<statement>;
end
6'b111111: begin
<statement>;
end
default : begin
<statement>;
end
endcase
always @(posedge <clock>) begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<signal> <= 0;
end else if (<clock_enable>) begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<signal> <= 0;
end else if (<clock_enable>) begin
<signal> <= <clocked_value>;
end
always @(posedge <clock>)
if (!<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
always @(posedge <clock>)
if (<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <async_reset>)
if (!<async_reset>) begin
<signal> <= 0;
end else if (!<sync_reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <async_reset>)
if (<async_reset>) begin
<signal> <= 0;
end else if (<sync_reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
always @(negedge <clock>) begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<signal> <= 0;
end else if (<clock_enable>) begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<signal> <= 0;
end else if (<clock_enable>) begin
<signal> <= <clocked_value>;
end
always @(negedge <clock>)
if (!<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
always @(negedge <clock>)
if (<reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <async_reset>)
if (!<async_reset>) begin
<signal> <= 0;
end else if (!<sync_reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <async_reset>)
if (<async_reset>) begin
<signal> <= 0;
end else if (<sync_reset>) begin
<signal> <= 0;
end else begin
<signal> <= <clocked_value>;
end
// Always specify an else statement with a combinatorial if statement in
// order to avoid the inferrance of a latch
always @*
if (<condition>) begin
<signal> = <value>;
else
<signal> = <value>;
end
assign <wire_name> = <siganl_or_value>;
genvar <var>;
generate
for (<var>=0; <var> < <limit>; <var>=<var>+1)
begin: <label>
<instantiation>
end
endgenerate
genvar <var1>, <var2>;
generate
for (<var1>=0; <var1> < <limit>; <var1>=<var1>+1)
begin: <label_1>
for (<var2>=0; <var2> < <limit>; <var2>=<var2>+1)
begin: <label_2>
<code>
end
end
endgenerate
generate
if (<condition>) begin: <label_1>
<code>;
end else if (<condition>) begin: <label_2>
<code>;
end else begin: <label_3>
<code>;
end
endgenerate
generate
case (<constant_expression>)
<value>: begin: <label_1>
<code>
end
<value>: begin: <label_2>
<code>
end
default: begin: <label_3>
<code>
end
endcase
endgenerate
localparam <name> = <value>;
localparam [upper:lower] <name> = <value>;
localparam signed <name> = <value>;
localparam signed [upper:lower] <name> = <value>;
parameter <name> = <value>;
parameter [upper:lower] <name> = <value>;
parameter signed <name> = <value>;
parameter signed [upper:lower] <name> = <value>;
// Information on the Verilog Parmameter, Local Parameter,
// Defparam and Named Parameter Value Assignment
// =======================================================
//
// Parameters are a method within Verilog in order to define constants
// within the code. They are very useful in order to define bus widths,
// memory depths, state-machine assignments, clock periods and other useful
// constants used throughout the design and testbench. Parameters can bring
// more meaning and documentation to the code or can be used to make the
// code more paramatizable and thus help enable re-use or help adjust to
// late changes in the design. There are two main types of parameters, the
// parameter and local parameter. A local parameter acts the same as a
// parameter however its contents can not be modified via a defparam or a
// named parameter value assignment in the instantiation. A defparam allows
// the reassignment to the value of a parameter from a different level of
// hierarchy in the testbench or design. A named parameter value assignment
// allows a respecification of the parameter value within the instance
// declaration of the instantiation of the component. Both local parameters
// and parameters can be sized to a specified number of bits and/or can be typed
// to be either a signed value, an integer, a real number, a time (64-bit
// precision) or a realtime (double-precision floating point) value.
// Example declaring a parameter and local parameter
// Define pi as a local real number parameter since I do not want to ever change this
localparam real pi = 3.14;
// Define BUS_WIDTH as a parameter with a default value of 8
parameter BUS_WIDTH = 8;
// Use this parameter to define the width of a declared register
reg [BUS_WIDTH-1:0] my_reg;
// Use a defparam from my testbench to change BUS_WIDTH to 16 for the instantiated
// design instance UUT
defparam UUT.BUS_WIDTH = 16;
// Alternatively to the defparam, I could have done this using the named parameter value assignment when I instantiate UUT
my_design #(
.BUS_WIDTH(16)
) UUT (
.A(A),
.B(B),
.C(C)
);
wire <name>;
wire [1:0] <name>;
wire [2:0] <name>;
wire [3:0] <name>;
wire [7:0] <name>;
wire [15:0] <name>;
wire [31:0] <name>;
wire [63:0] <name>;
wire signed [7:0] <name>;
wire signed [8:0] <name>;
wire signed [15:0] <name>;
wire signed [17:0] <name>;
wire signed [31:0] <name>;
wire signed [63:0] <name>;
reg <name>;
reg [1:0] <name>;
reg [2:0] <name>;
reg [3:0] <name>;
reg [7:0] <name>;
reg [15:0] <name>;
reg [31:0] <name>;
reg [63:0] <name>;
reg signed [7:0] <name>;
reg signed [8:0] <name>;
reg signed [15:0] <name>;
reg signed [17:0] <name>;
reg signed [31:0] <name>;
reg signed [63:0] <name>;
reg <name> [3:0];
reg <name> [4:0];
reg <name> [16383:0];
reg [1:0] <name> [8191:0];
reg [3:0] <name> [4095:0];
reg [8:0] <name> [2047:0];
reg [17:0] <name> [1023:0];
reg [35:0] <name> [511:0];
reg <name> = 1'b0;
reg [1:0] <name> = 2'b00;
reg [2:0] <name> = 3'b000;
reg [3:0] <name> = 4'h0;
reg [7:0] <name> = 8'h00;
reg [15:0] <name> = 16'h0000;
reg [31:0] <name> = 32'h00000000;
reg [63:0] <name> = 64'h0000000000000000;
reg signed [7:0] <name> = 8'sh00;
reg signed [8:0] <name> = 9'sh000;
reg signed [15:0] <name> = 16'sh0000;
reg signed [17:0] <name> = 18'sh00000;
reg signed [31:0] <name> = 32'sh00000000;
reg signed [63:0] <name> = 64'sh0000000000000000;
input <name>;
input [1:0] <name>;
input [2:0] <name>;
input [3:0] <name>;
input [7:0] <name>;
input [15:0] <name>;
input [31:0] <name>;
input [63:0] <name>;
output <name>;
output [1:0] <name>;
output [2:0] <name>;
output [3:0] <name>;
output [7:0] <name>;
output [15:0] <name>;
output [31:0] <name>;
output [63:0] <name>;
inout <name>;
inout [1:0] <name>;
inout [2:0] <name>;
inout [3:0] <name>;
inout [7:0] <name>;
inout [15:0] <name>;
inout [31:0] <name>;
inout [63:0] <name>;
output reg <name>;
output reg [1:0] <name>;
output reg [2:0] <name>;
output reg [3:0] <name>;
output reg [7:0] <name>;
output reg [15:0] <name>;
output reg [31:0] <name>;
output reg [63:0] <name>;
inout reg <name>;
inout reg [1:0] <name>;
inout reg [2:0] <name>;
inout reg [3:0] <name>;
inout reg [7:0] <name>;
inout reg [15:0] <name>;
inout reg [31:0] <name>;
inout reg [63:0] <name>;
module <module_name> (
input <input_port_name>,
// ...<other_inputs>...
output <output_port_name>,
// ...<other_outputs>...
output reg <output_reg_name>,
// ...<other_registered_outputs>...
inout <inout_port_name>,
// ...<other_inouts>...
inout reg <inout_reg_name>
// ...<other_registered_inouts>...
);
always @(posedge <clock>) begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(posedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
always @(posedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(posedge <clock>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
always @(posedge <clock> )
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(negedge <clock>) begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(negedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
always @(negedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(negedge <clock>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= <signal>;
end
always @(negedge <clock> )
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= <signal>;
end
always @(posedge <clock>) begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
always @(posedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
always @(posedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
always @(posedge <clock>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
always @(posedge <clock> )
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
always @(negedge <clock>) begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or posedge <reset>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
always @(negedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
always @(negedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
always @(negedge <clock>)
if (<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
always @(negedge <clock>)
if (!<reset>) begin
<reg> <= 1'b0;
end else begin
<reg> <= ~<reg>;
end
always @(negedge <clock> )
if (!<reset>) begin
<reg> <= 1'b0;
end else if (<clock_enable>) begin
<reg> <= ~<reg>;
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
parameter ACC_SIZE=<accumulator_width>;
reg [ACC_SIZE-1:0] <accumulate_out>;
always @ (posedge <clock> or posedge <reset>)
if (<reset>)
<accumulate_out> <= 0;
else if (<clock_enable>)
if (<load>)
<accumulate_out> <= <load_value>;
else
<accumulate_out> <= <accumulate_out> + <accumulate_in>;
parameter ACC_SIZE=<accumulator_width>;
reg [ACC_SIZE-1:0] <accumulate_out>;
always @ (posedge <clock>)
if (<reset>)
<accumulate_out> <= 0;
else if (<clock_enable>)
if (<load>)
<accumulate_out> <= <load_value>;
else
<accumulate_out> <= <accumulate_out> + <accumulate_in>;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
parameter ACC_SIZE=<accumulator_width>;
reg [ACC_SIZE-1:0] <accumulate_out>;
always @ (posedge <clock> or posedge <reset>)
if (<reset>)
<accumulate_out> <= 0;
else if (<clock_enable>)
<accumulate_out> <= <accumulate_out> + <accumulate_in>;
parameter ACC_SIZE=<accumulator_width>;
reg [ACC_SIZE-1:0] <accumulate_out>;
always @ (posedge <clock>)
if (<reset>)
<accumulate_out> <= 0;
else if (<clock_enable>)
<accumulate_out> <= <accumulate_out> + <accumulate_in>;
assign <output_wire> = <1-bit_select> ? <input1> : <input0>;
always @(<2-bit_select>, <input1>, <input2>, <input3>, <input4>)
case (<2-bit_select>)
2'b00: <output> = <input1>;
2'b01: <output> = <input2>;
2'b10: <output> = <input3>;
2'b11: <output> = <input4>;
endcase
always @(<3-bit_select>, <input1>, <input2>, <input3>, <input4>, <input5>,
<input6>, <input7>, <input8>)
case (<3-bit_select>)
3'b000: <output> = <input1>;
3'b001: <output> = <input2>;
3'b010: <output> = <input3>;
3'b011: <output> = <input4>;
3'b100: <output> = <input5>;
3'b101: <output> = <input6>;
3'b110: <output> = <input7>;
3'b111: <output> = <input8>;
endcase
always @(posedge <clock>)
if (<1-bit_select>)
<output_wire> <= <input1>;
else
<output_wire> <= <input0>;
always @(posedge <clock>)
case (<2-bit_select>)
2'b00: <output> = <input1>;
2'b01: <output> = <input2>;
2'b10: <output> = <input3>;
2'b11: <output> = <input4>;
endcase
always @(posedge <clock>)
case (<3-bit_select>)
3'b000: <output> = <input1>;
3'b001: <output> = <input2>;
3'b010: <output> = <input3>;
3'b011: <output> = <input4>;
3'b100: <output> = <input5>;
3'b101: <output> = <input6>;
3'b110: <output> = <input7>;
3'b111: <output> = <input8>;
endcase
parameter shift = <shift_length>;
reg [shift-1:0] <reg_name>;
always @(posedge <clock>)
<reg_name> <= {<input>, <reg_name>[shift-1:1]};
assign <output> = <reg_name>[0];
parameter siso_shift = <shift_length>;
reg [siso_shift-1:0] <reg_name>;
always @(posedge <clock>)
if (<clock_enable>)
<reg_name> <= {<input>, <reg_name>[siso_shift-1:1]};
assign <output> = <reg_name>[0];
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
// Note: By using a reset for this shift register, this can not
// be placed in an SRL16 shift register LUT.
parameter siso_shift = <shift_length>;
reg [siso_shift-1:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= {<input>, <reg_name>[siso_shift-1:1]};
assign <output> = <reg_name>[0];
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
// Note: By using a reset for this shift register, this can not
// be placed in an SRL16 shift register LUT.
parameter siso_shift = <shift_length>;
reg [siso_shift-1:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= {<input>, <reg_name>[siso_shift-1:1]};
assign <output> = <reg_name>[0];
// Note: By using a reset for this shift register, this can not
// be placed in an SRL16 shift register LUT.
parameter siso_shift = <shift_length>;
reg [siso_shift-1:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= {<input>, <reg_name>[siso_shift-1:1]};
assign <output> = <reg_name>[0];
// Note: By using a reset for this shift register, this can not
// be placed in an SRL16 shift register LUT.
parameter siso_shift = <shift_length>;
reg [siso_shift-1:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= {<input>, <reg_name>[siso_shift-1:1]};
assign <output> = <reg_name>[0];
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock>)
if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock>)
if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else if (<clock_enable>) begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<reg_name> <= 0;
<ouput> <= 1'b0;
end
else if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else if (<clock_enable>) begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>) begin
<reg_name> <= 0;
<ouput> <= 1'b0;
end
else if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else if (<clock_enable>) begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock>)
if (<reset>) begin
<reg_name> <= 0;
<ouput> <= 1'b0;
end
else if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else if (<clock_enable>) begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
parameter piso_shift = <shift_width>;
reg [piso_shift-2:0] <reg_name>;
reg <output>;
always @(posedge <clock>)
if (!<reset>) begin
<reg_name> <= 0;
<ouput> <= 1'b0;
end
else if (<load_signal>) begin
<reg_name> <= <input>[piso_shift-1:1];
<ouput> <= <input>[0];
end
else if (<clock_enable>) begin
<reg_name> <= {1'b0, <reg_name>[piso_shift-1:1]};
<output> <= <reg_name>[0];
end
parameter clock_cycles = <number_of_clock_cycles>;
wire/reg <data_in>, <data_out>;
reg [clock_cycles-1:0] <shift_reg>;
always @(posedge <clock>)
if (<clock_enable>)
<shift_reg> <= {<shift_reg>[clock_cycles-2:0], <data_in>};
assign <data_out> = <shift_reg>[clock_cycles-1];
parameter clock_cycles = <number_of_clock_cycles>;
parameter data_width = <width_of_data>;
wire/reg [data_width-1:0] <data_in>, <data_out>;
reg [clock_cycles-1:0] <shift_reg> [data_width-1:0];
genvar i;
generate
for (i=0; i < data_width; i=i+1)
begin: <label>
always @(posedge <clock>)
if (<clock_enable>)
<shift_reg>[i] <= {<shift_reg>[i][clock_cycles-2:0], <data_in>[i]};
assign <data_out>[i] = <shift_reg>[i][clock_cycles-1];
end
endgenerate
// Shift register depth will be selectable from 1 (all zeroes) to 2**depth_select_bits (all ones) deep
parameter depth_select_bits = <number_of_depth_select_bits>;
wire/reg <data_in>, <data_out>;
wire/reg [depth_select_bits-1:0] <depth_select>;
reg [2**depth_select_bits-1:0] <shift_reg>;
always @(posedge <clock>)
if (<clock_enable>)
<shift_reg> <= {<shift_reg>[2**depth_select_bits-2:0], <data_in>};
assign <data_out> = <shift_reg>[<depth_select>];
// Shift register depth will be selectable from 1 (all zeroes) to 2**depth_select_bits (all ones) deep
parameter depth_select_bits = <number_of_depth_select_bits>;
parameter data_width = <width_of_data>;
wire/reg [data_width-1:0] <data_in>, <data_out>;
wire/reg [depth_select_bits-1:0] <depth_select>;
reg [2**depth_select_bits-1:0] <shift_reg> [data_width-1:0];
genvar i;
generate
for (i=0; i < data_width; i=i+1)
begin: <label>
always @(posedge <clock>)
if (<clock_enable>)
<shift_reg>[i] <= {<shift_reg>[i][2**depth_select_bits-2:0], <data_in>[i]};
assign <data_out>[i] = <shift_reg>[i][<depth_select>];
end
endgenerate
reg [3:0] <data_out>;
always @*
case (<2-bit_select>)
2'b00 : <data_out> = <data_in>;
2'b01 : <data_out> = <data_in> << 1;
2'b10 : <data_out> = <data_in> << 2;
default: <data_out> = <data_in> << 3;
endcase
reg [7:0] <data_out>;
always @*
case (<3-bit_select>)
3'b000 : <data_out> = <data_in>;
3'b001 : <data_out> = <data_in> << 1;
3'b010 : <data_out> = <data_in> << 2;
3'b011 : <data_out> = <data_in> << 3;
3'b100 : <data_out> = <data_in> << 4;
3'b101 : <data_out> = <data_in> << 5;
3'b110 : <data_out> = <data_in> << 6;
default: <data_out> = <data_in> << 7;
endcase
reg [15:0] <data_out>;
always @*
case (<4-bit_select>)
4'b0000: <data_out> = <data_in>;
4'b0001: <data_out> = <data_in> << 1;
4'b0010: <data_out> = <data_in> << 2;
4'b0011: <data_out> = <data_in> << 3;
4'b0100: <data_out> = <data_in> << 4;
4'b0101: <data_out> = <data_in> << 5;
4'b0110: <data_out> = <data_in> << 6;
4'b0111: <data_out> = <data_in> << 7;
4'b1000: <data_out> = <data_in> << 8;
4'b1001: <data_out> = <data_in> << 9;
4'b1010: <data_out> = <data_in> << 10;
4'b1011: <data_out> = <data_in> << 11;
4'b1100: <data_out> = <data_in> << 12;
4'b1101: <data_out> = <data_in> << 13;
4'b1110: <data_out> = <data_in> << 14;
default: <data_out> = <data_in> << 15;
endcase
parameter ADDER_WIDTH = <adder_bit_width>;
wire [ADDER_WIDTH-1:0] <a_input>;
wire [ADDER_WIDTH-1:0] <b_input>;
wire [ADDER_WIDTH-1:0] <sum>;
assign <sum> = <a_input> + <b_input>;
parameter ADDER_WIDTH = <adder_bit_width>;
wire [ADDER_WIDTH-1:0] <a_input>;
wire [ADDER_WIDTH-1:0] <b_input>;
wire <carry_out>;
wire [ADDER_WIDTH-1:0] <sum>;
assign {<carry_out>, <sum>} = <a_input> + <b_input>;
parameter ADDER_WIDTH = <adder_bit_width>;
wire signed [ADDER_WIDTH-1:0] <a_input>;
wire signed [ADDER_WIDTH-1:0] <b_input>;
wire signed [ADDER_WIDTH-1:0] <sum>;
assign <sum> = <a_input> + <b_input>;
parameter ADDER_WIDTH = <adder_bit_width>;
reg [ADDER_WIDTH-1:0] <sum>;
always @(posedge <CLK>)
<sum> <= <a_input> + <b_input>;
parameter ADDER_WIDTH = <adder_bit_width>;
reg [ADDER_WIDTH-1:0] <sum>;
reg <carry_out>;
always @(posedge <CLK>)
{<carry_out>, <sum>} <= <a_input> + <b_input>;
parameter ADDER_WIDTH = <adder_bit_width>;
reg signed [ADDER_WIDTH-1:0] <sum>;
always @(posedge <CLK>)
<sum> <= <a_input> + <b_input>;
parameter SUB_WIDTH = <sub_bit_width>;
wire [SUB_WIDTH-1:0] <a_input>;
wire [SUB_WIDTH-1:0] <b_input>;
wire [SUB_WIDTH-1:0] <difference>;
assign <difference> = <a_input> - <b_input>;
parameter ADDSUB_WIDTH = <addsub_bit_width>;
wire [ADDSUB_WIDTH-1:0] <a_input>;
wire [ADDSUB_WIDTH-1:0] <b_input>;
reg [ADDSUB_WIDTH-1:0] <addsub_output>;
always @*
if (<add_sub>)
<addsub_output> = <a_input> + <b_input>;
else
<addsub_output> = <a_input> - <b_input>;
parameter DIV_WIDTH = <div_bit_width>;
wire [DIV_WIDTH-1:0] <div_input>;
wire [DIV_WIDTH-1:0] <dividend>;
assign <dividend> = <div_input> / 2;
parameter DIV_WIDTH = <div_bit_width>;
wire [DIV_WIDTH-1:0] <div_input>;
wire [DIV_WIDTH-1:0] <dividend>;
assign <dividend> = <div_input> / 4;
parameter DIV_WIDTH = <div_bit_width>;
wire [DIV_WIDTH-1:0] <div_input>;
wire [DIV_WIDTH-1:0] <dividend>;
assign <dividend> = <div_input> / 8;
parameter DIV_WIDTH = <div_bit_width>;
wire [DIV_WIDTH-1:0] <div_input>;
wire [DIV_WIDTH-1:0] <dividend>;
assign <dividend> = <div_input> / 16;
parameter MULT_INPUT_WIDTH = <mult_input_bit_width>;
wire [MULT_INPUT_WIDTH-1:0] <a_input>;
wire [MULT_INPUT_WIDTH-1:0] <b_input>;
wire [MULT_INPUT_WIDTH*2-1:0] <product>;
assign <product> = <a_input> * <b_input>;
wire [17:0] <a_input>;
wire [17:0] <b_input>;
reg [35:0] <product>;
always @(posedge <clock>)
<product> <= <a_input> * <b_input>;
reg <output>;
always @(posedge <clock>)
if (<input1> == <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
reg <output>;
always @(posedge <clock>)
if (<input1> != <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
reg <output>;
always @(posedge <clock>)
if (<input1> > <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
reg <output>;
always @(posedge <clock>)
if (<input1> < <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
reg <output>;
always @(posedge <clock>)
if (<input1> >= <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
reg <output>;
always @(posedge <clock>)
if (<input1> <= <input2>)
<output> <= 1'b1;
else
<output> <= 1'b0;
always @(<enable> or <data>)
if (<enable>)
<output_reg> = <data>;
else
<output_reg> = 1'bz;
assign <output_wire> = <enable> ? <data> : 1'bz;
always @(<enable> or <data>)
if (!<enable>)
<output_reg> = <data>;
else
<output_reg> = 1'bz;
assign <output_wire> = <enable> ? 1'bz : <data>;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<clock_enable>)
<reg_name> <= <reg_name> + 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> + 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> + 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> + 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> + 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<clock_enable>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else if (<up_down>)
<reg_name> <= <reg_name> + 1;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<clock_enable>)
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [<upper>:0] <reg_name>;
always @(posedge <clock> or negedge <reset>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> - 1;
reg [<upper>:0] <reg_name>;
always @(posedge <clock>)
if (!<reset>)
<reg_name> <= 0;
else if (<clock_enable>)
if (<load_enable>)
<reg_name> <= <load_signal_or_value>;
else
<reg_name> <= <reg_name> - 1;
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [3:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 4'h0;
else if (<clock_enable>) begin
<reg_name>[3:1] <= <reg_name>[2:0];
<reg_name>[0] <= ~^<reg_name>[4:3];
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [7:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 8'h00;
else if (<clock_enable>) begin
<reg_name>[7:1] <= <reg_name>[6:0];
<reg_name>[0] <= ~^{<reg_name>[8], <reg_name>[6:4]};
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [15:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 16'h0000;
else if (<clock_enable>) begin
<reg_name>[15:1] <= <reg_name>[16:0];
<reg_name>[0] <= ~^{<reg_name>[16:15], <reg_name>[13], <reg_name>[4]};
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
reg [31:0] <reg_name>;
always @(posedge <clock> or posedge <reset>)
if (<reset>)
<reg_name> <= 32'h00000000;
else if (<clock_enable>) begin
<reg_name>[31:1] <= <reg_name>[30:0];
<reg_name>[0] <= ~^{<reg_name>[32], <reg_name>[22], <reg_name>[2:1]};
end
reg [3:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 4'h0;
else if (<clock_enable>) begin
<reg_name>[3:1] <= <reg_name>[2:0];
<reg_name>[0] <= ~^<reg_name>[4:3];
end
reg [7:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 8'h00;
else if (<clock_enable>) begin
<reg_name>[7:1] <= <reg_name>[6:0];
<reg_name>[0] <= ~^{<reg_name>[8], <reg_name>[6:4]};
end
reg [15:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 16'h0000;
else if (<clock_enable>) begin
<reg_name>[15:1] <= <reg_name>[16:0];
<reg_name>[0] <= ~^{<reg_name>[16:15], <reg_name>[13], <reg_name>[4]};
end
reg [31:0] <reg_name>;
always @(posedge <clock>)
if (<reset>)
<reg_name> <= 32'h00000000;
else if (<clock_enable>) begin
<reg_name>[31:1] <= <reg_name>[30:0];
<reg_name>[0] <= ~^{<reg_name>[32], <reg_name>[22], <reg_name>[2:1]};
end
// Usage of asynchronous resets may negatively impact FPGA resources
// and timing. In general faster and smaller FPGA designs will
// result from not using asynchronous resets. Please refer to
// the Synthesis and Simulation Design Guide for more information.
parameter gray_width = <gray_value_width>;
reg [gray_width-1:0] <binary_value>;
reg [gray_width-1:0] <gray_value>;
always @(posedge <clock> or posedge <reset>)
if (<reset>) begin
<binary_value> <= {{gray_width{1'b0}}, 1'b1};
<gray_value> <= {gray_width{1'b0}};
end
else if (<clock_enable>) begin
<binary_value> <= <binary_value> + 1;
<gray_value> <= (<binary_value> >> 1) ^ <binary_value>;
end
parameter gray_width = <gray_value_width>;
reg [gray_width-1:0] <binary_value>;
reg [gray_width-1:0] <gray_value>;
always @(posedge <clock>)
if (<reset>) begin
<binary_value> <= {{gray_width{1'b0}}, 1'b1};
<gray_value> <= {gray_width{1'b0}};
end
else if (<clock_enable>) begin
<binary_value> <= <binary_value> + 1;
<gray_value> <= (<binary_value> >> 1) ^ <binary_value>;
end
// The following code show an example of creating a pre-scaler binary counter
// where the LSB must run at full speed but the rest of the counter can have a
// multi-cycle constraint running at half of the clock speed. This allows for
// much faster counter implementations than the standard binary counter.
reg [<upper>:0] <count>;
always @(posedge <clock>)
if (<reset>)
<count> <= 0;
else begin
<count>[0] <= ~<count>[0];
if (count>[0])
<count>[<upper>:1] <= <count>[<upper>:1] + 1;
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>)
if (<ram_enable>) begin
if (<write_enable>)
<ram_name>[<address>] <= <input_data>;
<output_data> <= <ram_name>[<address>];
end
parameter DATA_WIDTH = 16;
paremater ADDR_WIDTH = <num_addr_bits>;
reg/wire [DATA_WIDTH-1:0] <data_in>;
reg/wire [ADDR_WIDTH-1:0] <address>;
reg/wire [1:0] <write_enable>;
reg/wire <clock>;
reg/wire <ram_enable>;
reg [DATA_WIDTH-1:0] <data_out>;
reg [DATA_WIDTH-1:0] <ram_name> [2**ADDR_WIDTH-1:0];
reg [(DATA_WIDTH/2)-1:0] di0, di1;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <ram_name>, <begin_address>, <end_address>);
always @(<write_enable>, <data_in>) begin
if (<write_enable>[0])
di0 = <data_in>[(DATA_WIDTH/2)-1:0];
else
di0 = <ram_name>[<address>][(DATA_WIDTH/2)-1:0];
if (<write_enable>[1])
di1 = <data_in>[DATA_WIDTH-1:DATA_WIDTH/2];
else
di1 = <ram_name>[<address>][DATA_WIDTH-1:DATA_WIDTH/2];
end
always @(posedge <clock>)
if (<ram_enable>) begin
<data_out> <= <ram_name>[<address>];
<ram_name>[<address>] <= {di1,di0};
end
parameter DATA_WIDTH = 32;
paremater ADDR_WIDTH = <num_addr_bits>;
reg/wire [DATA_WIDTH-1:0] <data_in>;
reg/wire [ADDR_WIDTH-1:0] <address>;
reg/wire [3:0] <write_enable>;
reg/wire <clock>;
reg/wire <ram_enable>;
reg [DATA_WIDTH-1:0] <data_out>;
reg [DATA_WIDTH-1:0] <ram_name> [2**ADDR_WIDTH-1:0];
reg [(DATA_WIDTH/4)-1:0] di0, di1, di2, di3;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <ram_name>, <begin_address>, <end_address>);
always @(<write_enable>, <data_in>) begin
if (<write_enable>[0])
di0 = <data_in>[(DATA_WIDTH/4)-1:0];
else
di0 = <ram_name>[<address>][(DATA_WIDTH/4)-1:0];
if (<write_enable>[1])
di1 = <data_in>[(DATA_WIDTH/2)-1:DATA_WIDTH/4];
else
di1 = <ram_name>[<address>][(DATA_WIDTH/2)-1:DATA_WIDTH/4];
if (<write_enable>[2])
di2 = <data_in>[(3*DATA_WIDTH/4)-1:DATA_WIDTH/2];
else
di2 = <ram_name>[<address>][(3*DATA_WIDTH/4)-1:DATA_WIDTH/2];
if (<write_enable>[3])
di3 = <data_in>[DATA_WIDTH-1:(3*DATA_WIDTH/4)];
else
di3 = <ram_name>[<address>][DATA_WIDTH-1:(3*DATA_WIDTH/4)];
end
always @(posedge <clock>)
if (<ram_enable>) begin
<data_out> <= <ram_name>[<address>];
<ram_name>[<address>] <= {di3,di2,di1,di0};
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>)
if (<ram_enable>) begin
if (<write_enable>) begin
<ram_name>[<address>] <= <input_data>;
<output_data> <= <input_data>;
end
else
<output_data> <= <ram_name>[<address>];
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>)
if (<ram_enable>)
if (<write_enable>)
<ram_name>[<address>] <= <input_data>;
else
<output_data> <= <ram_name>[<address>];
parameter DATA_WIDTH = 16;
paremater ADDR_WIDTH = <num_addr_bits>;
reg/wire [DATA_WIDTH-1:0] <data_in>;
reg/wire [ADDR_WIDTH-1:0] <address>;
reg/wire [1:0] <write_enable>;
reg/wire <clock>;
reg/wire <ram_enable>;
reg [DATA_WIDTH-1:0] <data_out>;
reg [DATA_WIDTH-1:0] <ram_name> [2**ADDR_WIDTH-1:0];
reg [(DATA_WIDTH/2)-1:0] di0, di1;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <ram_name>, <begin_address>, <end_address>);
always @(<write_enable>, <data_in>) begin
if (<write_enable>[0])
di0 = <data_in>[(DATA_WIDTH/2)-1:0];
else
di0 = <ram_name>[<address>][(DATA_WIDTH/2)-1:0];
if (<write_enable>[1])
di1 = <data_in>[DATA_WIDTH-1:DATA_WIDTH/2];
else
di1 = <ram_name>[<address>][DATA_WIDTH-1:DATA_WIDTH/2];
end
always @(posedge <clock>)
if (<ram_enable>) begin
<data_out> <= {di1,di0};
<ram_name>[<address>] <= {di1,di0};
end
parameter DATA_WIDTH = 32;
paremater ADDR_WIDTH = <num_addr_bits>;
reg/wire [DATA_WIDTH-1:0] <data_in>;
reg/wire [ADDR_WIDTH-1:0] <address>;
reg/wire [3:0] <write_enable>;
reg/wire <clock>;
reg/wire <ram_enable>;
reg [DATA_WIDTH-1:0] <data_out>;
reg [DATA_WIDTH-1:0] <ram_name> [2**ADDR_WIDTH-1:0];
reg [(DATA_WIDTH/4)-1:0] di0, di1, di2, di3;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <ram_name>, <begin_address>, <end_address>);
always @(<write_enable>, <data_in>) begin
if (<write_enable>[0])
di0 = <data_in>[(DATA_WIDTH/4)-1:0];
else
di0 = <ram_name>[<address>][(DATA_WIDTH/4)-1:0];
if (<write_enable>[1])
di1 = <data_in>[(DATA_WIDTH/2)-1:DATA_WIDTH/4];
else
di1 = <ram_name>[<address>][(DATA_WIDTH/2)-1:DATA_WIDTH/4];
if (<write_enable>[2])
di2 = <data_in>[(3*DATA_WIDTH/4)-1:DATA_WIDTH/2];
else
di2 = <ram_name>[<address>][(3*DATA_WIDTH/4)-1:DATA_WIDTH/2];
if (<write_enable>[3])
di3 = <data_in>[DATA_WIDTH-1:(3*DATA_WIDTH/4)];
else
di3 = <ram_name>[<address>][DATA_WIDTH-1:(3*DATA_WIDTH/4)];
end
always @(posedge <clock>)
if (<ram_enable>) begin
<data_out> <= {di3,di2,di1,di0};
<ram_name>[<address>] <= {di3,di2,di1,di0};
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <read_address>, <write_address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>) begin
if (<write_enable>)
<ram_name>[<write_address>] <= <input_data>;
<output_data> <= <ram_name>[<read_address>];
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_dataA>, <output_dataB>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <addressA>, <addressB>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_dataA>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>) begin
if (<enableA>) begin
if (<write_enableA>)
<ram_name>[<addressA>] <= <input_dataA>;
<output_dataA> <= <ram_name>[<addressA>];
end
if (<enableB>)
<output_dataB> <= <ram_name>[<addressB>];
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_dataA>, <output_dataB>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <addressA>, <addressB>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_dataA>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clockA>)
if (<enableA>) begin
if (<write_enableA>)
<ram_name>[<addressA>] <= <input_dataA>;
<output_dataA> <= <ram_name>[<addressA>];
end
always @(posedge <clockB>)
if (<enableB>)
<output_dataB> <= <ram_name>[<addressB>];
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_dataB>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <addressA>, <addressB>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_dataA>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clockA>)
if (<enableA>)
if (<write_enableA>)
<ram_name>[<addressA>] <= <input_dataA>;
always @(posedge <clockB>)
if (<enableB>)
<output_dataB> <= <ram_name>[<addressB>];
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
reg [RAM_WIDTH-1:0] <output_dataA>, <output_dataB>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <addressA>, <addressB>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_dataA>;
// The following code is only necessary if you wish to initialize the RAM
// contents via an external file (use $readmemb for binary data)
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clockA>)
if (<enableA>) begin
if (<write_enableA>)
<ram_name>[<addressA>] <= <input_dataA>;
<output_dataA> <= <ram_name>[<addressA>];
end
always @(posedge <clockB>)
if (<enableB>) begin
if (<write_enableB>)
<ram_name>[<addressB>] <= <input_dataB>;
<output_dataB> <= <ram_name>[<addressB>];
end
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
wire [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
always @(posedge <clock>)
if (<write_enable>)
<ram_name>[<address>] <= <input_data>;
assign <output_data> = <ram_name>[<address>];
parameter RAM_WIDTH = <ram_width>;
parameter RAM_ADDR_BITS = <ram_addr_bits>;
reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
wire [RAM_WIDTH-1:0] <output_data>;
<reg_or_wire> [RAM_ADDR_BITS-1:0] <read_address>, <write_address>;
<reg_or_wire> [RAM_WIDTH-1:0] <input_data>;
always @(posedge <clock>)
if (<write_enable>)
<ram_name>[<write_address>] <= <input_data>;
assign <output_data> = <ram_name>[<read_address>];
parameter ROM_WIDTH = <ram_width>;
reg [ROM_WIDTH-1:0] <output_data>;
<reg_or_wire> [3:0] <address>;
always @(posedge <clock>)
if (<enable>)
case (<address>)
4'b0000: <output_data> <= <value>;
4'b0001: <output_data> <= <value>;
4'b0010: <output_data> <= <value>;
4'b0011: <output_data> <= <value>;
4'b0100: <output_data> <= <value>;
4'b0101: <output_data> <= <value>;
4'b0110: <output_data> <= <value>;
4'b0111: <output_data> <= <value>;
4'b1000: <output_data> <= <value>;
4'b1001: <output_data> <= <value>;
4'b1010: <output_data> <= <value>;
4'b1011: <output_data> <= <value>;
4'b1100: <output_data> <= <value>;
4'b1101: <output_data> <= <value>;
4'b1110: <output_data> <= <value>;
4'b1111: <output_data> <= <value>;
default: <output_data> <= <value>;
endcase
parameter ROM_WIDTH = <ram_width>;
reg [ROM_WIDTH-1:0] <output_data>;
<reg_or_wire> [4:0] <address>;
always @(posedge <clock>)
if (<enable>)
case (<address>)
5'b00000: <output_data> <= <value>;
5'b00001: <output_data> <= <value>;
5'b00010: <output_data> <= <value>;
5'b00011: <output_data> <= <value>;
5'b00100: <output_data> <= <value>;
5'b00101: <output_data> <= <value>;
5'b00110: <output_data> <= <value>;
5'b00111: <output_data> <= <value>;
5'b01000: <output_data> <= <value>;
5'b01001: <output_data> <= <value>;
5'b01010: <output_data> <= <value>;
5'b01011: <output_data> <= <value>;
5'b01100: <output_data> <= <value>;
5'b01101: <output_data> <= <value>;
5'b01110: <output_data> <= <value>;
5'b01111: <output_data> <= <value>;
5'b10000: <output_data> <= <value>;
5'b10001: <output_data> <= <value>;
5'b10010: <output_data> <= <value>;
5'b10011: <output_data> <= <value>;
5'b10100: <output_data> <= <value>;
5'b10101: <output_data> <= <value>;
5'b10110: <output_data> <= <value>;
5'b10111: <output_data> <= <value>;
5'b11000: <output_data> <= <value>;
5'b11001: <output_data> <= <value>;
5'b11010: <output_data> <= <value>;
5'b11011: <output_data> <= <value>;
5'b11100: <output_data> <= <value>;
5'b11101: <output_data> <= <value>;
5'b11110: <output_data> <= <value>;
5'b11111: <output_data> <= <value>;
default: <output_data> <= <value>;
endcase
parameter ROM_WIDTH = <ram_width>;
reg [ROM_WIDTH-1:0] <output_data>;
<reg_or_wire> [5:0] <address>;
always @(posedge <clock>)
if (<enable>)
case (<address>)
6'b000000: <output_data> <= <value>;
6'b000001: <output_data> <= <value>;
6'b000010: <output_data> <= <value>;
6'b000011: <output_data> <= <value>;
6'b000100: <output_data> <= <value>;
6'b000101: <output_data> <= <value>;
6'b000110: <output_data> <= <value>;
6'b000111: <output_data> <= <value>;
6'b001000: <output_data> <= <value>;
6'b001001: <output_data> <= <value>;
6'b001010: <output_data> <= <value>;
6'b001011: <output_data> <= <value>;
6'b001100: <output_data> <= <value>;
6'b001101: <output_data> <= <value>;
6'b001110: <output_data> <= <value>;
6'b001111: <output_data> <= <value>;
6'b010000: <output_data> <= <value>;
6'b010001: <output_data> <= <value>;
6'b010010: <output_data> <= <value>;
6'b010011: <output_data> <= <value>;
6'b010100: <output_data> <= <value>;
6'b010101: <output_data> <= <value>;
6'b010110: <output_data> <= <value>;
6'b010111: <output_data> <= <value>;
6'b011000: <output_data> <= <value>;
6'b011001: <output_data> <= <value>;
6'b011010: <output_data> <= <value>;
6'b011011: <output_data> <= <value>;
6'b011100: <output_data> <= <value>;
6'b011101: <output_data> <= <value>;
6'b011110: <output_data> <= <value>;
6'b011111: <output_data> <= <value>;
6'b100000: <output_data> <= <value>;
6'b100001: <output_data> <= <value>;
6'b100010: <output_data> <= <value>;
6'b100011: <output_data> <= <value>;
6'b100100: <output_data> <= <value>;
6'b100101: <output_data> <= <value>;
6'b100110: <output_data> <= <value>;
6'b100111: <output_data> <= <value>;
6'b101000: <output_data> <= <value>;
6'b101001: <output_data> <= <value>;
6'b101010: <output_data> <= <value>;
6'b101011: <output_data> <= <value>;
6'b101100: <output_data> <= <value>;
6'b101101: <output_data> <= <value>;
6'b101110: <output_data> <= <value>;
6'b101111: <output_data> <= <value>;
6'b110000: <output_data> <= <value>;
6'b110001: <output_data> <= <value>;
6'b110010: <output_data> <= <value>;
6'b110011: <output_data> <= <value>;
6'b110100: <output_data> <= <value>;
6'b110101: <output_data> <= <value>;
6'b110110: <output_data> <= <value>;
6'b110111: <output_data> <= <value>;
6'b111000: <output_data> <= <value>;
6'b111001: <output_data> <= <value>;
6'b111010: <output_data> <= <value>;
6'b111011: <output_data> <= <value>;
6'b111100: <output_data> <= <value>;
6'b111101: <output_data> <= <value>;
6'b111110: <output_data> <= <value>;
6'b111111: <output_data> <= <value>;
default: <output_data> <= <value>;
endcase
parameter ROM_WIDTH = <ram_width>;
parameter ROM_ADDR_BITS = <ram_addr_bits>;
reg [ROM_WIDTH-1:0] <rom_name> [(2**ROM_ADDR_BITS)-1:0];
reg [ROM_WIDTH-1:0] <output_data>;
<reg_or_wire> [ROM_ADDR_BITS-1:0] <address>;
initial
$readmemb("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>)
if (<enable>)
<output_data> <= <rom_name>[<address>];
parameter ROM_WIDTH = <ram_width>;
parameter ROM_ADDR_BITS = <ram_addr_bits>;
reg [ROM_WIDTH-1:0] <rom_name> [(2**ROM_ADDR_BITS)-1:0];
reg [ROM_WIDTH-1:0] <output_data>;
<reg_or_wire> [ROM_ADDR_BITS-1:0] <address>;
initial
$readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);
always @(posedge <clock>)
if (<enable>)
<output_data> <= <rom_name>[<address>];
// Finite State-machines
//
// There are several methods to code state-machines however following certain
// coding styles ensures the synthesis tool FSM (Finite State-Machine)
// extraction algorithms properly identify and optimize the state-machine as
// well as possibly improving the simulation, timing and debug of the circuit.
// The following examples are broken down into Mealy vs. Moore, One-hot vs.
// Binary and Safe vs. Fast implementations. The basic trade-offs for each
// implementation is explained below. The general recommendation for the
// choice of state-machine depends on the target architecture and specifics of
// the state-machine size and behavior however typically, Moore style, one-hot
// state-machines implement better for FPGAs and Mealy, binary state-machines
// implement best for CPLDs.
//
// Mealy vs. Moore Styles
//
// There are two well known implementation styles for state-machines, Mealy
// and Moore. The main difference between Mealy and Moore styles is the Mealy
// state-machine determines the output values based on both the current state
// as well as the inputs to the state-machine where Moore determines its
// outputs solely on the state. In general, Moore type of state-machines
// implement best in FPGAs due to the fact that most often one-hot
// state-machines is the chosen encoding method and there is little or no
// decode and thus logic necessary for output values. If a binary encoding is
// used, it is possible that a more compact and sometimes faster state-machine
// can be built using the Mealy method however this is not always true and not
// easy to determine without knowing more specifics of the state-machine.
//
// One-hot vs. Binary Encoding
//
// There are several encoding methods for state-machine design however the two
// most popular for FPGA or CPLD design are binary and one-hot. For most FPGA
// architectures, one-hot is the better encoding method due the abundance
// of FF resources and the lesser fan-in requirements for the next
// state-equation (maps better into LUTs). When targeting CPLDs, binary can
// many times work better due to the logic structure of the CPLD and fewer
// register resources. In any case, most modern synthesis tools contain FSM
// extraction algorithms that can identify state-machine code and choose the
// best encoding method for the size, type and target architecture. Even though
// this facility exists, many times it can be most advantageous to manually code
// and control the best encoding scheme for the design to allow better control
// and possibly ease debug of the implemented design. It is suggested to
// consult the synthesis tool documentation for details about the state-machine
// extraction capabilities of the synthesis tool you are using.
//
// Safe vs. Fast
//
// When coding a state-machine, there are two generally conflicting goals that
// must be understood, safe vs. fast. A safe state-machine implementation
// refers to the case where if a state-machine should get an unknown input or
// into an unknown state that it can recover into a known state the next clock
// cycle and resume from that recovery state. On the other hand, if this
// requirement is discarded (no recovery state) many times the state-machine
// can be implemented with less logic and more speed than if state-machine
// recovery is necessary. How to design a safe state-machine generally
// involves coding in a default state into the state-machine next-state case
// clause and/or specifying to the synthesis tool to implement the
// state-machine encoding in a "safe" mode. If a safe state-machine is desired
// many time binary encoding works best due to the fact there are generally fewer
// unassigned states with that encoding method. Again it is suggested to consult
// the synthesis tool documentation for details about implementing a safe
// state-machine.
parameter <state1> = 4'b0001;
parameter <state2> = 4'b0010;
parameter <state3> = 4'b0100;
parameter <state4> = 4'b1000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 8'b00000001;
parameter <state2> = 8'b00000010;
parameter <state3> = 8'b00000100;
parameter <state4> = 8'b00001000;
parameter <state5> = 8'b00010000;
parameter <state6> = 8'b00100000;
parameter <state7> = 8'b01000000;
parameter <state8> = 8'b10000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [7:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 16'b0000000000000001;
parameter <state2> = 16'b0000000000000010;
parameter <state3> = 16'b0000000000000100;
parameter <state4> = 16'b0000000000001000;
parameter <state5> = 16'b0000000000010000;
parameter <state6> = 16'b0000000000100000;
parameter <state7> = 16'b0000000001000000;
parameter <state8> = 16'b0000000010000000;
parameter <state9> = 16'b0000000100000000;
parameter <state10> = 16'b0000001000000000;
parameter <state11> = 16'b0000010000000000;
parameter <state12> = 16'b0000100000000000;
parameter <state13> = 16'b0001000000000000;
parameter <state14> = 16'b0010000000000000;
parameter <state15> = 16'b0100000000000000;
parameter <state16> = 16'b1000000000000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [15:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 4'b0001;
parameter <state2> = 4'b0010;
parameter <state3> = 4'b0100;
parameter <state4> = 4'b1000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *)case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 8'b00000001;
parameter <state2> = 8'b00000010;
parameter <state3> = 8'b00000100;
parameter <state4> = 8'b00001000;
parameter <state5> = 8'b00010000;
parameter <state6> = 8'b00100000;
parameter <state7> = 8'b01000000;
parameter <state8> = 8'b10000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [7:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 16'b0000000000000001;
parameter <state2> = 16'b0000000000000010;
parameter <state3> = 16'b0000000000000100;
parameter <state4> = 16'b0000000000001000;
parameter <state5> = 16'b0000000000010000;
parameter <state6> = 16'b0000000000100000;
parameter <state7> = 16'b0000000001000000;
parameter <state8> = 16'b0000000010000000;
parameter <state9> = 16'b0000000100000000;
parameter <state10> = 16'b0000001000000000;
parameter <state11> = 16'b0000010000000000;
parameter <state12> = 16'b0000100000000000;
parameter <state13> = 16'b0001000000000000;
parameter <state14> = 16'b0010000000000000;
parameter <state15> = 16'b0100000000000000;
parameter <state16> = 16'b1000000000000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [15:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 2'b00;
parameter <state2> = 2'b01;
parameter <state3> = 2'b10;
parameter <state4> = 2'b11;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [1:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 3'b000;
parameter <state2> = 3'b001;
parameter <state3> = 3'b010;
parameter <state4> = 3'b011;
parameter <state5> = 3'b100;
parameter <state6> = 3'b101;
parameter <state7> = 3'b110;
parameter <state8> = 3'b111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [2:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 4'b0000;
parameter <state2> = 4'b0001;
parameter <state3> = 4'b0010;
parameter <state4> = 4'b0011;
parameter <state5> = 4'b0100;
parameter <state6> = 4'b0101;
parameter <state7> = 4'b0110;
parameter <state8> = 4'b0111;
parameter <state9> = 4'b1000;
parameter <state10> = 4'b1001;
parameter <state11> = 4'b1010;
parameter <state12> = 4'b1011;
parameter <state13> = 4'b1100;
parameter <state14> = 4'b1101;
parameter <state15> = 4'b1110;
parameter <state16> = 4'b1111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
default : begin // Fault Recovery
state <= <state1>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 2'b00;
parameter <state2> = 2'b01;
parameter <state3> = 2'b10;
parameter <state4> = 2'b11;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [1:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 3'b000;
parameter <state2> = 3'b001;
parameter <state3> = 3'b010;
parameter <state4> = 3'b011;
parameter <state5> = 3'b100;
parameter <state6> = 3'b101;
parameter <state7> = 3'b110;
parameter <state8> = 3'b111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [2:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 4'b0000;
parameter <state2> = 4'b0001;
parameter <state3> = 4'b0010;
parameter <state4> = 4'b0011;
parameter <state5> = 4'b0100;
parameter <state6> = 4'b0101;
parameter <state7> = 4'b0110;
parameter <state8> = 4'b0111;
parameter <state9> = 4'b1000;
parameter <state10> = 4'b1001;
parameter <state11> = 4'b1010;
parameter <state12> = 4'b1011;
parameter <state13> = 4'b1100;
parameter <state14> = 4'b1101;
parameter <state15> = 4'b1110;
parameter <state16> = 4'b1111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
end
endcase
assign <output1> = <logic_equation_based_on_states_and_inputs>;
assign <output2> = <logic_equation_based_on_states_and_inputs>;
// Add other output equations as necessary
parameter <state1> = 4'b0001;
parameter <state2> = 4'b0010;
parameter <state3> = 4'b0100;
parameter <state4> = 4'b1000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default: begin // Fault Recovery
state <= <state1>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 8'b00000001;
parameter <state2> = 8'b00000010;
parameter <state3> = 8'b00000100;
parameter <state4> = 8'b00001000;
parameter <state5> = 8'b00010000;
parameter <state6> = 8'b00100000;
parameter <state7> = 8'b01000000;
parameter <state8> = 8'b10000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [7:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default: begin // Fault Recovery
state <= <state1>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 16'b0000000000000001;
parameter <state2> = 16'b0000000000000010;
parameter <state3> = 16'b0000000000000100;
parameter <state4> = 16'b0000000000001000;
parameter <state5> = 16'b0000000000010000;
parameter <state6> = 16'b0000000000100000;
parameter <state7> = 16'b0000000001000000;
parameter <state8> = 16'b0000000010000000;
parameter <state9> = 16'b0000000100000000;
parameter <state10> = 16'b0000001000000000;
parameter <state11> = 16'b0000010000000000;
parameter <state12> = 16'b0000100000000000;
parameter <state13> = 16'b0001000000000000;
parameter <state14> = 16'b0010000000000000;
parameter <state15> = 16'b0100000000000000;
parameter <state16> = 16'b1000000000000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [15:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default: begin // Fault Recovery
state <= <state1>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 4'b0001;
parameter <state2> = 4'b0010;
parameter <state3> = 4'b0100;
parameter <state4> = 4'b1000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 8'b00000001;
parameter <state2> = 8'b00000010;
parameter <state3> = 8'b00000100;
parameter <state4> = 8'b00001000;
parameter <state5> = 8'b00010000;
parameter <state6> = 8'b00100000;
parameter <state7> = 8'b01000000;
parameter <state8> = 8'b10000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [7:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 16'b0000000000000001;
parameter <state2> = 16'b0000000000000010;
parameter <state3> = 16'b0000000000000100;
parameter <state4> = 16'b0000000000001000;
parameter <state5> = 16'b0000000000010000;
parameter <state6> = 16'b0000000000100000;
parameter <state7> = 16'b0000000001000000;
parameter <state8> = 16'b0000000010000000;
parameter <state9> = 16'b0000000100000000;
parameter <state10> = 16'b0000001000000000;
parameter <state11> = 16'b0000010000000000;
parameter <state12> = 16'b0000100000000000;
parameter <state13> = 16'b0001000000000000;
parameter <state14> = 16'b0010000000000000;
parameter <state15> = 16'b0100000000000000;
parameter <state16> = 16'b1000000000000000;
(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [15:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 2'b00;
parameter <state2> = 2'b01;
parameter <state3> = 2'b10;
parameter <state4> = 2'b11;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [1:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE, FULL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default : begin // Fault Recovery
state <= <state1>;
<ouputs> <= <values>;
end
endcase
parameter <state1> = 3'b000;
parameter <state2> = 3'b001;
parameter <state3> = 3'b010;
parameter <state4> = 3'b011;
parameter <state5> = 3'b100;
parameter <state6> = 3'b101;
parameter <state7> = 3'b110;
parameter <state8> = 3'b111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [2:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE, FULL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default : begin // Fault Recovery
state <= <state1>;
<ouputs> <= <values>;
end
endcase
parameter <state1> = 4'b0000;
parameter <state2> = 4'b0001;
parameter <state3> = 4'b0010;
parameter <state4> = 4'b0011;
parameter <state5> = 4'b0100;
parameter <state6> = 4'b0101;
parameter <state7> = 4'b0110;
parameter <state8> = 4'b0111;
parameter <state9> = 4'b1000;
parameter <state10> = 4'b1001;
parameter <state11> = 4'b1010;
parameter <state12> = 4'b1011;
parameter <state13> = 4'b1100;
parameter <state14> = 4'b1101;
parameter <state15> = 4'b1110;
parameter <state16> = 4'b1111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="<recovery_state_value>" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* PARALLEL_CASE, FULL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
default : begin // Fault Recovery
state <= <state1>;
<ouputs> <= <values>;
end
endcase
parameter <state1> = 2'b00;
parameter <state2> = 2'b01;
parameter <state3> = 2'b10;
parameter <state4> = 2'b11;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [1:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 3'b000;
parameter <state2> = 3'b001;
parameter <state3> = 3'b010;
parameter <state4> = 3'b011;
parameter <state5> = 3'b100;
parameter <state6> = 3'b101;
parameter <state7> = 3'b110;
parameter <state8> = 3'b111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [2:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
parameter <state1> = 4'b0000;
parameter <state2> = 4'b0001;
parameter <state3> = 4'b0010;
parameter <state4> = 4'b0011;
parameter <state5> = 4'b0100;
parameter <state6> = 4'b0101;
parameter <state7> = 4'b0110;
parameter <state8> = 4'b0111;
parameter <state9> = 4'b1000;
parameter <state10> = 4'b1001;
parameter <state11> = 4'b1010;
parameter <state12> = 4'b1011;
parameter <state13> = 4'b1100;
parameter <state14> = 4'b1101;
parameter <state15> = 4'b1110;
parameter <state16> = 4'b1111;
(* FSM_ENCODING="SEQUENTIAL", SAFE_IMPLEMENTATION="NO" *) reg [3:0] state = <state1>;
always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state9> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state10> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state11> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state12> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state13> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state14> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state15> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state16> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase
reg [1:0] <output>;
<reg_or_wire> [3:0] <input>;
always @(posedge <clock>)
if (<reset>)
<output> <= 2'b00;
else
case (<input>)
4'b0001 : <output> <= 2'b00;
4'b0010 : <output> <= 2'b01;
4'b0100 : <output> <= 2'b10;
4'b1000 : <output> <= 2'b11;
default : <output> <= 2'b00;
endcase
reg [2:0] <output>;
<reg_or_wire> [7:0] <input>;
always @(posedge <clock>)
if (<reset>)
<output> <= 3'b000;
else
case (<input>)
8'b00000001 : <output> <= 3'b000;
8'b00000010 : <output> <= 3'b001;
8'b00000100 : <output> <= 3'b010;
8'b00001000 : <output> <= 3'b011;
8'b00010000 : <output> <= 3'b100;
8'b00100000 : <output> <= 3'b101;
8'b01000000 : <output> <= 3'b110;
8'b10000000 : <output> <= 3'b111;
default : <output> <= 3'b000;
endcase
reg [3:0] <output>;
<reg_or_wire> [1:0] <input>;
always @(posedge <clock>)
if (<reset>)
<output> <= 4'h0;
else
case (<input>)
2'b00 : <output> <= 4'b0001;
2'b01 : <output> <= 4'b0010;
2'b10 : <output> <= 4'b0100;
2'b11 : <output> <= 4'b1000;
default : <output> <= 4'b0000;
endcase
reg [7:0] <output>;
<reg_or_wire> [2:0] <input>;
always @(posedge <clock>)
if (<reset>)
<output> <= 8'h00;
else
case (<input>)
3'b000 : <output> <= 8'b00000001;
3'b001 : <output> <= 8'b00000010;
3'b010 : <output> <= 8'b00000100;
3'b011 : <output> <= 8'b00001000;
3'b100 : <output> <= 8'b00010000;
3'b101 : <output> <= 8'b00100000;
3'b110 : <output> <= 8'b01000000;
3'b111 : <output> <= 8'b10000000;
default : <output> <= 8'b00000000;
endcase
// 7-segment encoding
// 0
// ---
// 5 | | 1
// --- <--6
// 4 | | 2
// ---
// 3
always @(<4-bit_hex_input>)
case (<4-bit_hex_input>)
4'b0001 : <7-seg_output> = 7'b1111001; // 1
4'b0010 : <7-seg_output> = 7'b0100100; // 2
4'b0011 : <7-seg_output> = 7'b0110000; // 3
4'b0100 : <7-seg_output> = 7'b0011001; // 4
4'b0101 : <7-seg_output> = 7'b0010010; // 5
4'b0110 : <7-seg_output> = 7'b0000010; // 6
4'b0111 : <7-seg_output> = 7'b1111000; // 7
4'b1000 : <7-seg_output> = 7'b0000000; // 8
4'b1001 : <7-seg_output> = 7'b0010000; // 9
4'b1010 : <7-seg_output> = 7'b0001000; // A
4'b1011 : <7-seg_output> = 7'b0000011; // b
4'b1100 : <7-seg_output> = 7'b1000110; // C
4'b1101 : <7-seg_output> = 7'b0100001; // d
4'b1110 : <7-seg_output> = 7'b0000110; // E
4'b1111 : <7-seg_output> = 7'b0001110; // F
default : <7-seg_output> = 7'b1000000; // 0
endcase
reg [2:0] <reg_name>;
always @ (posedge <clock>)
if (reset == 1)
<reg_name> <= 3'b000;
else
<reg_name> <= {<reg_name>[1:0], <input>};
assign <output> = <reg_name>[0] & <reg_name>[1] & !<reg_name>[2];
parameter PWM_PRECISION_WIDTH = <value>;
reg <pwm_output>;
reg [PWM_PRECISION_WIDTH-1:0] <duty_cycle_reg>, <temp_reg>;
always @ (posedge <clock>)
if (<reset>)
<duty_cycle_reg> <= 0;
else if (<new_duty_cycle>)
<duty_cycle_reg> <= <new_duty_cycle>;
always @ (posedge <clock>)
if (<reset>)
<temp_reg> <= 0;
else if (&<temp_reg>)
<temp_reg> <= <duty_cycle_reg>;
else if (<pwm_output>)
<temp_reg> <= <temp_reg> + 1;
else
<temp_reg> <= <temp_reg> - 1;
always @ (posedge <clock>)
if (<reset>)
<pwm_output> <= 1'b0;
else if (&<temp_reg>)
<pwm_output> <= ~<pwm_output>;
assign <output> = <internal_out> ? 1'bz : 1'b0;
integer i;
always @*
for (i = 0; i <= <upper_val>; i=i+1)
<output>[i] = <internal_out>[i] ? 1'bz : 1'b0;
// The following code is an example of double registering an asynchronous input
// of a design to reduce the probability of metastability affecting a circuit.
// Several synthesis and implementation attributes are added to the code in
// order improve the characteristics of the implementation:
//
// TIG="TRUE" - Specifies a timing ignore for the asynchronous input
// IOB="FALSE" = Specifies to not place the register into the IOB allowing
// both synchronization registers to exist in the same slice
// allowing for the shortest propagation time between them
// ASYNC_REG="TRUE" - Specifies registers will be receiving asynchronous data
// input to allow for better timing simulation
// characteristics
// SHIFT_EXTRACT="NO" - Specifies to the synthesis tool to not infer an SRL
// HBLKNM="sync_reg" - Specifies to pack both registers into the same slice
module async_input_sync(
input clk,
(* TIG="TRUE", IOB="FALSE" *) input async_in,
output reg sync_out
);
(* ASYNC_REG="TRUE", SHIFT_EXTRACT="NO", HBLKNM="sync_reg" *) reg [1:0] sreg;
always @(posedge clk) begin
sync_out <= sreg[1];
sreg <= {sreg[0], async_in};
end
endmodule
// A common method for supplying an external clock from the FPGA to drive
// other devices on the PCB board is to use clock forwarding via a double
// data-rate register. This provides an external clock with a relatively
// small offset delay and does not consume any additional DLL/DCM/PLL, clock
// buffers or input pins. The basic technique is to supply the input clock
// to an output DDR register where one value is tied to a logic 0 and the
// other is tied to a logic 1. A clock can be made with the same phase
// relationship (plus the added offset delay) or 180 degrees out of phase by
// changing the 1 and 0 values to the inputs to the DDR register. Set SRTYPE
// to "SYNC" to avoid possible glitches on the clock if the set/reset signals
// are used. For FPGA architectures which use two separate clocks into the
// DDR register, you may use a simple inversion of duty-cycle is not important
// however for output clocks that you wish to retain the duty-cycle as much as
// possible, it is suggested to supply a 0 degree and 180 degree clock from a
// DLL/DCM to the input clocks to the outpuit DDR component.
// Place this code in the top-level HDL file
signal <output_clock>;
signal <internal_clock>;
signal <stop_clock>;
signal <hold_clock_low>;
signal <hold_clock_high>;
// Clock forwarding circuit using the double data-rate register
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
ODDR #(
.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE"
.INIT(1'b0), // Initial value of Q: 1'b0 or 1'b1
.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
) clock_forward_inst (
.Q(<output_clock>), // 1-bit DDR output
.C(<internal_clock>), // 1-bit clock input
.CE(<stop_clock>), // 1-bit clock enable input
.D1(1'b0), // 1-bit data input (positive edge)
.D2(1'b1), // 1-bit data input (negative edge)
.R(<hold_clock_low>), // 1-bit reset
.S(<hold_clock_high>) // 1-bit set
);
// End of clock_forward_inst instantiation
// Place this code in the top-level HDL file
signal <output_clock>;
signal <internal_clock>;
signal <stop_clock>;
signal <hold_clock_low>;
signal <hold_clock_high>;
// Clock forwarding circuit using the double data-rate register
// Spartan-3E/3A
// Xilinx HDL Language Template, version 10.1.2
ODDR2 #(
.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
.INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1
.SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
) clock_forward_inst (
.Q(<output_clock>), // 1-bit DDR output data
.C0(<internal_clock>), // 1-bit clock input
.C1(~<internal_clock>), // 1-bit clock input
.CE(<stop_clock>), // 1-bit clock enable input
.D0(1'b0), // 1-bit data input (associated with C0)
.D1(1'b1), // 1-bit data input (associated with C1)
.R(<hold_clock_low>), // 1-bit reset input
.S(<hold_clock_high>) // 1-bit set input
);
// End of clock_forward_inst instantiation
// Place this code in the top-level HDL file
signal <output_clock>;
signal <internal_clock>;
signal <stop_clock>;
signal <hold_clock_low>;
signal <hold_clock_high>;
// Clock forwarding circuit using the double data-rate register
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
OFDDRRSE OFDDRRSE_inst (
.Q(<output_clock>), // Data output (connect directly to top-level port)
.C0(<internal_clock>), // 0 degree clock input
.C1(~<internal_clock>), // 180 degree clock input
.CE(<stop_clock>), // Clock enable input
.D0(1'b0), // Posedge data input
.D1(1'b1), // Negedge data input
.R(<hold_clock_low>), // Synchronous reset input
.S(<hold_clock_high>) // Synchronous preset input
);
// End of clock_forward_inst instantiation
inout <top_level_port>;
reg <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port> = <output_enable_reg> ? <output_reg> : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 1'b0;
<output_reg> <= 1'b0;
<output_enable_reg> <= 1'b0;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= <output_enable_signal>;
end
inout [1:0] <top_level_port>;
reg [1:0] <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 2'b00;
<output_reg> <= 2'b00;
<output_enable_reg> <= 2'b00;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= {2{<output_enable_signal>}};
end
inout [3:0] <top_level_port>;
reg [3:0] <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 4'h0;
<output_reg> <= 4'h0;
<output_enable_reg> <= 4'h0;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= {4{<output_enable_signal>}};
end
inout [7:0] <top_level_port>;
reg [7:0] <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 8'h00;
<output_reg> <= 8'h00;
<output_enable_reg> <= 8'h00;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= {8{<output_enable_signal>}};
end
inout [15:0] <top_level_port>;
reg [15:0] <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
assign <top_level_port>[8] = <output_enable_reg>[8] ? <output_reg>[8] : 1'bz;
assign <top_level_port>[9] = <output_enable_reg>[9] ? <output_reg>[9] : 1'bz;
assign <top_level_port>[10] = <output_enable_reg>[10] ? <output_reg>[10] : 1'bz;
assign <top_level_port>[11] = <output_enable_reg>[11] ? <output_reg>[11] : 1'bz;
assign <top_level_port>[12] = <output_enable_reg>[12] ? <output_reg>[12] : 1'bz;
assign <top_level_port>[13] = <output_enable_reg>[13] ? <output_reg>[13] : 1'bz;
assign <top_level_port>[14] = <output_enable_reg>[14] ? <output_reg>[14] : 1'bz;
assign <top_level_port>[15] = <output_enable_reg>[15] ? <output_reg>[15] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 16'h0000;
<output_reg> <= 16'h0000;
<output_enable_reg> <= 16'h0000;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= {16{<output_enable_signal>}};
end
inout [31:0] <top_level_port>;
reg [31:0] <input_reg>, <output_reg>, <output_enable_reg>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
assign <top_level_port>[8] = <output_enable_reg>[8] ? <output_reg>[8] : 1'bz;
assign <top_level_port>[9] = <output_enable_reg>[9] ? <output_reg>[9] : 1'bz;
assign <top_level_port>[10] = <output_enable_reg>[10] ? <output_reg>[10] : 1'bz;
assign <top_level_port>[11] = <output_enable_reg>[11] ? <output_reg>[11] : 1'bz;
assign <top_level_port>[12] = <output_enable_reg>[12] ? <output_reg>[12] : 1'bz;
assign <top_level_port>[13] = <output_enable_reg>[13] ? <output_reg>[13] : 1'bz;
assign <top_level_port>[14] = <output_enable_reg>[14] ? <output_reg>[14] : 1'bz;
assign <top_level_port>[15] = <output_enable_reg>[15] ? <output_reg>[15] : 1'bz;
assign <top_level_port>[16] = <output_enable_reg>[16] ? <output_reg>[16] : 1'bz;
assign <top_level_port>[17] = <output_enable_reg>[17] ? <output_reg>[17] : 1'bz;
assign <top_level_port>[18] = <output_enable_reg>[18] ? <output_reg>[18] : 1'bz;
assign <top_level_port>[19] = <output_enable_reg>[19] ? <output_reg>[19] : 1'bz;
assign <top_level_port>[20] = <output_enable_reg>[20] ? <output_reg>[20] : 1'bz;
assign <top_level_port>[21] = <output_enable_reg>[21] ? <output_reg>[21] : 1'bz;
assign <top_level_port>[22] = <output_enable_reg>[22] ? <output_reg>[22] : 1'bz;
assign <top_level_port>[23] = <output_enable_reg>[23] ? <output_reg>[23] : 1'bz;
assign <top_level_port>[24] = <output_enable_reg>[24] ? <output_reg>[24] : 1'bz;
assign <top_level_port>[25] = <output_enable_reg>[25] ? <output_reg>[25] : 1'bz;
assign <top_level_port>[26] = <output_enable_reg>[26] ? <output_reg>[26] : 1'bz;
assign <top_level_port>[27] = <output_enable_reg>[27] ? <output_reg>[27] : 1'bz;
assign <top_level_port>[28] = <output_enable_reg>[28] ? <output_reg>[28] : 1'bz;
assign <top_level_port>[29] = <output_enable_reg>[29] ? <output_reg>[29] : 1'bz;
assign <top_level_port>[30] = <output_enable_reg>[30] ? <output_reg>[30] : 1'bz;
assign <top_level_port>[31] = <output_enable_reg>[31] ? <output_reg>[31] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<input_reg> <= 32'h00000000;
<output_reg> <= 32'h00000000;
<output_enable_reg> <= 32'h00000000;
else begin
<input_reg> <= <top_level_port>;
<output_reg> <= <output_signal>;
<output_enable_reg> <= {32{<output_enable_signal>}};
end
// The following represents the connectivity of the registered
// bi-directional I/O example
//
// ______
// | |
// |----------|D |
// | | Q|-----in_reg
// | clock___|\ |
// ________________ | |/ |
// / top_level_port \______| |_____|
// \________________/ |
// |
// | /|
// |____/ |________________________
// \ | _____ |
// _____ |\| | | |
// | | | out_sig-|D Q|----|
// out_en-----|D Q|____| | |
// | | clock___|\ |
// clock_|\ | |/ |
// |/ | |_____|
// |_____|
//
//
//
// The following represents the connectivity of the unregistered
// bi-directional I/O example
//
// |----------input_signal
// |
// |
// ________________ |
// / top_level_port \______|
// \________________/ |
// |
// | /|
// |____/ |______output_signal
// \ |
// |\|
// |
// |---output_enable_signal
//
inout <top_level_port>;
wire <output_enable_signal>, <output_signal>, <input_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 1'bz;
assign <input_signal> = <top_level_port>;
inout [1:0] <top_level_port>;
wire [1:0] <output_signal>, <input_signal>;
wire <output_enable_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 2'bzz;
assign <input_signal> = <top_level_port>;
inout [3:0] <top_level_port>;
wire [3:0] <output_signal>, <input_signal>;
wire <output_enable_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 4'hz;
assign <input_signal> = <top_level_port>;
inout [7:0] <top_level_port>;
wire [7:0] <output_signal>, <input_signal>;
wire <output_enable_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 8'hzz;
assign <input_signal> = <top_level_port>;
inout [15:0] <top_level_port>;
wire [15:0] <output_signal>, <input_signal>;
wire <output_enable_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 16'hzzzz;
assign <input_signal> = <top_level_port>;
inout [31:0] <top_level_port>;
wire [31:0] <output_signal>, <input_signal>;
wire <output_enable_signal>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 32'hzzzzzzzz;
assign <input_signal> = <top_level_port>;
inout <top_level_port>;
wire <output_enable_signal>, <output_signal>;
reg <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 1'bz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 1'b0;
else
<input_reg> <= <top_level_port>;
inout [1:0] <top_level_port>;
wire [1:0] <output_signal>;
wire <output_enable_signal>;
reg [1:0] <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 2'bzz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 2'b00;
else
<input_reg> <= <top_level_port>;
inout [3:0] <top_level_port>;
wire [3:0] <output_signal>;
wire <output_enable_signal>;
reg [3:0] <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 4'hz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 4'h0;
else
<input_reg> <= <top_level_port>;
inout [7:0] <top_level_port>;
wire [7:0] <output_signal>;
wire <output_enable_signal>;
reg [7:0] <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 8'hzz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 8'h00;
else
<input_reg> <= <top_level_port>;
inout [15:0] <top_level_port>;
wire [15:0] <output_signal>;
wire <output_enable_signal>;
reg [15:0] <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 16'hzzzz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 16'h0000;
else
<input_reg> <= <top_level_port>;
inout [31:0] <top_level_port>;
wire [31:0] <output_signal>;
wire <output_enable_signal>;
reg [31:0] <input_reg>;
assign <top_level_port> = <output_enable_signal> ? <output_signal> : 32'hzzzzzzzz;
always @(posedge <clock>)
if (<reset>)
<input_reg> <= 32'h00000000;
else
<input_reg> <= <top_level_port>;
inout <top_level_port>;
reg <output_reg>, <output_enable_reg>;
wire <input_signal>, <output_enable_wire>, <output_signal>;
assign <input_signal> = <top_level_port>;
assign <top_level_port> = <output_enable_reg> ? <output_reg> : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 1'b0;
<output_enable_reg> <= 1'b0;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= <output_enable_signal>;
end
inout [1:0] <top_level_port>;
reg [1:0] <output_reg>, <output_enable_reg>;
wire [1:0] <input_signal>, <output_signal>;
wire <output_enable_wire>;
assign <input_signal> = <top_level_port>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 2'b00;
<output_enable_reg> <= 2'b00;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= {2{<output_enable_signal>}};
end
inout [3:0] <top_level_port>;
reg [3:0] <output_reg>, <output_enable_reg>;
wire [3:0] <input_signal>, <output_signal>;
wire <output_enable_wire>;
assign <input_signal> = <top_level_port>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 4'h0;
<output_enable_reg> <= 4'h0;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= {4{<output_enable_signal>}};
end
inout [7:0] <top_level_port>;
reg [7:0] <output_reg>, <output_enable_reg>;
wire [7:0] <input_signal>, <output_signal>;
wire <output_enable_wire>;
assign <input_signal> = <top_level_port>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 8'h00;
<output_enable_reg> <= 8'h00;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= {8{<output_enable_signal>}};
end
inout [15:0] <top_level_port>;
reg [15:0] <output_reg>, <output_enable_reg>;
wire [15:0] <input_signal>, <output_signal>;
wire <output_enable_wire>;
assign <input_signal> = <top_level_port>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
assign <top_level_port>[8] = <output_enable_reg>[8] ? <output_reg>[8] : 1'bz;
assign <top_level_port>[9] = <output_enable_reg>[9] ? <output_reg>[9] : 1'bz;
assign <top_level_port>[10] = <output_enable_reg>[10] ? <output_reg>[10] : 1'bz;
assign <top_level_port>[11] = <output_enable_reg>[11] ? <output_reg>[11] : 1'bz;
assign <top_level_port>[12] = <output_enable_reg>[12] ? <output_reg>[12] : 1'bz;
assign <top_level_port>[13] = <output_enable_reg>[13] ? <output_reg>[13] : 1'bz;
assign <top_level_port>[14] = <output_enable_reg>[14] ? <output_reg>[14] : 1'bz;
assign <top_level_port>[15] = <output_enable_reg>[15] ? <output_reg>[15] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 16'h0000;
<output_enable_reg> <= 16'h0000;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= {16{<output_enable_signal>}};
end
inout [31:0] <top_level_port>;
reg [31:0] <output_reg>, <output_enable_reg>;
wire [31:0] <input_signal>, <output_signal>;
wire <output_enable_wire>;
assign <input_signal> = <top_level_port>;
assign <top_level_port>[0] = <output_enable_reg>[0] ? <output_reg>[0] : 1'bz;
assign <top_level_port>[1] = <output_enable_reg>[1] ? <output_reg>[1] : 1'bz;
assign <top_level_port>[2] = <output_enable_reg>[2] ? <output_reg>[2] : 1'bz;
assign <top_level_port>[3] = <output_enable_reg>[3] ? <output_reg>[3] : 1'bz;
assign <top_level_port>[4] = <output_enable_reg>[4] ? <output_reg>[4] : 1'bz;
assign <top_level_port>[5] = <output_enable_reg>[5] ? <output_reg>[5] : 1'bz;
assign <top_level_port>[6] = <output_enable_reg>[6] ? <output_reg>[6] : 1'bz;
assign <top_level_port>[7] = <output_enable_reg>[7] ? <output_reg>[7] : 1'bz;
assign <top_level_port>[8] = <output_enable_reg>[8] ? <output_reg>[8] : 1'bz;
assign <top_level_port>[9] = <output_enable_reg>[9] ? <output_reg>[9] : 1'bz;
assign <top_level_port>[10] = <output_enable_reg>[10] ? <output_reg>[10] : 1'bz;
assign <top_level_port>[11] = <output_enable_reg>[11] ? <output_reg>[11] : 1'bz;
assign <top_level_port>[12] = <output_enable_reg>[12] ? <output_reg>[12] : 1'bz;
assign <top_level_port>[13] = <output_enable_reg>[13] ? <output_reg>[13] : 1'bz;
assign <top_level_port>[14] = <output_enable_reg>[14] ? <output_reg>[14] : 1'bz;
assign <top_level_port>[15] = <output_enable_reg>[15] ? <output_reg>[15] : 1'bz;
assign <top_level_port>[16] = <output_enable_reg>[16] ? <output_reg>[16] : 1'bz;
assign <top_level_port>[17] = <output_enable_reg>[17] ? <output_reg>[17] : 1'bz;
assign <top_level_port>[18] = <output_enable_reg>[18] ? <output_reg>[18] : 1'bz;
assign <top_level_port>[19] = <output_enable_reg>[19] ? <output_reg>[19] : 1'bz;
assign <top_level_port>[20] = <output_enable_reg>[20] ? <output_reg>[20] : 1'bz;
assign <top_level_port>[21] = <output_enable_reg>[21] ? <output_reg>[21] : 1'bz;
assign <top_level_port>[22] = <output_enable_reg>[22] ? <output_reg>[22] : 1'bz;
assign <top_level_port>[23] = <output_enable_reg>[23] ? <output_reg>[23] : 1'bz;
assign <top_level_port>[24] = <output_enable_reg>[24] ? <output_reg>[24] : 1'bz;
assign <top_level_port>[25] = <output_enable_reg>[25] ? <output_reg>[25] : 1'bz;
assign <top_level_port>[26] = <output_enable_reg>[26] ? <output_reg>[26] : 1'bz;
assign <top_level_port>[27] = <output_enable_reg>[27] ? <output_reg>[27] : 1'bz;
assign <top_level_port>[28] = <output_enable_reg>[28] ? <output_reg>[28] : 1'bz;
assign <top_level_port>[29] = <output_enable_reg>[29] ? <output_reg>[29] : 1'bz;
assign <top_level_port>[30] = <output_enable_reg>[30] ? <output_reg>[30] : 1'bz;
assign <top_level_port>[31] = <output_enable_reg>[31] ? <output_reg>[31] : 1'bz;
always @(posedge <clock>)
if (<reset>) begin
<output_reg> <= 32'h00000000;
<output_enable_reg> <= 32'h00000000;
end
else begin
<output_reg> <= <output_signal>;
<output_enable_reg> <= {32{<output_enable_signal>}};
end
<1-bit_wire> = <signal1> & <signal2>;
<1-bit_wire> = <signal1> & <signal2> & <signal3>;
<1-bit_wire> = <signal1> & <signal2> & <signal3> & <signal4>;
<1-bit_wire> = <signal1> | <signal2>;
<1-bit_wire> = <signal1> | <signal2> | <signal3>;
<1-bit_wire> = <signal1> | <signal2> | <signal3> | <signal4>;
<1-bit_wire> = <signal1> ^ <signal2>;
<1-bit_wire> = <signal1> ^ <signal2> ^ <signal3>;
<1-bit_wire> = <signal1> ^ <signal2> ^ <signal3> ^ <signal4>;
<1-bit_wire> = ~(<signal1> | <signal2>);
<1-bit_wire> = ~(<signal1> | <signal2> | <signal3>);
<1-bit_wire> = ~(<signal1> | <signal2> | <signal3> | <signal4>);
<1-bit_wire> = ~(<signal1> & <signal2>);
<1-bit_wire> = ~(<signal1> & <signal2> & <signal3>);
<1-bit_wire> = ~(<signal1> & <signal2> & <signal3> & <signal4>);
<1-bit_wire> = <signal1> ~^ <signal2>;
<1-bit_wire> = <signal1> ~^ <signal2> ~^ <signal3>;
<1-bit_wire> = <signal1> ~^ <signal2> ~^ <signal3> ~^ <signal4>;
<1-bit_wire> = ~<signal>;
// Information on Synthesis Attributes
// ===================================
//
// The following templates for synthesis attributes use the Verilog-2001 attribute
// syntax for passing these constraints to the synthesis and back-end Xilinx tools.
// Since these are synthesis attributes, they are ignored for the purpose of
// simulation and thus generally should be used for passing attributes that do not
// effect design or component functionality such as placement or hierarchy
// constraints. These can also be used to guide synthesis implementation such as in
// the case of the state-machine extraction algorithms and parallel and full case
// specifications. To properly specify these constraints, they must be placed
// in-line with the declaring function or signal. Multiple attributes can be
// specified by comma separating them in the parenthesis-star brackets.
// Example of placing a LOC attribute on an input port declaration:
(* LOC="K1" *) input A;
// Example of placing an ASYNC_REG constraint on an inferred register:
(* ASYNC_REG="TRUE" *) reg empty_reg;
// Example of placing a KEEP_HIERARCHY constraint on an instantiated module:
// Instantiation of the DECODER module
(* KEEP_HIERARCHY="TRUE" *) DECODER DECODER_inst (
.DATA_IN(DATA_IN),
.CLK(CLK),
.RST(RST),
.DATA_OUT(DATA_OUT)
);
// End of DECODER_inst instantiation
// Example of PARALLEL_CASE / FULL_CASE:
always @(A, B, C, current_state) begin (* PARALLEL_CASE, FULL_CASE *)
case (current_state)
RESET: begin
...
(* ASYNC_REG="TRUE" *)
(* NODELAY="TRUE" *)
(* IOBDELAY="NONE" *)
(* IOBDELAY="BOTH" *)
(* IOBDELAY="IBUF" *)
(* IOBDELAY="IFD" *)
(* IBUF_DELAY_VALUE="<number_from_0_to_16>" *)
(* IFD_DELAY_VALUE="<number_from_0_to_8>" *)
(* IOSTANDARD="<standard>" *)
(* IOB="FALSE" *)
(* IOB="TRUE" *)
(* BUFFER_TYPE="BUFGDLL" *)
(* BUFFER_TYPE="IBUFG" *)
(* BUFFER_TYPE="IBUF" *)
(* BUFFER_TYPE="BUFR" *)
(* BUFFER_TYPE="NONE" *)
(* BUFFER_TYPE="AUTO" *)
(* LOC="<value>" *)
(* RLOC="<value>" *)
// Specifies LUT packing of two LUT5s into the same LUT6 for Virtex-5
(* LUTNM="<value>" *)
// Specifies LUT packing of two LUT5s into the same LUT6 for Virtex-5 uniquified by hierarchy
(* HLUTNM="<value>" *)
(* KEEP_HIERARCHY="TRUE" *)
(* FULL_CASE *)
(* PARALLEL_CASE *)
(* FULL_CASE, PARALLEL_CASE *)
(* FSM_ENCODING="ONE-HOT" *)
(* FSM_ENCODING="COMPACT" *)
(* FSM_ENCODING="GRAY" *)
(* FSM_ENCODING="SEQUENTIAL" *)
(* FSM_ENCODING="JOHNSON" *)
(* FSM_ENCODING="USER" *)
(* FSM_EXTRACT="YES" *)
(* FSM_EXTRACT="NO" *)
(* KEEP="TRUE" *)
(* RAM_STYLE="AUTO" *)
(* RAM_STYLE="BLOCK" *)
(* RAM_STYLE="DISTRIBUTED" *)
(* RAM_STYLE="PIPE_DISTRIBUTED" *)
(* EQUIVALENT_REGISTER_REMOVAL="YES" *)
(* EQUIVALENT_REGISTER_REMOVAL="NO" *)
(* SHIFT_EXTRACT="NO" *)
(* BUFFER_TYPE="BUFGDLL" *)
(* BUFFER_TYPE="IBUFG" *)
(* BUFFER_TYPE="IBUF" *)
(* BUFFER_TYPE="BUFR" *)
(* BUFFER_TYPE="NONE" *)
(* BUFFER_TYPE="AUTO" *)
(* MULT_STYLE="AUTO" *)
(* MULT_STYLE="LUT" *)
(* MULT_STYLE="PIPE_LUT" *)
(* MULT_STYLE="BLOCK" *)
(* MULT_STYLE="PIPE_BLOCK" *)
(* MULT_STYLE="KCM" *)
(* USE_DSP48="YES" *)
(* REGISTER_DUPLICATION="YES" *)
// Add PERIOD constraint prior to the clock port definition
(* PERIOD="<value> MHz" *)
// Add PERIOD constraint prior to the clock port definition
(* PERIOD="<value> ns" *)
// Add TIG constraint prior to the signal or port definition
(* TIG="TRUE" *)
// Information for $display and $finish for synthesis
// ==================================================
//
// $display will display a string to the console and log file of the
// synthesis tool. This can be useful for adding specific notes to the
// log file for documentation or future refernce as well as for debug of
// paramtizable code. Variables may be added to the string to indicate
// constant values such as those for a particular parameter to further
// enhance debug capabilities.
//
// When using $display, variables can be specified to the output in a
// variety of formats. Also, special escape characters can be used to
// specify special characters or formatting. These formats are
// listed below.
//
// Variables
// ---------
// %b .... Binary Value
// %h .... Hexadecimal Value
// %d .... Decimal Value
// %s .... String
// %c .... ASCII
// %o .... Octal Value
//
// Escape Characters
// -----------------
// \t ........ Tab
// \n ........ Newline
// \\ ........ Backslash
// %% ........ Percent
// \" ........ Quote
// \<octal> .. ASCII representation
//
// The $finish system function can be used to halt synthesis in case a
// situation is detected in which you would no longer want to process
// the design. For instance, if a parameter is set to what is determined
// to be an incorrect value. Another possible use is to place a $finish
// in simulation-only files to ensure they are not accidentally synthesized.
//
//
// Assume the following piece of code is run in the XST synthesis tool:
generate
if (bus_width<65) begin: bus_width_under_65
initial
$display("\n\nInfo: Parameter bus_width = %d\n", bus_width);
end else begin: bus_width_over_64
initial begin
$display ("\n\nError: The parameter bus_with in module display_and_finish is set to %d.\n\tThis parameter can not exceed 64.\n", bus_width);
$finish;
end
end
endgenerate
// If the parameter bus_width in that module was set to 64, the
// following note would appear in the log file and console and
// the code would continue processing normally:
//
//
// Analyzing top module <display_and_finish>.
// bus_width = 32'sb00000000000000000000000001000000
// "display_and_finish.v" line 31: $display :
//
// Info: Parameter bus_width = 64
//
// Module <display_and_finish> is correct for synthesis.
//
//
// If that same code was run with the bus_width parameter set to
// 65, the following would result and processing would stop:
//
//
// Analyzing top module <display_and_finish>.
// bus_width = 32'sb00000000000000000000000001000001
// "display_and_finish.v" line 34: $display :
//
// Error: The parameter bus_with in module display_and_finish is set to 65.
// This parameter can not exceed 64.
//
//
// "display_and_finish.v" line 35: $finish found. Closing session.
// -->
// Note: $display must appear after an initial declaration
$display ("Text to display");
// Note: $finish must appear after an initial declaration
$finish;
// Information on the $readmemb and $readmemh system functions
// ===========================================================
//
// $readmemb is a system function which will read binary data from a
// specified file and place it in an array. The syntax is the following:
// $readmemb ("<file_name>", <reg_name>, <start_address>, <end_address>);
// where the <file_name> is the name and location of the file containing
// the binary data, the <reg_name> is a 2-D register array in which the
// memory data is stored, and the last two comma separated numbers
// specify the beginning and ending address of the data. The data file
// may only contain binary data, white spaces and comments. This function
// must be executed within an initial block.
//
// $readmemh is the same as $readmemb with the exception that it
// inputs hex data as the read values.
//
// In the past, these functions could only be used for simulation
// purposes however synthesis tools now has the ability to initialize RAM
// and ROM arrays using this construct.
//
// Example of reading binary data from a file:
reg [31:0] rom_data[1023:0];
initial
$readmemb("../data/mem_file.dat", rom_data, 0, 7);
// The initialization file may only contain white spaces, address
// labels (denoted by @<address>), comments and the actual binary
// or hexadecimal data.
// The following is a small example of a binary memory file data:
// This is a comment
1111000011110000 // This specifies these 16-bits to the first address
1010_0101_1010_0101 // This is for the second address with underscores
// to make this more readable
<more entries like above to fill up the array>
// Optionally, we can change addresses
@025 // Now at address 025
11111111_00000000
// Addresses can also be specified in-line
@035 00000000_11111111
// It is highly suggested to fill all memory contents with a known value
// when initializing memories.
reg [<memory_width>] <reg_name> [<memory_depth>];
initial
$readmemb ("<file_name>", <reg_name>, <start_address>, <end_address>);
reg [<memory_width>] <reg_name> [<memory_depth>];
initial
$readmemh ("<file_name>", <reg_name>, <start_address>, <end_address>);
$signed(<argument>);
$unsigned(<argument>);
// The `timescale compile directive information
// ============================================
//
// `timescale is a compiler directive that indicates to the simulator the time units
// and precision to be used during simulation. The format is the following:
//
// `timescale <units> / <precision>
//
// The units should be set to the base value in which time will be communicated to
// the simulator for that module.
// The precision is the minimum time units you wish the simulator to resolve. The
// smallest resolution value in all files and models compiled for simulation dictates
// the overall simulation resolution. In general for Xilinx FPGAs, a simulator
// resolution of 1ps is recommended since some components like the DCM require this
// resolution for proper operation and 1 ps is the resolution used for timing simulation.
//
// In general, this directive should appear at the top of the testbench, simulation models
// and all design files for a Verilog project.
//
// Example:
`timescale 1 ns / 1ps
#1; // Delays for 1 ns
#1.111; // Delays for 1111 ps
#1.111111111; // Delays for 1111 ps since the resolution is more course than
// what is specified, the delay amount is truncated
`timescale 1 ns / 1 ps
`timescale 1 ps / 1 ps
`timescale 1 ns / 100 ps
`timescale 100 ps / 1 ps
`timescale 1 ns / 1 ns
`timescale 1 ns / 10 ps
// The `include complier directive
// ===============================
//
// `include can be used to insert the contents of a separate file into a module.
// This is often used to communicate common functions, compiler directives, parameters
// and `defines to multiple files in a project. The file and path name must be
// specified in quotes and can consist of just the file name (looks in the current
// working directory for the file), a relative path to the file or an absolute path
// to the file. This directive can be specified both before the module declaration
// as well as within the module directive.
//
// Example:
// Include the contents of the parameters.vh file located in the current working directory.
// Many simulator and synthesis tools also offer a switch/option to allow specification
// of a search directory other than the working directory for files specified in this manner.
`include "parameters.vh"
// Include the contents of the ram_data.vh file in the relative directory ../data
`include "../data/ram_data.vh"
// Include the contects of master.vh in the absolute directory /export/vol1/sim_data
`include "/export/vol1/sim_data/master.vh"
`include "<file_name>"
// The `define, `ifdef, `elsif, `else, `ifndef and the `endif compiler directives
// ==============================================================================
//
// `define is a compiler directive that defines a value to a variable. That variable
// can then be called upon in the code by referencing the `name of the specified variable.
//
// `ifdef is a compiler directive that checks for the existence of a specified `define
// and then conditionally includes a section of code during compilation if it exists.
//
// `ifndef is the opposite of `ifdef in that if a `define was not declared, it includes
// a section of code.
//
// `elsif can be used in conjunction with a `ifdef to find the existence of another
// `define and conditionally compile a different section of code if the previous
// conditions were not met and this condition is met.
//
// `else also can be used in conjunction with a `ifdef where it will compile a section
// of code if all previous `ifdef and `elsif conditions were not met.
//
// `endif is used at the end of a `ifdef or `ifndef statement to signify the end of
// the included code.
//
// Example:
`define DATA_WIDTH 16
`define DATA_WIDTH16
reg [`DATA_WIDTH-1:0] data;
`ifdef DATA_WIDTH8
// If DATA_WIDTH8 was set, this would get compiled
`elsif DATA_WIDTH16
// Since DATA_WIDTH16 is set, this does get compiled
`else
// If DATA_WIDTH8 and DATA_WIDTH16 was not defined, this would be compiled
`endif
`define <name> <string>
`ifdef <define_name>
<statements>;
`elsif <define_name>
<statements>;
`else
<statements>;
`endif
`ifndef <define_name>
<statements>;
`endif
// Comment here
/* Comment here
Comment here
Comment here */
////////////////////////////////////////////////////////////////////////////////
// Company: <Company Name>
// Engineer: <Engineer Name>
//
// Create Date: <date>
// Design Name: <name_of_top-level_design>
// Module Name: <name_of_this_module>
// Target Device: <target device>
// Tool versions: <tool_versions>
// Description:
// <Description here>
// Dependencies:
// <Dependencies here>
// Revision:
// <Code_revision_information>
// Additional Comments:
// <Additional_comments>
////////////////////////////////////////////////////////////////////////////////
// User defined function and task information
// ==========================================
//
// A user defined function is a set of Verilog statements that
// can be called from elsewhere within the body of the code by
// an assignment. A function can have multiple inputs however
// can return only a single output. No timing information can
// be specified within a function.
//
// A user defined task is a subroutine that can be executed by
// a single call from elsewhere within the body of the code.
// A task can have any number of inputs, outputs and inouts as
// well as contain timing information.
//
// Example of a function declaration:
function [9:0] gray_encode;
input [9:0] binary_input;
begin
gray_encode[9] = binary_input[9];
for (k=8; k>=0; k=k-1) begin
gray_encode[k] = binary_input[k+1] ^ binary_input[k];
end
end
endfunction
// Example of calling a function:
// write_count is the binary input being passed to the function gray_encode.
// The output of the function gray_encode is then passed to the signal FIFO_ADDR
FIFO_ADDR = gray_encode(write_count);
// Example of a task declaration:
task error_action;
input read_write;
input correct_value;
input actual_value;
input [8*11:0] output_string;
begin
if (ERROR_CHECK) begin
if (read_write)
$display("Error: %s value incorrect during write %d at time %t\nExpecting %b, got %b",
output_string, write_attempt, $realtime, correct_value, actual_value);
else
$display("Error: %s value incorrect during read %d at time %t\nExpecting %b, got %b",
output_string, read_attempt, $realtime, correct_value, actual_value);
if (ON_ERROR=="FINISH")
$finish;
else if (ON_ERROR=="STOP")
$stop;
end
end
endtask
// Example of calling a task:
// The task error_action is called by name and passed the four input values
// in the order they are declared in the task
error_action(1'b1, wr_ready_value, WR_READY, "WR_READY");
function [<lower>:<upper>] <output_name> ;
input <name>;
begin
<statements>
end
endfunction
<signal> = <function_name>(<comma_separated _inputs>);
// A task is a subroutine with any number of input, output or inout
// arguments and may contain timing controls
task <task_name>;
input <input_name>;
<more_inputs>
output <output_name>;
<more_outputs>
begin
<statements>;
end
endtask
<task_name>(<comma_separated _inputs>, <comma_separated _outputs>);
// The following are the arithmetic operators as defined by the Verilog language.
//
// + .... Addition
// - .... Subtraction
// * .... Multiplication
// / .... Divide
// % .... Modulus
// ** ... Power Operator (i.e. 2**8 returns 256)
// The following operators can be used on two single bits to produce a single bit
// output or two equivelent sized bused signals where the operations are performed
// on each bit of the bus. In the case of the Invert, only one signal or bus is
// provided and the operation occurs on each bit of the signal.
//
// ~ .... Invert a single-bit signal or each bit in a bus
// & .... AND two single bits or each bit between two buses
// | .... OR two single bits or each bit between two buses
// ^ .... XOR two single bits or each bit between two buses
// ~^ ... XNOR two single bits or each bit between two buses
// The following operators can be used on a bussed signal where all bits in the bus
// are used to perform the operation and a single bit output is resolved.
//
// & .... AND all bits together to make single bit output
// ~& ... NAND all bits together to make single bit output
// | .... OR all bits together to make single bit output
// ~| ... NOR all bits together to make single bit output
// ^ .... XOR all bits together to make single bit output
// ~^ ... XNOR all bits together to make single bit output
// The following logical operators are used in conditional TRUE/FALSE statements
// such as an if statement in order to specify the condition fo the operation.
//
// ! .... Not True
// && ... Both Inputs True
// || ... Either Input True
// == ... Inputs Equal
// === .. Inputs Equal including X and Z (simulation only)
// != ... Inputs Not Equal
// !== .. Inputs Not Equal including X and Z (simulation only)
// < .... Less-than
// <= ... Less-than or Equal
// > .... Greater-than
// >= ... Greater-than or Equal
// The following operators either concatenates several bits into a bus or replicate
// a bit or combination of bits multiple times.
//
// {a, b, c} .... Concatenate a, b and c into a bus
// {3{a}} ....... Replicate a, 3 times
// {{5{a}}, b} .. Replicate a, 5 times and concatenate to b
//
// The following operators will shift a bus right or left a number of bits.
//
// << .... Left shift (i.e. a << 2 shifts a two bits to the left)
// <<< ... Left shift and maintain sign bit
// >> .... Right shift (i.e. b << 1 shifts b one bits to the right)
// >>> ... Right shift and maintain sign bit
// MUXCY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXCY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs and
// : and outputs of this primitive should be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// MUXCY: Carry-Chain MUX with general output
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
MUXCY MUXCY_inst (
.O(O), // Carry output signal
.CI(CI), // Carry input signal
.DI(DI), // Data input signal
.S(S) // MUX select, tie to '1' or LUT4 out
);
// End of MUXCY_inst instantiation
// MUXCY_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXCY_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// MUXCY_L: Carry-Chain MUX with local output
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
MUXCY_L MUXCY_L_inst (
.LO(LO), // Carry local output signal
.CI(CI), // Carry input signal
.DI(DI), // Data input signal
.S(S) // MUX select, tie to '1' or LUT4 out
);
// End of MUXCY_L_inst instantiation
// MUXCY_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXCY_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// MUXCY_D: Carry-Chain MUX with general and local outputs
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
MUXCY_D MUXCY_D_inst (
.LO(LO), // Carry local output signal
.O(O), // Carry general output signal
.CI(CI), // Carry input signal
.DI(DI), // Data input signal
.S(S) // MUX select, tie to '1' or LUT4 out
);
// End of MUXCY_D_inst instantiation
// ORCY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration: (ORCY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ORCY: Carry-Chain OR-gate
// For use with Virtex-II/II-Pro, Spartan-3/3E
// Xilinx HDL Language Template, version 10.1.2
ORCY ORCY_inst (
.O(O), // OR output signal
.CI(CI), // Carry input signal
.I(I) // Data input signal
);
// End of ORCY_inst instantiation
// XORCY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (XORCY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// XORCY: Carry-Chain XOR-gate with general output
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
XORCY XORCY_inst (
.O(O), // XOR output signal
.CI(CI), // Carry input signal
.LI(LI) // LUT4 input signal
);
// End of XORCY_inst instantiation
// XORCY_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (XORCY_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// XORCY_L: Carry-Chain XOR-gate with local (direct-connect) ouput
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
XORCY_L XORCY_L_inst (
.LO(LO), // XOR local output signal
.CI(CI), // Carry input signal
.LI(LI) // LUT4 input signal
);
// End of XORCY_L_inst instantiation
// XORCY_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (XORCY_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// :
// : Note: Use CARRY4 for Virtex-5
// <-----Cut code below this line---->
// XORCY_D: Carry-Chain XOR-gate with local and general outputs
// For use with All FPGAs
// Xilinx HDL Language Template, version 10.1.2
XORCY_D XORCY_D_inst (
.LO(LO), // XOR local output signal
.O(O), // XOR general output signal
.CI(CI), // Carry input signal
.LI(LI) // LUT4 input signal
);
// End of XORCY_D_inst instantiation
// MULT_AND : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MULT_AND_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MULT_AND: 2-input AND gate connected to Carry chain
// For use with all FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MULT_AND MULT_AND_inst (
.LO(LO), // MULT_AND output (connect to MUXCY DI)
.I0(I0), // MULT_AND data[0] input
.I1(I1) // MULT_AND data[1] input
);
// End of MULT_AND_inst instantiation
// CARRY4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CARRY4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs and
// : and outputs of this primitive should be connected.
// <-----Cut code below this line---->
// CARRY4: Fast Carry Logic Component
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
CARRY4 CARRY4_inst (
.CO(CO), // 4-bit carry out
.O(O), // 4-bit carry chain XOR data out
.CI(CI), // 1-bit carry cascade input
.CYINIT(CYINIT), // 1-bit carry initialization
.DI(DI), // 4-bit carry-MUX data in
.S(S) // 4-bit carry-MUX select input
);
// End of CARRY4_inst instantiation
// MUXF5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF5: Slice MUX to tie two LUT4's together with general output
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF5 MUXF5_inst (
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie directly to the output of LUT4)
.I1(I1), // Input (tie directoy to the output of LUT4)
.S(S) // Input select to MUX
);
// End of MUXF5_inst instantiation
// MUXF5_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF5_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF5_L: Slice MUX to tie two LUT4's together with local output
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF5_L MUXF5_L_inst (
.LO(LO), // Output of MUX to local routing
.I0(I0), // Input (tie directly to the output of LUT4)
.I1(I1), // Input (tie directoy to the output of LUT4)
.S(S) // Input select to MUX
);
// End of MUXF5_L_inst instantiation
// MUXF5_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF5_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF5_D: Slice MUX to tie two LUT4's together with general and local outputs
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF5_D MUXF5_D_inst (
.LO(LO), // Ouptut of MUX to local routing
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie directly to the output of LUT4)
.I1(I1), // Input (tie directoy to the output of LUT4)
.S(S) // Input select to MUX
);
// End of MUXF5_D_inst instantiation
// MUXF6 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF6_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF6: CLB MUX to tie two MUXF5's together with general output
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF6 MUXF6_inst (
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF5 LO out)
.I1(I1), // Input (tie to MUXF5 LO out)
.S(S) // Input select to MUX
);
// End of MUXF6_inst instantiation
// MUXF6_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF6_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF6_L: CLB MUX to tie two MUXF5's together with local output
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF6_L MUXF6_L_inst (
.LO(LO), // Output of MUX to local routing
.I0(I0), // Input (tie to MUXF5 LO out)
.I1(I1), // Input (tie to MUXF5 LO out)
.S(S) // Input select to MUX
);
// End of MUXF6_L_inst instantiation
// MUXF6_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF6_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF6_D: CLB MUX to tie two MUXF5's together with general and local outputs
// For use with All FPGAs except Virtex-5
// Xilinx HDL Language Template, version 10.1.2
MUXF6_D MUXF6_D_inst (
.LO(LO), // Ouptut of MUX to local routing
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF5 LO out)
.I1(I1), // Input (tie to MUXF5 LO out)
.S(S) // Input select to MUX
);
// End of MUXF6_D_inst instantiation
// MUXF7 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF7_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF7: CLB MUX to tie two LUT6's or MUXF6's together with general output
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF7 MUXF7_inst (
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF6 LO out)
.I1(I1), // Input (tie to MUXF6 LO out)
.S(S) // Input select to MUX
);
// End of MUXF7_inst instantiation
// MUXF7_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF7_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF7_L: CLB MUX to tie two LUT6's or MUXF6's together with local output
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF7_L MUXF7_L_inst (
.LO(LO), // Output of MUX to local routing
.I0(I0), // Input (tie to MUXF6 LO out)
.I1(I1), // Input (tie to MUXF6 LO out)
.S(S) // Input select to MUX
);
// End of MUXF7_L_inst instantiation
// MUXF7_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF7_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF7_D: CLB MUX to tie two LUT6's or MUXF6's together with general and local outputs
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF7_D MUXF7_D_inst (
.LO(LO), // Ouptut of MUX to local routing
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF6 LO out)
.I1(I1), // Input (tie to MUXF6 LO out)
.S(S) // Input select to MUX
);
// End of MUXF7_D_inst instantiation
// MUXF8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF8_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF8: CLB MUX to tie two MUXF7's together with general output
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF8 MUXF8_inst (
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF7 LO out)
.I1(I1), // Input (tie to MUXF7 LO out)
.S(S) // Input select to MUX
);
// End of MUXF8_inst instantiation
// MUXF8_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF8_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF8_L: CLB MUX to tie two MUXF7's together with local output
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF8_L MUXF8_L_inst (
.LO(LO), // Output of MUX to local routing
.I0(I0), // Input (tie to MUXF7 LO out)
.I1(I1), // Input (tie to MUXF7 LO out)
.S(S) // Input select to MUX
);
// End of MUXF8_L_inst instantiation
// MUXF8_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MUXF8_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MUXF8_D: CLB MUX to tie two MUXF7's together with general and local outputs
// For use with Virtex-II/II-Pro/4/5 and Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
MUXF8_D MUXF8_D_inst (
.LO(LO), // Ouptut of MUX to local routing
.O(O), // Output of MUX to general routing
.I0(I0), // Input (tie to MUXF7 LO out)
.I1(I1), // Input (tie to MUXF7 LO out)
.S(S) // Input select to MUX
);
// End of MUXF8_D_inst instantiation
// The INIT parameter for the FPGA LUT primitive is what gives the LUT its
// logical value. By default this value is zero thus driving the output to a
// zero regardless of the input values (acting as a ground) however in most
// cases an new INIT value must be determined in order to specify the logic
// function for the LUT primitive. There are a few methods in which the LUT
// value can be determined and two of those methods will be discussed here.
//
// The Truth Table Method
// ----------------------
//
// A common method to determine the desired INIT value for a LUT is using a
// truth table. To do so, simply create a binary truth table of all possible
// inputs, specify the desired logic value of the output and then create the
// INIT string from those output values. An example is shown below:
//
// Example of determining an XOR INIT equation for a LUT4:
//
// _________________
// | I3 I2 I1 I0 | O |
// |-----------------|
// | 0 0 0 0 | 0 |\
// | 0 0 0 1 | 1 | \ = 4'b0110 = 4'h6 ---------------+
// | 0 0 1 0 | 1 | / |
// | 0 0 1 1 | 0 |/ |
// |-------------|---| |
// | 0 1 0 0 | 1 |\ |
// | 0 1 0 1 | 0 | \ = 4'b1001 = 4'h9 |
// | 0 1 1 0 | 0 | / |
// | 0 1 1 1 | 1 |/ |
// |-------------|---| INIT = 16'h6996
// | 1 0 0 0 | 1 |\ |
// | 1 0 0 1 | 0 | \ = 4'b0110 = 4'h9 |
// | 1 0 1 0 | 0 | / |
// | 1 0 1 1 | 1 |/ |
// |-------------|---| |
// | 1 1 0 0 | 0 |\ |
// | 1 1 0 1 | 1 | \ = 4'b1001 = 4'h6 ------------+
// | 1 1 1 0 | 1 | /
// | 1 1 1 1 | 0 |/
// -------------------
//
// Example of determining a 3-input AND gate:
//
// ______________
// | I2 I1 I0 | O |
// |--------------|
// | 0 0 0 | 0 |\
// | 0 0 1 | 0 | \ = 4'b0000 = 4'h0 --------------+
// | 0 1 0 | 0 | / |
// | 0 1 1 | 0 |/ |
// |----------|---| INIT = 8'h80
// | 1 0 0 | 0 |\ |
// | 1 0 1 | 0 | \ = 4'b1000 = 4'h8 -------------+
// | 1 1 0 | 0 | /
// | 1 1 1 | 1 |/
// ----------------
//
// The Equation Method
// -------------------
//
// Another method to determine the LUT value is to define parameters for each
// input to the LUT that correspond to their listed truth value and use those to
// build the logic equation you are after. This method is easier to understand
// once you have grasped the concept and more self-documenting that the above
// method however does require the code to first specify the appropriate
// parameters. See the example below.
//
// Example of specifying the equation (A and B) or (C and D) for a LUT4:
//
// The following parameters are defined to allow for
// equation-based INIT specification.
parameter I0 = 16'haaaa;
parameter I1 = 16'hcccc;
parameter I2 = 16'hf0f0;
parameter I3 = 16'hff00;
// LUT4: 4-input Look-Up Table with general output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT4 #(
.INIT((I0&I1)|(I2&I3)) // Specify LUT Contents
) LUT4_inst (
.O(O_LUT), // LUT general output
.I0(A), // LUT input
.I1(B), // LUT input
.I2(C), // LUT input
.I3(D) // LUT input
);
// End of LUT4_inst instantiation
// With the parameters specifying all possible cases for the truth table, a
// Verilog equation can be written to determine the end INIT value.
// The following parameter is defined to allow for
// equation-based INIT specification for a LUT1.
parameter I0 = 2'b10;
// The following parameters are defined to allow for
// equation-based INIT specification for a LUT2.
parameter I0 = 4'ha;
parameter I1 = 4'hc;
// The following parameters are defined to allow for
// equation-based INIT specification for a LUT3.
parameter I0 = 8'haa;
parameter I1 = 8'hcc;
parameter I2 = 8'hf0;
// The following parameters are defined to allow for
// equation-based INIT specification for a LUT4.
parameter I0 = 16'haaaa;
parameter I1 = 16'hcccc;
parameter I2 = 16'hf0f0;
parameter I3 = 16'hff00;
// The following parameters are defined to allow for
// equation-based INIT specification for a LUT5.
parameter I0 = 32'haaaaaaaa;
parameter I1 = 32'hcccccccc;
parameter I2 = 32'hf0f0f0f0;
parameter I3 = 32'hff00ff00;
parameter I4 = 32'hffff0000;
// The following parameters are defined to allow for
// equation-based INIT specification for a LUT6.
parameter I0 = 64'haaaaaaaaaaaaaaaa;
parameter I1 = 64'hcccccccccccccccc;
parameter I2 = 64'hf0f0f0f0f0f0f0f0;
parameter I3 = 64'hff00ff00ff00ff00;
parameter I4 = 64'hffff0000ffff0000;
parameter I5 = 64'hffffffff00000000;
// Truth Table to determine INIT value for a LUT1
// ________
// | I0 | O |
// |--------|
// | 0 | ? |\
// | 1 | ? |/ = 2'b??
// ----------
// Truth Table to determine INIT value for a LUT2
// ______________
// | I2 I1 I0 | O |
// |--------------|
// | 0 0 0 | ? |\
// | 0 0 1 | ? | \ = INIT = 4'b???? = 4'h?
// | 0 1 0 | ? | /
// | 0 1 1 | ? |/
// ---------- ---
// Truth Table to determine INIT value for a LUT3
// ______________
// | I2 I1 I0 | O |
// |--------------|
// | 0 0 0 | ? |\
// | 0 0 1 | ? | \ = 4'b???? = 4'h? --------------+
// | 0 1 0 | ? | / |
// | 0 1 1 | ? |/ |
// |----------|---| INIT = 8'h??
// | 1 0 0 | ? |\ |
// | 1 0 1 | ? | \ = 4'b???? = 4'h? -------------+
// | 1 1 0 | ? | /
// | 1 1 1 | ? |/
// ----------------
// Truth Table to determine INIT value for a LUT4
// _________________
// | I3 I2 I1 I0 | O |
// |-----------------|
// | 0 0 0 0 | ? |\
// | 0 0 0 1 | ? | \ = 4'b???? = 4'h? ---------------+
// | 0 0 1 0 | ? | / |
// | 0 0 1 1 | ? |/ |
// |-------------|---| |
// | 0 1 0 0 | ? |\ |
// | 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 1 0 | ? | / |
// | 0 1 1 1 | ? |/ |
// |-------------|---| INIT = 16'h????
// | 1 0 0 0 | ? |\ |
// | 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 1 0 | ? | / |
// | 1 0 1 1 | ? |/ |
// |-------------|---| |
// | 1 1 0 0 | ? |\ |
// | 1 1 0 1 | ? | \ = 4'b???? = 4'h? ------------+
// | 1 1 1 0 | ? | /
// | 1 1 1 1 | ? |/
// -------------------
// Truth Table to determine INIT value for a LUT5
// ____________________
// | I4 I3 I2 I1 I0 | O |
// |--------------------|
// | 0 0 0 0 0 | ? |\
// | 0 0 0 0 1 | ? | \ = 4'b???? = 4'h? -------------------+
// | 0 0 0 1 0 | ? | / |
// | 0 0 0 1 1 | ? |/ |
// |----------------|---| |
// | 0 0 1 0 0 | ? |\ |
// | 0 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 0 1 1 0 | ? | / |
// | 0 0 1 1 1 | ? |/ |
// |----------------|---| |
// | 0 1 0 0 0 | ? |\ |
// | 0 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 0 1 0 | ? | / |
// | 0 1 0 1 1 | ? |/ |
// |----------------|---| |
// | 0 1 1 0 0 | ? |\ |
// | 0 1 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 1 1 0 | ? | / |
// | 0 1 1 1 1 | ? |/ |
// ---------------------- INIT = 32'h????????
// | 1 0 0 0 0 | ? |\ |
// | 1 0 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 0 1 0 | ? | / |
// | 1 0 0 1 1 | ? |/ |
// |----------------|---| |
// | 1 0 1 0 0 | ? |\ |
// | 1 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 1 1 0 | ? | / |
// | 1 0 1 1 1 | ? |/ |
// |----------------|---| |
// | 1 1 0 0 0 | ? |\ |
// | 1 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 1 0 1 0 | ? | / |
// | 1 1 0 1 1 | ? |/ |
// |----------------|---| |
// | 1 1 1 0 0 | ? |\ |
// | 1 1 1 0 1 | ? | \ = 4'b???? = 4'h? ------------+
// | 1 1 1 1 0 | ? | /
// | 1 1 1 1 1 | ? |/
// ----------------------
// Truth Table to determine INIT value for a LUT6
// _______________________
// | I5 I4 I3 I2 I1 I0 | O |
// |-----------------------|
// | 0 0 0 0 0 0 | ? |\
// | 0 0 0 0 0 1 | ? | \ = 4'b???? = 4'h? -------------------+
// | 0 0 0 0 1 0 | ? | / |
// | 0 0 0 0 1 1 | ? |/ |
// |-------------------|---| |
// | 0 0 0 1 0 0 | ? |\ |
// | 0 0 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 0 0 1 1 0 | ? | / |
// | 0 0 0 1 1 1 | ? |/ |
// |-------------------|---| |
// | 0 0 1 0 0 0 | ? |\ |
// | 0 0 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 0 1 0 1 0 | ? | / |
// | 0 0 1 0 1 1 | ? |/ |
// |-------------------|---| |
// | 0 0 1 1 0 0 | ? |\ |
// | 0 0 1 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 0 1 1 1 0 | ? | / |
// | 0 0 1 1 1 1 | ? |/ |
// ------------------------- |
// | 0 1 0 0 0 0 | ? |\ |
// | 0 1 0 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 0 0 1 0 | ? | / |
// | 0 1 0 0 1 1 | ? |/ |
// |-------------------|---| |
// | 0 1 0 1 0 0 | ? |\ |
// | 0 1 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 0 1 1 0 | ? | / |
// | 0 1 0 1 1 1 | ? |/ |
// |-------------------|---| |
// | 0 1 1 0 0 0 | ? |\ |
// | 0 1 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 1 0 1 0 | ? | / |
// | 0 1 1 0 1 1 | ? |/ |
// |-------------------|---| |
// | 0 1 1 1 0 0 | ? |\ |
// | 0 1 1 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 0 1 1 1 1 0 | ? | / |
// | 0 1 1 1 1 1 | ? |/ |
// ------------------------ INIT = 64'h????????????????
// | 1 0 0 0 0 0 | ? |\ |
// | 1 0 0 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 0 0 1 0 | ? | / |
// | 1 0 0 0 1 1 | ? |/ |
// |-------------------|---| |
// | 1 0 0 1 0 0 | ? |\ |
// | 1 0 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 0 1 1 0 | ? | / |
// | 1 0 0 1 1 1 | ? |/ |
// |-------------------|---| |
// | 1 0 1 0 0 0 | ? |\ |
// | 1 0 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 1 0 1 0 | ? | / |
// | 1 0 1 0 1 1 | ? |/ |
// |-------------------|---| |
// | 1 0 1 1 0 0 | ? |\ |
// | 1 0 1 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 0 1 1 1 0 | ? | / |
// | 1 0 1 1 1 1 | ? |/ |
// ------------------------- |
// | 1 1 0 0 0 0 | ? |\ |
// | 1 1 0 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 1 0 0 1 0 | ? | / |
// | 1 1 0 0 1 1 | ? |/ |
// |-------------------|---| |
// | 1 1 0 1 0 0 | ? |\ |
// | 1 1 0 1 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 1 0 1 1 0 | ? | / |
// | 1 1 0 1 1 1 | ? |/ |
// |-------------------|---| |
// | 1 1 1 0 0 0 | ? |\ |
// | 1 1 1 0 0 1 | ? | \ = 4'b???? = 4'h? |
// | 1 1 1 0 1 0 | ? | / |
// | 1 1 1 0 1 1 | ? |/ |
// |-------------------|---| |
// | 1 1 1 1 0 0 | ? |\ |
// | 1 1 1 1 0 1 | ? | \ = 4'b???? = 4'h? ----+
// | 1 1 1 1 1 0 | ? | /
// | 1 1 1 1 1 1 | ? |/
// ------------------------
// LUT4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT4: 4-input Look-Up Table with general output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT4 #(
.INIT(16'h0000) // Specify LUT Contents
) LUT4_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3) // LUT input
);
// End of LUT4_inst instantiation
// LUT4_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT4_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT4_L: 4-input Look-Up Table with local output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT4_L #(
.INIT(16'h0000) // Specify LUT Contents
) LUT4_L_inst (
.LO(LO), // LUT local output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3) // LUT input
);
// End of LUT4_L_inst instantiation
// LUT4_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT4_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT4_D: 4-input Look-Up Table with general and local outputs
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT4_D #(
.INIT(16'h0000) // Specify LUT Contents
) LUT4_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3) // LUT input
);
// End of LUT4_D_inst instantiation
// LUT3 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT3_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT3: 3-input Look-Up Table with general output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT3 #(
.INIT(8'h00) // Specify LUT Contents
) LUT3_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2) // LUT input
);
// End of LUT3_inst instantiation
// LUT3_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT3_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT3_L: 3-input Look-Up Table with local output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT3_L #(
.INIT(8'h00) // Specify LUT Contents
) LUT3_L_inst (
.LO(LO), // LUT local output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2) // LUT input
);
// End of LUT3_L_inst instantiation
// LUT3_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT3_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT3_D: 3-input Look-Up Table with general and local outputs
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT3_D #(
.INIT(8'h00) // Specify LUT Contents
) LUT3_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2) // LUT input
);
// End of LUT3_D_inst instantiation
// LUT2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT2: 2-input Look-Up Table with general output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT2 #(
.INIT(4'h0) // Specify LUT Contents
) LUT2_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1) // LUT input
);
// End of LUT2_inst instantiation
// LUT2_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT2_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT2_L: 2-input Look-Up Table with local output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT2_L #(
.INIT(4'h0) // Specify LUT Contents
) LUT2_L_inst (
.LO(LO), // LUT local output
.I0(I0), // LUT input
.I1(I1) // LUT input
);
// End of LUT2_L_inst instantiation
// LUT2_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT2_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT2_D: 2-input Look-Up Table with general and local outputs
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT2_D #(
.INIT(4'h0) // Specify LUT Contents
) LUT2_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1) // LUT input
);
// End of LUT2_L_inst instantiation
// LUT1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT1: 1-input Look-Up Table with general output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT1 #(
.INIT(2'b00) // Specify LUT Contents
) LUT1_inst (
.O(O), // LUT general output
.I0(I0) // LUT input
);
// End of LUT1_inst instantiation
// LUT1_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT1_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT1_L: 1-input Look-Up Table with local output
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT1_L #(
.INIT(2'b00) // Specify LUT Contents
) LUT1_L_inst (
.LO(LO), // LUT local output
.I0(I0) // LUT input
);
// End of LUT1_L_inst instantiation
// LUT1_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT1_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT1_D: 1-input Look-Up Table with general and local outputs
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
LUT1_D #(
.INIT(2'b00) // Specify LUT Contents
) LUT1_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0) // LUT input
);
// End of LUT1_D_inst instantiation
// BUFCF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFCF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFCF: Fast connect buffer used to connect the outputs of the LUTs
// and some dedicated logic directly to the input of another LUT.
// For use with all FPGAs.
// Xilinx HDL Language Template, version 10.1.2
BUFCF BUFCF_inst (
.O(O), // Connect to the output of a LUT
.I(I) // Connect to the input of a LUT
);
// End of BUFCF_inst instantiation
// CFGLUT5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CFGLUT5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CFGLUT5: Reconfigurable 5-input LUT
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
CFGLUT5 #(
.INIT(32'h00000000) // Specify initial LUT contents
) CFGLUT5_inst (
.CDO(CDO), // Reconfiguration cascade output
.O5(O5), // 4-LUT output
.O6(O6), // 5-LUT output
.CDI(CDI), // Reconfiguration data input
.CE(CE), // Reconfiguration enable input
.CLK(CLK), // Clock input
.I0(I0), // Logic data input
.I1(I1), // Logic data input
.I2(I2), // Logic data input
.I3(I3), // Logic data input
.I4(I4) // Logic data input
);
// End of CFGLUT5_inst instantiation
// LUT5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT5: 5-input Look-Up Table with general output
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT5 #(
.INIT(32'h00000000) // Specify LUT Contents
) LUT5_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4) // LUT input
);
// End of LUT5_inst instantiation
// LUT5_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT5_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT5_L: 5-input Look-Up Table with local output
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT5_L #(
.INIT(32'h0000000) // Specify LUT Contents
) LUT5_L_inst (
.LO(LO), // LUT local output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4) // LUT input
);
// End of LUT5_L_inst instantiation
// LUT5_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT5_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT5_D: 5-input Look-Up Table with general and local outputs
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT5_D #(
.INIT(32'h0000000) // Specify LUT Contents
) LUT5_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4) // LUT input
);
// End of LUT5_D_inst instantiation
// LUT6 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT6_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT6: 6-input Look-Up Table with general output
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT6 #(
.INIT(64'h0000000000000000) // Specify LUT Contents
) LUT6_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4), // LUT input
.I5(I5) // LUT input
);
// End of LUT6_inst instantiation
// LUT6_L : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT6_L_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT6_L: 6-input Look-Up Table with local output
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT6_L #(
.INIT(64'h0000000000000000) // Specify LUT Contents
) LUT6_L_inst (
.LO(LO), // LUT local output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4), // LUT input
.I5(I5) // LUT input
);
// End of LUT6_L_inst instantiation
// LUT6_D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT6_D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT6_D: 6-input Look-Up Table with general and local outputs
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT6_D #(
.INIT(64'h0000000000000000) // Specify LUT Contents
) LUT6_D_inst (
.LO(LO), // LUT local output
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4), // LUT input
.I5(I5) // LUT input
);
// End of LUT6_D_inst instantiation
// LUT6_2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LUT6_2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// LUT6_2: 6-input, 2 output Look-Up Table
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
LUT6_2 #(
.INIT(64'h0000000000000000) // Specify LUT Contents
) LUT6_2_inst (
.O6(O6), // 6/5-LUT output (1-bit)
.O5(O5), // 5-LUT output (1-bit)
.I0(I0), // LUT input (1-bit)
.I1(I1), // LUT input (1-bit)
.I2(I2), // LUT input (1-bit)
.I3(I3), // LUT input (1-bit)
.I4(I4), // LUT input (1-bit)
.I5(I5) // LUT input (1-bit)
);
// End of LUT6_2_inst instantiation
// DCM : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCM_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// :
// : Note: Use DCM_SP for Spartan-3E/3A and
// : DCM_ADV for Virtex-4/5
// <-----Cut code below this line---->
// DCM: Digital Clock Manager Circuit
// Virtex-II/II-Pro and Spartan-3
// Xilinx HDL Language Template, version 10.1.2
DCM #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
.CLKIN_PERIOD(0.0), // Specify period of input clock
.CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift of NONE, FIXED or VARIABLE
.CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
// an integer from 0 to 15
.DFS_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for frequency synthesis
.DLL_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for DLL
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.FACTORY_JF(16'hC080), // FACTORY JF values
.PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 255
.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE
) DCM_inst (
.CLK0(CLK0), // 0 degree DCM CLK output
.CLK180(CLK180), // 180 degree DCM CLK output
.CLK270(CLK270), // 270 degree DCM CLK output
.CLK2X(CLK2X), // 2X DCM CLK output
.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
.CLK90(CLK90), // 90 degree DCM CLK output
.CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
.CLKFX180(CLKFX180), // 180 degree CLK synthesis out
.LOCKED(LOCKED), // DCM LOCK status output
.PSDONE(PSDONE), // Dynamic phase adjust done output
.STATUS(STATUS), // 8-bit DCM status bits output
.CLKFB(CLKFB), // DCM clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
.PSCLK(PSCLK), // Dynamic phase adjust clock input
.PSEN(PSEN), // Dynamic phase adjust enable input
.PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
.RST(RST) // DCM asynchronous reset input
);
// End of DCM_inst instantiation
// DCM_PS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCM_PS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// DCM_PS: Dynamic Phase Shift Digital Clock Manager Circuit
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
DCM_PS #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
.CLKIN_PERIOD(10.0), // Specify period of input clock in ns from 1.25 to 1000.00
.CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift mode of NONE, FIXED,
// VARIABLE_POSITIVE, VARIABLE_CENTER or DIRECT
.CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
.DCM_PERFORMANCE_MODE("MAX_SPEED"), // Can be MAX_SPEED or MAX_RANGE
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
// an integer from 0 to 15
.DFS_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for frequency synthesis
.DLL_FREQUENCY_MODE("LOW"), // LOW, HIGH, or HIGH_SER frequency mode for DLL
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.FACTORY_JF(16'hf0f0), // FACTORY JF value suggested to be set to 16'hf0f0
.PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 1023
.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE
) DCM_PS_inst (
.CLK0(CLK0), // 0 degree DCM CLK output
.CLK180(CLK180), // 180 degree DCM CLK output
.CLK270(CLK270), // 270 degree DCM CLK output
.CLK2X(CLK2X), // 2X DCM CLK output
.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
.CLK90(CLK90), // 90 degree DCM CLK output
.CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
.CLKFX180(CLKFX180), // 180 degree CLK synthesis out
.DO(DO), // 16-bit data output for Dynamic Reconfiguration Port (DRP)
.LOCKED(LOCKED), // DCM LOCK status output
.PSDONE(PSDONE), // Dynamic phase adjust done output
.CLKFB(CLKFB), // DCM clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
.PSCLK(PSCLK), // Dynamic phase adjust clock input
.PSEN(PSEN), // Dynamic phase adjust enable input
.PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
.RST(RST) // DCM asynchronous reset input
);
// End of DCM_PS_inst instantiation
// DCM_BASE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCM_BASE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// DCM_BASE: Base Digital Clock Manager Circuit
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
DCM_BASE #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
.CLKIN_PERIOD(10.0), // Specify period of input clock in ns from 1.25 to 1000.00
.CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift mode of NONE or FIXED
.CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
.DCM_PERFORMANCE_MODE("MAX_SPEED"), // Can be MAX_SPEED or MAX_RANGE
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
// an integer from 0 to 15
.DFS_FREQUENCY_MODE("LOW"), // LOW or HIGH frequency mode for frequency synthesis
.DLL_FREQUENCY_MODE("LOW"), // LOW, HIGH, or HIGH_SER frequency mode for DLL
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.FACTORY_JF(16'hf0f0), // FACTORY JF value suggested to be set to 16'hf0f0
.PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 1023
.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE
) DCM_BASE_inst (
.CLK0(CLK0), // 0 degree DCM CLK output
.CLK180(CLK180), // 180 degree DCM CLK output
.CLK270(CLK270), // 270 degree DCM CLK output
.CLK2X(CLK2X), // 2X DCM CLK output
.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
.CLK90(CLK90), // 90 degree DCM CLK output
.CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
.CLKFX180(CLKFX180), // 180 degree CLK synthesis out
.LOCKED(LOCKED), // DCM LOCK status output
.CLKFB(CLKFB), // DCM clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
.RST(RST) // DCM asynchronous reset input
);
// End of DCM_BASE_inst instantiation
// PMCD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PMCD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// :
// : Note: Use PLL for Virtex-5
// <-----Cut code below this line---->
// PMCD: Phase-Matched Clock Divider Circuit for Virtex-4
// Xilinx HDL Language Template, version 10.1.2
PMCD #(
.EN_REL("FALSE"), // TRUE/FALSE to allow synchronous deassertion of RST
.RST_DEASSERT_CLK("CLKA") // Reset syncronization to which clock: CLKA, CLKB, CLKC or CLKD
) PMCD_inst (
.CLKA1(CLKA1), // Output CLKA divided by 1
.CLKA1D2(CLKA1D2), // Output CLKA divided by 2
.CLKA1D4(CLKA1D4), // Output CLKA divided by 4
.CLKA1D8(CLKA1D8), // Output CLKA divided by 8
.CLKB1(CLKB1), // Output phase matched CLKB
.CLKC1(CLKC1), // Output phase matched CLKC
.CLKD1(CLKD1), // Output phase matched CLKD
.CLKA(CLKA), // Input CLKA
.CLKB(CLKB), // Input CLKB
.CLKC(CLKC), // Input CLKC
.CLKD(CLKD), // Input CLKD
.REL(REL), // PCMD release input
.RST(RST) // Active high reset input
);
// End of PMCD_inst instantiation
// DCM_ADV : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCM_ADV_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// DCM_ADV: Digital Clock Manager Circuit
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
DCM_ADV #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
.CLKIN_PERIOD(10.0), // Specify period of input clock in ns from 1.25 to 1000.00
.CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift mode of NONE, FIXED,
// VARIABLE_POSITIVE, VARIABLE_CENTER or DIRECT
.CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
.DCM_AUTOCALIBRATION("TRUE"), // DCM calibration circuitry "TRUE"/"FALSE"
.DCM_PERFORMANCE_MODE("MAX_SPEED"), // Can be MAX_SPEED or MAX_RANGE
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
// an integer from 0 to 15
.DFS_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for frequency synthesis
.DLL_FREQUENCY_MODE("LOW"), // LOW, HIGH, or HIGH_SER frequency mode for DLL
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, "TRUE"/"FALSE"
.FACTORY_JF(16'hf0f0), // FACTORY JF value suggested to be set to 16'hf0f0
.PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 1023
.SIM_DEVICE("VIRTEX4"), // Set target device, "VIRTEX4" or "VIRTEX5"
.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, "TRUE"/"FALSE"
) DCM_ADV_inst (
.CLK0(CLK0), // 0 degree DCM CLK output
.CLK180(CLK180), // 180 degree DCM CLK output
.CLK270(CLK270), // 270 degree DCM CLK output
.CLK2X(CLK2X), // 2X DCM CLK output
.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
.CLK90(CLK90), // 90 degree DCM CLK output
.CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
.CLKFX180(CLKFX180), // 180 degree CLK synthesis out
.DO(DO), // 16-bit data output for Dynamic Reconfiguration Port (DRP)
.DRDY(DRDY), // Ready output signal from the DRP
.LOCKED(LOCKED), // DCM LOCK status output
.PSDONE(PSDONE), // Dynamic phase adjust done output
.CLKFB(CLKFB), // DCM clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
.DADDR(DADDR), // 7-bit address for the DRP
.DCLK(DCLK), // Clock for the DRP
.DEN(DEN), // Enable input for the DRP
.DI(DI), // 16-bit data input for the DRP
.DWE(DWE), // Active high allows for writing configuration memory
.PSCLK(PSCLK), // Dynamic phase adjust clock input
.PSEN(PSEN), // Dynamic phase adjust enable input
.PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
.RST(RST) // DCM asynchronous reset input
);
// End of DCM_ADV_inst instantiation
// DCM_SP : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCM_SP_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// DCM_SP: Digital Clock Manager Circuit
// Spartan-3E/3A
// Xilinx HDL Language Template, version 10.1.2
DCM_SP #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32
.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32
.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
.CLKIN_PERIOD(0.0), // Specify period of input clock
.CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift of NONE, FIXED or VARIABLE
.CLK_FEEDBACK("1X"), // Specify clock feedback of NONE, 1X or 2X
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
// an integer from 0 to 15
.DLL_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for DLL
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 255
.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE
) DCM_SP_inst (
.CLK0(CLK0), // 0 degree DCM CLK output
.CLK180(CLK180), // 180 degree DCM CLK output
.CLK270(CLK270), // 270 degree DCM CLK output
.CLK2X(CLK2X), // 2X DCM CLK output
.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
.CLK90(CLK90), // 90 degree DCM CLK output
.CLKDV(CLKDV), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKFX(CLKFX), // DCM CLK synthesis out (M/D)
.CLKFX180(CLKFX180), // 180 degree CLK synthesis out
.LOCKED(LOCKED), // DCM LOCK status output
.PSDONE(PSDONE), // Dynamic phase adjust done output
.STATUS(STATUS), // 8-bit DCM status bits output
.CLKFB(CLKFB), // DCM clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DCM)
.PSCLK(PSCLK), // Dynamic phase adjust clock input
.PSEN(PSEN), // Dynamic phase adjust enable input
.PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
.RST(RST) // DCM asynchronous reset input
);
// End of DCM_SP_inst instantiation
// CLKDLL : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLKDLL_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// CLKDLL: Delay Locked Loop Circuit for Virtex and Spartan-II (Low frequency)
// Xilinx HDL Language Template, version 10.1.2
CLKDLL #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,4.0,5.0,8.0 or 16.0
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.FACTORY_JF(16'hC080), // FACTORY JF Values
.STARTUP_WAIT("FALSE") // Delay config DONE until DLL LOCK, TRUE/FALSE
) CLKDLL_inst (
.CLK0(CLK0), // 0 degree DLL CLK output
.CLK180(CLK180), // 180 degree DLL CLK output
.CLK270(CLK270), // 270 degree DLL CLK output
.CLK2X(CLK2X), // 2X DLL CLK output
.CLK90(CLK90), // 90 degree DLL CLK output
.CLKDV(CLKDV), // Divided DLL CLK out (CLKDV_DIVIDE)
.LOCKED(LOCKED), // DLL LOCK status output
.CLKFB(CLKFB), // DLL clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DLL)
.RST(RST) // DLL asynchronous reset input
);
// End of CLKDLL_inst instantiation
// CLKDLLE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLKDLLE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// CLKDLLE: Delay Locked Loop Circuit for VirtexE and Spartan-IIE (Low frequency)
// Xilinx HDL Language Template, version 10.1.2
CLKDLLE #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,4.0,5.0,8.0 or 16.0
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
.FACTORY_JF(16'hC080), // FACTORY JF Values
.STARTUP_WAIT("FALSE") // Delay config DONE until DLL LOCK, TRUE/FALSE
) CLKDLLE_inst (
.CLK0(CLK0), // 0 degree DLL CLK output
.CLK180(CLK180), // 180 degree DLL CLK output
.CLK270(CLK270), // 270 degree DLL CLK output
.CLK2X(CLK2X), // 2X DLL CLK output
.CLK90(CLK90), // 90 degree DLL CLK output
.CLKDV(CLKDV), // Divided DLL CLK out (CLKDV_DIVIDE)
.LOCKED(LOCKED), // DLL LOCK status output
.CLKFB(CLKFB), // DLL clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DLL)
.RST(RST) // DLL asynchronous reset input
);
// End of CLKDLLE_inst instantiation
// CLKDLLHF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLKDLLHF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// CLKDLLHF: Delay Locked Loop Circuit for Virtex/E and Spartan-II/IIE (High frequency)
// Xilinx HDL Language Template, version 10.1.2
CLKDLLHF #(
.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,4.0,5.0,8.0 or 16.0
.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correct, TRUE or FALSE
.FACTORY_JF(16'hC080), // FACTORY JF Values
.STARTUP_WAIT("FALSE") // Delay config DONE until DLL LOCK, TRUE/FALSE
) CLKDLLHF_inst (
.CLK0(CLK0), // 0 degree DLL CLK output
.CLK180(CLK180), // 180 degree DLL CLK output
.CLKDV(CLKDV), // Divided DLL CLK out (CLKDV_DIVIDE)
.LOCKED(LOCKED), // DLL LOCK status output
.CLKFB(CLKFB), // DLL clock feedback
.CLKIN(CLKIN), // Clock input (from IBUFG, BUFG or DLL)
.RST(RST) // DLL asynchronous reset input
);
// End of CLKDLLHF_inst instantiation
// BUFG : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFG_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFG: Global Clock Buffer (source by an internal signal)
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
BUFG BUFG_inst (
.O(O), // Clock buffer output
.I(I) // Clock buffer input
);
// End of BUFG_inst instantiation
// IBUFG : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFG_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFG: Global Clock Buffer (sourced by an external pin)
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
IBUFG #(
.IOSTANDARD("DEFAULT")
) IBUFG_inst (
.O(O), // Clock buffer output
.I(I) // Clock buffer input (connect directly to top-level port)
);
// End of IBUFG_inst instantiation
// IBUFGDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFGDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFGDS: Differential Global Clock Buffer (sourced by an external pin)
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
IBUFGDS #(
.DIFF_TERM("FALSE"), // Differential Termination (Virtex-4/5, Spartan-3E/3A)
.IOSTANDARD("DEFAULT") // Specifies the I/O standard for this buffer
) IBUFGDS_inst (
.O(O), // Clock buffer output
.I(I), // Diff_p clock buffer input
.IB(IB) // Diff_n clock buffer input
);
// End of IBUFGDS_inst instantiation
// BUFGCE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGCE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGCE: Global Clock Buffer with Clock Enable (active high)
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
BUFGCE BUFGCE_inst (
.O(O), // Clock buffer output
.CE(CE), // Clock enable input
.I(I) // Clock buffer input
);
// End of BUFGCE_inst instantiation
// BUFGCE_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGCE_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGCE_1: Global Clock Buffer with Clock Enable (active low)
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
BUFGCE_1 BUFGCE_1_inst (
.O(O), // Clock buffer output
.CE(CE), // Clock enable input
.I(I) // Clock buffer input
);
// End of BUFGCE_1_inst instantiation
// BUFGCE_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGCE_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGCE_1: Global Clock Buffer with Clock Enable (active low)
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
BUFGCE_1 BUFGCE_1_inst (
.O(O), // Clock buffer output
.CE(CE), // Clock enable input
.I(I) // Clock buffer input
);
// End of BUFGCE_1_inst instantiation
// BUFIO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFIO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFIO: Local Clock Buffer
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
BUFIO BUFIO_inst (
.O(O), // Clock buffer output
.I(I) // Clock buffer input
);
// End of BUFIO_inst instantiation
// BUFR : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFR_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFR: Regional Clock Buffer /w Enable, Clear and Division Capabilities
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
BUFR #(
.BUFR_DIVIDE("BYPASS"), // "BYPASS", "1", "2", "3", "4", "5", "6", "7", "8"
.SIM_DEVICE("VIRTEX4") // Specify target device, "VIRTEX4" or "VIRTEX5"
) BUFR_inst (
.O(O), // Clock buffer output
.CE(CE), // Clock enable input
.CLR(CLR), // Clock buffer reset input
.I(I) // Clock buffer input
);
// End of BUFR_inst instantiation
// BUFGMUX : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGMUX_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGMUX: Global Clock Buffer 2-to-1 MUX
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
BUFGMUX BUFGMUX_inst (
.O(O), // Clock MUX output
.I0(I0), // Clock0 input
.I1(I1), // Clock1 input
.S(S) // Clock select input
);
// End of BUFGMUX_inst instantiation
// BUFGMUX_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGMUX_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGMUX_1: Global Clock Buffer 2-to-1 MUX (inverted select)
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
BUFGMUX_1 BUFGMUX_1_inst (
.O(O), // Clock MUX output
.I0(I0), // Clock0 input
.I1(I1), // Clock1 input
.S(S) // Clock select input
);
// End of BUFGMUX_1_inst instantiation
// BUFGMUX_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGMUX_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGMUX_VIRTEX4: Global Clock Buffer 2-to-1 MUX
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
BUFGMUX_VIRTEX4 BUFGMUX_VIRTEX4_inst (
.O(O), // Clock MUX output
.I0(I0), // Clock0 input
.I1(I1), // Clock1 input
.S(S) // Clock select input
);
// End of BUFGMUX_VIRTEX4_inst instantiation
// BUFGCTRL : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGCTRL_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGCTRL: Advanced Clock MUX Primitive
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
BUFGCTRL #(
.INIT_OUT(0), // Inital value of 0 or 1 after configuration
.PRESELECT_I0("FALSE"), // "TRUE" or "FALSE" set the I0 input after configuration
.PRESELECT_I1("FALSE") // "TRUE" or "FALSE" set the I1 input after configuration
) BUFGCTRL_inst (
.O(O), // 1-bit output
.CE0(CE0), // 1-bit clock enable 0
.CE1(CE1), // 1-bit clock enable 1
.I0(I0), // 1-bit clock 0 input
.I1(I1), // 1-bit clock 1 input
.IGNORE0(IGNORE0), // 1-bit ignore 0 input
.IGNORE1(IGNORE1), // 1-bit ignore 1 input
.S0(S0), // 1-bit select 0 input
.S1(S1) // 1-bit select 1 input
);
// End of BUFGCTRL_inst instantiation
// BUFGMUX_CTRL : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFGMUX_CTRL_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFGMUX_CTRL: Global Clock Buffer 2-to-1 MUX
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
BUFGMUX_CTRL BUFGMUX_CTRL_inst (
.O(O), // Clock MUX output
.I0(I0), // Clock0 input
.I1(I1), // Clock1 input
.S(S) // Clock select input
);
// End of BUFGMUX_CTRL_inst instantiation
// PLL_ADV : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PLL_ADV_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// PLL_ADV: Phase-Lock Loop Clock Circuit
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
PLL_ADV #(
.BANDWIDTH("OPTIMIZED"), // "HIGH", "LOW" or "OPTIMIZED"
.CLKFBOUT_MULT(1), // Multiplication factor for all output clocks
.CLKFBOUT_PHASE(0.0), // Phase shift (degrees) of all output clocks
.CLKIN1_PERIOD(0.000), // Clock period (ns) of input clock on CLKIN1
.CLKIN2_PERIOD(0.000), // Clock period (ns) of input clock on CLKIN2
.CLKOUT0_DIVIDE(1), // Division factor for CLKOUT0 (1 to 128)
.CLKOUT0_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT0 (0.01 to 0.99)
.CLKOUT0_PHASE(0.0), // Phase shift (degrees) for CLKOUT0 (0.0 to 360.0)
.CLKOUT1_DIVIDE(1), // Division factor for CLKOUT1 (1 to 128)
.CLKOUT1_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT1 (0.01 to 0.99)
.CLKOUT1_PHASE(0.0), // Phase shift (degrees) for CLKOUT1 (0.0 to 360.0)
.CLKOUT2_DIVIDE(1), // Division factor for CLKOUT2 (1 to 128)
.CLKOUT2_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT2 (0.01 to 0.99)
.CLKOUT2_PHASE(0.0), // Phase shift (degrees) for CLKOUT2 (0.0 to 360.0)
.CLKOUT3_DIVIDE(1), // Division factor for CLKOUT3 (1 to 128)
.CLKOUT3_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT3 (0.01 to 0.99)
.CLKOUT3_PHASE(0.0), // Phase shift (degrees) for CLKOUT3 (0.0 to 360.0)
.CLKOUT4_DIVIDE(1), // Division factor for CLKOUT4 (1 to 128)
.CLKOUT4_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT4 (0.01 to 0.99)
.CLKOUT4_PHASE(0.0), // Phase shift (degrees) for CLKOUT4 (0.0 to 360.0)
.CLKOUT5_DIVIDE(1), // Division factor for CLKOUT5 (1 to 128)
.CLKOUT5_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT5 (0.01 to 0.99)
.CLKOUT5_PHASE(0.0), // Phase shift (degrees) for CLKOUT5 (0.0 to 360.0)
.COMPENSATION("SYSTEM_SYNCHRONOUS"), // "SYSTEM_SYNCHRONOUS",
// "SOURCE_SYNCHRONOUS", "INTERNAL", "EXTERNAL",
// "DCM2PLL", "PLL2DCM"
.DIVCLK_DIVIDE(1), // Division factor for all clocks (1 to 52)
.EN_REL("FALSE"), // Enable release (PMCD mode only)
.PLL_PMCD_MODE("FALSE"), // PMCD Mode, TRUE/FASLE
.REF_JITTER(0.100), // Input reference jitter (0.000 to 0.999 UI%)
.RST_DEASSERT_CLK("CLKIN1") // In PMCD mode, clock to synchronize RST release
) PLL_ADV_inst (
.CLKFBDCM(CLKFBDCM), // Output feedback signal used when PLL feeds a DCM
.CLKFBOUT(CLKFBOUT), // General output feedback signal
.CLKOUT0(CLKOUT0), // One of six general clock output signals
.CLKOUT1(CLKOUT1), // One of six general clock output signals
.CLKOUT2(CLKOUT2), // One of six general clock output signals
.CLKOUT3(CLKOUT3), // One of six general clock output signals
.CLKOUT4(CLKOUT4), // One of six general clock output signals
.CLKOUT5(CLKOUT5), // One of six general clock output signals
.CLKOUTDCM0(CLKOUTDCM0), // One of six clock outputs to connect to the DCM
.CLKOUTDCM1(CLKOUTDCM1), // One of six clock outputs to connect to the DCM
.CLKOUTDCM2(CLKOUTDCM2), // One of six clock outputs to connect to the DCM
.CLKOUTDCM3(CLKOUTDCM3), // One of six clock outputs to connect to the DCM
.CLKOUTDCM4(CLKOUTDCM4), // One of six clock outputs to connect to the DCM
.CLKOUTDCM5(CLKOUTDCM5), // One of six clock outputs to connect to the DCM
.DO(DO), // Dynamic reconfig data output (16-bits)
.DRDY(DRDY), // Dynamic reconfig ready output
.LOCKED(LOCKED), // Active high PLL lock signal
.CLKFBIN(CLKFBIN), // Clock feedback input
.CLKIN1(CLKIN1), // Primary clock input
.CLKIN2(CLKIN2), // Secondary clock input
.CLKINSEL(CLKINSEL), // Selects '1' = CLKIN1, '0' = CLKIN2
.DADDR(DADDR), // Dynamic reconfig address input (5-bits)
.DCLK(DCLK), // Dynamic reconfig clock input
.DEN(DEN), // Dynamic reconfig enable input
.DI(DI), // Dynamic reconfig data input (16-bits)
.DWE(DWE), // Dynamic reconfig write enable input
.REL(REL), // Clock release input (PMCD mode only)
.RST(RST) // Asynchronous PLL reset
);
// End of PLL_ADV_inst instantiation
// PLL_BASE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PLL_BASE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Unused inputs
// : and outputs may be removed or commented out.
// <-----Cut code below this line---->
// PLL_BASE: Phase-Lock Loop Clock Circuit
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
PLL_BASE #(
.BANDWIDTH("OPTIMIZED"), // "HIGH", "LOW" or "OPTIMIZED"
.CLKFBOUT_MULT(1), // Multiplication factor for all output clocks
.CLKFBOUT_PHASE(0.0), // Phase shift (degrees) of all output clocks
.CLKIN_PERIOD(0.000), // Clock period (ns) of input clock on CLKIN
.CLKOUT0_DIVIDE(1), // Division factor for CLKOUT0 (1 to 128)
.CLKOUT0_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT0 (0.01 to 0.99)
.CLKOUT0_PHASE(0.0), // Phase shift (degrees) for CLKOUT0 (0.0 to 360.0)
.CLKOUT1_DIVIDE(1), // Division factor for CLKOUT1 (1 to 128)
.CLKOUT1_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT1 (0.01 to 0.99)
.CLKOUT1_PHASE(0.0), // Phase shift (degrees) for CLKOUT1 (0.0 to 360.0)
.CLKOUT2_DIVIDE(1), // Division factor for CLKOUT2 (1 to 128)
.CLKOUT2_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT2 (0.01 to 0.99)
.CLKOUT2_PHASE(0.0), // Phase shift (degrees) for CLKOUT2 (0.0 to 360.0)
.CLKOUT3_DIVIDE(1), // Division factor for CLKOUT3 (1 to 128)
.CLKOUT3_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT3 (0.01 to 0.99)
.CLKOUT3_PHASE(0.0), // Phase shift (degrees) for CLKOUT3 (0.0 to 360.0)
.CLKOUT4_DIVIDE(1), // Division factor for CLKOUT4 (1 to 128)
.CLKOUT4_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT4 (0.01 to 0.99)
.CLKOUT4_PHASE(0.0), // Phase shift (degrees) for CLKOUT4 (0.0 to 360.0)
.CLKOUT5_DIVIDE(1), // Division factor for CLKOUT5 (1 to 128)
.CLKOUT5_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT5 (0.01 to 0.99)
.CLKOUT5_PHASE(0.0), // Phase shift (degrees) for CLKOUT5 (0.0 to 360.0)
.COMPENSATION("SYSTEM_SYNCHRONOUS"), // "SYSTEM_SYNCHRONOUS",
// "SOURCE_SYNCHRONOUS", "INTERNAL", "EXTERNAL",
// "DCM2PLL", "PLL2DCM"
.DIVCLK_DIVIDE(1), // Division factor for all clocks (1 to 52)
.REF_JITTER(0.100) // Input reference jitter (0.000 to 0.999 UI%)
) PLL_BASE_inst (
.CLKFBOUT(CLKFBOUT), // General output feedback signal
.CLKOUT0(CLKOUT0), // One of six general clock output signals
.CLKOUT1(CLKOUT1), // One of six general clock output signals
.CLKOUT2(CLKOUT2), // One of six general clock output signals
.CLKOUT3(CLKOUT3), // One of six general clock output signals
.CLKOUT4(CLKOUT4), // One of six general clock output signals
.CLKOUT5(CLKOUT5), // One of six general clock output signals
.LOCKED(LOCKED), // Active high PLL lock signal
.CLKFBIN(CLKFBIN), // Clock feedback input
.CLKIN(CLKIN), // Clock input
.RST(RST) // Asynchronous PLL reset
);
// End of PLL_BASE_inst instantiation
// ROM16X1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ROM16X1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ROM16X1: 16 x 1 Asynchronous Distributed (LUT) ROM
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
ROM16X1 #(
.INIT(16'h0000) // Contents of ROM
) ROM16X1_inst (
.O(O), // ROM output
.A0(A0), // ROM address[0]
.A1(A1), // ROM address[1]
.A2(A2), // ROM address[2]
.A3(A3) // ROM address[3]
);
// End of ROM16X1_inst instantiation
// ROM32X1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ROM32X1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ROM32X1: 32 x 1 Asynchronous Distributed (LUT) ROM
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
ROM32X1 #(
.INIT(32'h00000000) // Contents of ROM
) ROM32X1_inst (
.O(O), // ROM output
.A0(A0), // ROM address[0]
.A1(A1), // ROM address[1]
.A2(A2), // ROM address[2]
.A3(A3), // ROM address[3]
.A4(A4) // ROM address[4]
);
// End of ROM32X1_inst instantiation
// ROM64X1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ROM64X1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ROM64X1: 64 x 1 Asynchronous Distributed (LUT) ROM
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
ROM64X1 #(
.INIT(64'h0000000000000000) // Contents of ROM
) ROM64X1_inst (
.O(O), // ROM output
.A0(A0), // ROM address[0]
.A1(A1), // ROM address[1]
.A2(A2), // ROM address[2]
.A3(A3), // ROM address[3]
.A4(A4), // ROM address[4]
.A5(A5) // ROM address[5]
);
// End of ROM64X1_inst instantiation
// ROM128X1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ROM128X1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ROM128X1: 128 x 1 Asynchronous Distributed (LUT) ROM
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
ROM128X1 #(
.INIT(128'h00000000000000000000000000000000) // Contents of ROM
) ROM128X1_inst (
.O(O), // ROM output
.A0(A0), // ROM address[0]
.A1(A1), // ROM address[1]
.A2(A2), // ROM address[2]
.A3(A3), // ROM address[3]
.A4(A4), // ROM address[4]
.A5(A5), // ROM address[5]
.A6(A6) // ROM address[6]
);
// End of ROM128X1_inst instantiation
// ROM256X1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ROM256X1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// ROM256X1: 256 x 1 Asynchronous Distributed (LUT) ROM
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
ROM256X1 #(
.INIT(256'h0000000000000000000000000000000000000000000000000000000000000000) // Contents of ROM
) ROM256X1_inst (
.O(O), // ROM output
.A0(A0), // ROM address[0]
.A1(A1), // ROM address[1]
.A2(A2), // ROM address[2]
.A3(A3), // ROM address[3]
.A4(A4), // ROM address[4]
.A5(A5), // ROM address[5]
.A6(A6), // ROM address[6]
.A7(A7) // ROM address[7]
);
// End of ROM256X1_inst instantiation
// RAM16X1S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X1S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X1S: 16 x 1 posedge write distributed (LUT) RAM
// All FPGA
// Xilinx HDL Language Template, version 10.1.2
RAM16X1S #(
.INIT(16'h0000) // Initial contents of RAM
) RAM16X1S_inst (
.O(O), // RAM output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.D(D), // RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X1S_inst instantiation
// RAM16X1S_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X1S_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X1S_1: 16 x 1 negedge write distributed (LUT) RAM
// All FPGA
// Xilinx HDL Language Template, version 10.1.2
RAM16X1S_1 #(
.INIT(16'h0000) // Initial contents of RAM
) RAM16X1S_1_inst (
.O(O), // RAM output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.D(D), // RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X1S_1_inst instantiation
// RAM16X2S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X2S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X2S: 16 x 2 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM16X2S #(
.INIT_00(16'h0000), // Initial contents of bit 0 of RAM
.INIT_01(16'h0000) // Initial contents of bit 1 of RAM
) RAM16X2S_inst (
.O0(O0), // RAM data[0] output
.O1(O1), // RAM data[1] output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.D0(D0), // RAM data[0] input
.D1(D1), // RAM data[1] input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X2S_inst instantiation
// RAM16X4S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X4S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X4S: 16 x 4 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM16X4S #(
.INIT_00(16'h0000), // INIT for bit 0 of RAM
.INIT_01(16'h0000), // INIT for bit 1 of RAM
.INIT_02(16'h0000), // INIT for bit 2 of RAM
.INIT_03(16'h0000) // INIT for bit 3 of RAM
) RAM16X4S_inst (
.O0(O0), // RAM data[0] output
.O1(O1), // RAM data[1] output
.O2(O2), // RAM data[2] output
.O3(O3), // RAM data[3] output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.D0(D0), // RAM data[0] input
.D1(D1), // RAM data[1] input
.D2(D2), // RAM data[2] input
.D3(D3), // RAM data[3] input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X4S_inst instantiation
// RAM16X8S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X8S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X8S: 16 x 8 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM16X8S #(
.INIT_00(16'h0000), // INIT for bit 0 of RAM
.INIT_01(16'h0000), // INIT for bit 1 of RAM
.INIT_02(16'h0000), // INIT for bit 2 of RAM
.INIT_03(16'h0000), // INIT for bit 3 of RAM
.INIT_04(16'h0000), // INIT for bit 4 of RAM
.INIT_05(16'h0000), // INIT for bit 5 of RAM
.INIT_06(16'h0000), // INIT for bit 6 of RAM
.INIT_07(16'h0000) // INIT for bit 7 of RAM
) RAM16X8S_inst (
.O(O), // 8-bit RAM data output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.D(D), // 8-bit RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X8S_inst instantiation
// RAM32X1S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X1S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X1S: 32 x 1 posedge write distributed (LUT) RAM
// All FPGA
// Xilinx HDL Language Template, version 10.1.2
RAM32X1S #(
.INIT(32'h00000000) // Initial contents of RAM
) RAM32X1S_inst (
.O(O), // RAM output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.A4(A4), // RAM address[4] input
.D(D), // RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X1S_inst instantiation
// RAM32X1S_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X1S_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X1S_1: 32 x 1 negedge write distributed (LUT) RAM
// Virtex/E/-II/-II-Pro, Spartan-II/IIE/3/3A
// Xilinx HDL Language Template, version 10.1.2
RAM32X1S_1 #(
.INIT(32'h00000000) // Initial contents of RAM
)RAM32X1S_1_inst (
.O(O), // RAM output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.A4(A4), // RAM address[4] input
.D(D), // RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X1S_1_inst instantiation
// RAM32X2S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X2S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X2S: 32 x 2 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM32X2S #(
.INIT_00(32'h00000000), // INIT for bit 0 of RAM
.INIT_01(32'h00000000) // INIT for bit 1 of RAM
) RAM32X2S_inst (
.O0(O0), // RAM data[0] output
.O1(O1), // RAM data[1] output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.A4(A4), // RAM address[4] input
.D0(D0), // RAM data[0] input
.D1(D1), // RAM data[1] input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X2S_inst instantiation
// RAM32X4S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X4S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X4S: 32 x 4 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM32X4S #(
.INIT_00(32'h00000000), // INIT for bit 0 of RAM
.INIT_01(32'h00000000), // INIT for bit 1 of RAM
.INIT_02(32'h00000000), // INIT for bit 2 of RAM
.INIT_03(32'h00000000) // INIT for bit 3 of RAM
) RAM32X4S_inst (
.O0(O0), // RAM data[0] output
.O1(O1), // RAM data[1] output
.O2(O2), // RAM data[2] output
.O3(O3), // RAM data[3] output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.A4(A4), // RAM address[4] input
.D0(D0), // RAM data[0] input
.D1(D1), // RAM data[1] input
.D2(D2), // RAM data[2] input
.D3(D3), // RAM data[3] input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X4S_inst instantiation
// RAM32X8S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X8S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X8S: 32 x 8 posedge write distributed (LUT) RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM32X8S #(
.INIT_00(32'h00000000), // INIT for bit 0 of RAM
.INIT_01(32'h00000000), // INIT for bit 1 of RAM
.INIT_02(32'h00000000), // INIT for bit 2 of RAM
.INIT_03(32'h00000000), // INIT for bit 3 of RAM
.INIT_04(32'h00000000), // INIT for bit 4 of RAM
.INIT_05(32'h00000000), // INIT for bit 5 of RAM
.INIT_06(32'h00000000), // INIT for bit 6 of RAM
.INIT_07(32'h00000000) // INIT for bit 7 of RAM
) RAM32X8S_inst (
.O(O), // 8-bit RAM data output
.A0(A0), // RAM address[0] input
.A1(A1), // RAM address[1] input
.A2(A2), // RAM address[2] input
.A3(A3), // RAM address[3] input
.A4(A4), // RAM address[4] input
.D(D), // 8-bit RAM data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X8S_inst instantiation
// RAM64X1S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64X1S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64X1S: 64 x 1 positive edge write, asynchronous read single-port distributed RAM
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM64X1S #(
.INIT(64'h0000000000000000) // Initial contents of RAM
) RAM64X1S_inst (
.O(O), // 1-bit data output
.A0(A0), // Address[0] input bit
.A1(A1), // Address[1] input bit
.A2(A2), // Address[2] input bit
.A3(A3), // Address[3] input bit
.A4(A4), // Address[4] input bit
.A5(A5), // Address[5] input bit
.D(D), // 1-bit data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM64X1S_inst instantiation
// RAM64X1S_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64X1S_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64X1S_1: 64 x 1 negative edge write, asynchronous read single-port distributed RAM
// Virtex-II/II-Pro, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM64X1S_1 #(
.INIT(64'h0000000000000000) // Initial contents of RAM
) RAM64X1S_1_inst (
.O(O), // 1-bit data output
.A0(A0), // Address[0] input bit
.A1(A1), // Address[1] input bit
.A2(A2), // Address[2] input bit
.A3(A3), // Address[3] input bit
.A4(A4), // Address[4] input bit
.A5(A5), // Address[5] input bit
.D(D), // 1-bit data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM64X1S_1_inst instantiation
// RAM64X2S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64X2S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64X2S: 64 x 2 positive edge write, asynchronous read single-port distributed RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM64X2S #(
.INIT_00(64'h0000000000000000), // INIT for RAM bit 0
.INIT_01(64'h0000000000000000) // INIT for RAM bit 1
) RAM64X2S_inst (
.O0(O0), // Data[0] output
.O1(O1), // Data[1] output bit
.A0(A0), // Address[0] input bit
.A1(A1), // Address[1] input bit
.A2(A2), // Address[2] input bit
.A3(A3), // Address[3] input bit
.A4(A4), // Address[4] input bit
.A5(A5), // Address[5] input bit
.D0(D0), // Data[0] input
.D1(D1), // Data[1] input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM64X2S_inst instantiation
// RAM128X1S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM128X1S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM128X1S: 128 x 1 positive edge write, asynchronous read single-port distributed RAM
// Virtex-II/II-Pro/5
// Xilinx HDL Language Template, version 10.1.2
RAM128X1S #(
.INIT(128'h00000000000000000000000000000000) // Initial contents of RAM
) RAM128X1S_inst (
.O(O), // 1-bit data output
.A0(A0), // Address[0] input bit
.A1(A1), // Address[1] input bit
.A2(A2), // Address[2] input bit
.A3(A3), // Address[3] input bit
.A4(A4), // Address[4] input bit
.A5(A5), // Address[5] input bit
.A6(A6), // Address[6] input bit
.D(D), // 1-bit data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM128X1S_inst instantiation
// RAM128X1S_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM128X1S_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM128X1S_1: 128 x 1 negative edge write, asynchronous read single-port distributed RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM128X1S_1 #(
.INIT(128'h00000000000000000000000000000000) // Initial contents of RAM
) RAM128X1S_1_inst (
.O(O), // 1-bit data output
.A0(A0), // Address[0] input bit
.A1(A1), // Address[1] input bit
.A2(A2), // Address[2] input bit
.A3(A3), // Address[3] input bit
.A4(A4), // Address[4] input bit
.A5(A5), // Address[5] input bit
.A6(A6), // Address[6] input bit
.D(D), // 1-bit data input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM128X1S_1_inst instantiation
// RAM256X1S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM256X1S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM256X1S: 256-deep by 1-wide positive edge write, asynchronous read
// single-port distributed LUT RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAM256X1S #(
.INIT(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAM256X1S_inst (
.O(O), // Read/Write port 1-bit output
.A(A), // Read/Write port 8-bit address input
.WE(WE), // Write enable input
.WCLK(WCLK), // Write clock input
.D(D) // RAM data input
);
// End of RAM256X1S_inst instantiation
// RAM16X1D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X1D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X1D: 16 x 1 positive edge write, asynchronous read dual-port distributed RAM
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
RAM16X1D #(
.INIT(16'h0000) // Initial contents of RAM
) RAM16X1D_inst (
.DPO(DPO), // Read-only 1-bit data output for DPRA
.SPO(SPO), // R/W 1-bit data output for A0-A3
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read address[0] input bit
.DPRA1(DPRA1), // Read address[1] input bit
.DPRA2(DPRA2), // Read address[2] input bit
.DPRA3(DPRA3), // Read address[3] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X1D_inst instantiation
// RAM16X1D_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM16X1D_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM16X1D_1: 16 x 1 negative edge write, asynchronous read dual-port distributed RAM
// Virtex/E/-II/-II-Pro, Spartan-II/IIE/3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
RAM16X1D_1 #(
.INIT(16'h0000) // Initial contents of RAM
) RAM16X1D_1_inst (
.DPO(DPO), // Read-only 1-bit data output
.SPO(SPO), // R/W 1-bit data output
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read-only address[0] input bit
.DPRA1(DPRA1), // Read-only address[1] input bit
.DPRA2(DPRA2), // Read-only address[2] input bit
.DPRA3(DPRA3), // Read-only address[3] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM16X1D_1_inst instantiation
// RAM32X1D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X1D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X1D: 32 x 1 positive edge write, asynchronous read dual-port distributed RAM
// Virtex-II/II-Pro/5
// Xilinx HDL Language Template, version 10.1.2
RAM32X1D #(
.INIT(32'h00000000) // Initial contents of RAM
) RAM32X1D_inst (
.DPO(DPO), // Read-only 1-bit data output
.SPO(SPO), // R/W 1-bit data output
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.A4(A4), // R/W address[4] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read-only address[0] input bit
.DPRA1(DPRA1), // Read-only address[1] input bit
.DPRA2(DPRA2), // Read-only address[2] input bit
.DPRA3(DPRA3), // Read-only address[3] input bit
.DPRA4(DPRA4), // Read-only address[4] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X1D_inst instantiation
// RAM32X1D_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32X1D_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32X1D_1: 32 x 1 negative edge write, asynchronous read dual-port distributed RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM32X1D_1 #(
.INIT(32'h00000000) // Initial contents of RAM
) RAM32X1D_1_inst (
.DPO(DPO), // Read-only 1-bit data output
.SPO(SPO), // R/W 1-bit data output
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.A4(A4), // R/W address[4] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read-only address[0] input bit
.DPRA1(DPRA1), // Read-only address[1] input bit
.DPRA2(DPRA2), // Read-only address[2] input bit
.DPRA3(DPRA3), // Read-only address[3] input bit
.DPRA4(DPRA4), // Read-only address[4] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32X1D_1_inst instantiation
// RAM64X1D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64X1D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64X1D: 64 x 1 positive edge write, asynchronous read dual-port distributed RAM
// Virtex-II/II-Pro/5
// Xilinx HDL Language Template, version 10.1.2
RAM64X1D #(
.INIT(64'h0000000000000000) // Initial contents of RAM
) RAM64X1D_inst (
.DPO(DPO), // Read-only 1-bit data output
.SPO(SPO), // R/W 1-bit data output
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.A4(A4), // R/W address[4] input bit
.A5(A5), // R/W address[5] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read-only address[0] input bit
.DPRA1(DPRA1), // Read-only address[1] input bit
.DPRA2(DPRA2), // Read-only address[2] input bit
.DPRA3(DPRA3), // Read-only address[3] input bit
.DPRA4(DPRA4), // Read-only address[4] input bit
.DPRA5(DPRA5), // Read-only address[5] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM64X1D_inst instantiation
// RAM64X1D_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64X1D_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64X1D_1: 64 x 1 negative edge write, asynchronous read dual-port distributed RAM
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
RAM64X1D_1 #(
.INIT(64'h0000000000000000) // Initial contents of RAM
) RAM64X1D_1_inst (
.DPO(DPO), // Read-only 1-bit data output
.SPO(SPO), // R/W 1-bit data output
.A0(A0), // R/W address[0] input bit
.A1(A1), // R/W address[1] input bit
.A2(A2), // R/W address[2] input bit
.A3(A3), // R/W address[3] input bit
.A4(A4), // R/W address[4] input bit
.A5(A5), // R/W address[5] input bit
.D(D), // Write 1-bit data input
.DPRA0(DPRA0), // Read-only address[0] input bit
.DPRA1(DPRA1), // Read-only address[1] input bit
.DPRA2(DPRA2), // Read-only address[2] input bit
.DPRA3(DPRA3), // Read-only address[3] input bit
.DPRA4(DPRA4), // Read-only address[4] input bit
.DPRA5(DPRA5), // Read-only address[5] input bit
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM64X1D_1_inst instantiation
// RAM128X1D : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM128X1D_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : must be connected.
// <-----Cut code below this line---->
// RAM128X1D: 128-deep by 1-wide positive edge write, asynchronous read
// dual-port distributed LUT RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAM128X1D #(
.INIT(128'h00000000000000000000000000000000)
) RAM128X1D_inst (
.DPO(DPO), // Read port 1-bit output
.SPO(SPO), // Read/Write port 1-bit output
.A(A), // Read/Write port 7-bit address input
.D(D), // RAM data input
.DPRA(DPRA), // Read port 7-bit address input
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM128X1D_inst instantiation
// RAM32M : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM32M_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM32M: 32-deep by 8-wide Multi Port LUT RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAM32M #(
.INIT_A(64'h0000000000000000), // Initial contents of A Port
.INIT_B(64'h0000000000000000), // Initial contents of B Port
.INIT_C(64'h0000000000000000), // Initial contents of C Port
.INIT_D(64'h0000000000000000) // Initial contents of D Port
) RAM32M_inst (
.DOA(DOA), // Read port A 2-bit output
.DOB(DOB), // Read port B 2-bit output
.DOC(DOC), // Read port C 2-bit output
.DOD(DOD), // Read/Write port D 2-bit output
.ADDRA(ADDRA), // Read port A 5-bit address input
.ADDRB(ADDRB), // Read port B 5-bit address input
.ADDRC(ADDRC), // Read port C 5-bit address input
.ADDRD(ADDRD), // Read/Write port D 5-bit address input
.DIA(DIA), // RAM 2-bit data write input addressed by ADDRD,
// read addressed by ADDRA
.DIB(DIB), // RAM 2-bit data write input addressed by ADDRD,
// read addressed by ADDRB
.DIC(DIC), // RAM 2-bit data write input addressed by ADDRD,
// read addressed by ADDRC
.DID(DID), // RAM 2-bit data write input addressed by ADDRD,
// read addressed by ADDRD
.WCLK(WCLK), // Write clock input
.WE(WE) // Write enable input
);
// End of RAM32M_inst instantiation
// RAM64M : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAM64M_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAM64M: 64-deep by 4-wide Multi Port LUT RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAM64M #(
.INIT_A(64'h0000000000000000), // Initial contents of A Port
.INIT_B(64'h0000000000000000), // Initial contents of B Port
.INIT_C(64'h0000000000000000), // Initial contents of C Port
.INIT_D(64'h0000000000000000) // Initial contents of D Port
) RAM64M_inst (
.DOA(DOA), // Read port A 1-bit output
.DOB(DOB), // Read port B 1-bit output
.DOC(DOC), // Read port C 1-bit output
.DOD(DOD), // Read/Write port D 1-bit output
.DIA(DIA), // RAM 1-bit data write input addressed by ADDRD,
// read addressed by ADDRA
.DIB(DIB), // RAM 1-bit data write input addressed by ADDRD,
// read addressed by ADDRB
.DIC(DIC), // RAM 1-bit data write input addressed by ADDRD,
// read addressed by ADDRC
.DID(DID), // RAM 1-bit data write input addressed by ADDRD,
// read addressed by ADDRD
.ADDRA(ADDRA), // Read port A 6-bit address input
.ADDRB(ADDRB), // Read port B 6-bit address input
.ADDRC(ADDRC), // Read port C 6-bit address input
.ADDRD(ADDRD), // Read/Write port D 6-bit address input
.WE(WE), // Write enable input
.WCLK(WCLK) // Write clock input
);
// End of RAM64M_inst instantiation
// RAMB16_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1: Virtex-II/II-Pro, Spartan-3/3E 16kx1 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1 #(
.INIT(1'b0), // Value of output RAM registers at startup
.SRVAL(1'b0), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 4095
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 8191
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 8192 to 12287
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 12288 to 16383
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_inst (
.DO(DO), // 1-bit Data Output
.ADDR(ADDR), // 14-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 1-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S1_inst instantiation
// RAMB16_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S18: Virtex-II/II-Pro, Spartan-3/3E 1k x 16 + 2 Parity bits Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S18 #(
.INIT(18'h00000), // Value of output RAM registers at startup
.SRVAL(18'h000000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 255
.INIT_00(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_01(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_02(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_03(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_04(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_05(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_06(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_07(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_08(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_09(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 256 to 511
.INIT_10(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_11(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_12(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_13(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_14(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_15(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_16(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_17(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_18(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_19(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 512 to 767
.INIT_20(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_21(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_22(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_23(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_24(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_25(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_26(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_27(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_28(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_29(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 768 to 1023
.INIT_30(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_31(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_32(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_33(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_34(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_35(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_36(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_37(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_38(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_39(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S18_inst (
.DO(DO), // 16-bit Data Output
.DOP(DOP), // 2-bit parity Output
.ADDR(ADDR), // 10-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 16-bit Data Input
.DIP(DIP), // 2-bit parity Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S18_inst instantiation
// RAMB16_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2: Virtex-II/II-Pro, Spartan-3/3E 8k x 2 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2 #(
.INIT(2'b00), // Value of output RAM registers at startup
.SRVAL(2'b00), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 6143 to 8191
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_inst (
.DO(DO), // 2-bit Data Output
.ADDR(ADDR), // 13-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 2-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S2_inst instantiation
// RAMB16_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S36: Virtex-II/II-Pro, Spartan-3/3E 512 x 32 + 4 Parity bits Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S36 #(
.INIT(36'h000000000), // Value of output RAM registers at startup
.SRVAL(36'h000000000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 127
.INIT_00(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_01(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_02(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_03(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_04(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_05(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_06(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_07(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_08(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_09(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 128 to 255
.INIT_10(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_11(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_12(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_13(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_14(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_15(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_16(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_17(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_18(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_19(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 256 to 383
.INIT_20(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_21(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_22(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_23(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_24(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_25(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_26(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_27(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_28(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_29(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 384 to 511
.INIT_30(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_31(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_32(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_33(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_34(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_35(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_36(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_37(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_38(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_39(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S36_inst (
.DO(DO), // 32-bit Data Output
.DOP(DOP), // 4-bit parity Output
.ADDR(ADDR), // 9-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 32-bit Data Input
.DIP(DIP), // 4-bit parity Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S36_inst instantiation
// RAMB16_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4: Virtex-II/II-Pro, Spartan-3/3E 4k x 4 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4 #(
.INIT(4'h0), // Value of output RAM registers at startup
.SRVAL(4'h0), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_inst (
.DO(DO), // 4-bit Data Output
.ADDR(ADDR), // 12-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 4-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S4_inst instantiation
// RAMB16_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9: Virtex-II/II-Pro, Spartan-3/3E 2k x 8 + 1 Parity bit Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9 #(
.INIT(9'h000), // Value of output RAM registers at startup
.SRVAL(9'h000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 511
.INIT_00(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_01(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_02(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_03(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_04(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_05(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_06(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_07(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_08(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_09(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 512 to 1023
.INIT_10(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_11(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_12(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_13(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_14(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_15(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_16(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_17(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_18(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_19(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1024 to 1535
.INIT_20(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_21(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_22(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_23(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_24(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_25(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_26(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_27(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_28(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_29(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1536 to 2047
.INIT_30(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_31(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_32(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_33(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_34(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_35(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_36(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_37(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_38(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_39(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// The next set of INITP_xx are for the parity bits
// Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_inst (
.DO(DO), // 8-bit Data Output
.DOP(DOP), // 1-bit parity Output
.ADDR(ADDR), // 11-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 8-bit Data Input
.DIP(DIP), // 1-bit parity Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S9_inst instantiation
// RAMB16_S18_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S18_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S18_S18: Virtex-II/II-Pro, Spartan-3/3E 1k x 16 + 2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S18_S18 #(
.INIT_A(18'h00000), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(18'h00000), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 255
.INIT_00(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_01(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_02(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_03(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_04(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_05(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_06(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_07(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_08(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_09(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 256 to 511
.INIT_10(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_11(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_12(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_13(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_14(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_15(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_16(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_17(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_18(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_19(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 512 to 767
.INIT_20(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_21(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_22(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_23(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_24(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_25(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_26(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_27(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_28(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_29(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 768 to 1023
.INIT_30(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_31(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_32(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_33(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_34(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_35(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_36(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_37(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_38(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_39(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S18_S18_inst (
.DOA(DOA), // Port A 16-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPA(DOPA), // Port A 2-bit Parity Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 10-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 16-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPA(DIPA), // Port A 2-bit parity Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S18_S18_inst instantiation
// RAMB16_S1_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S1: Virtex-II/II-Pro, Spartan-3/3E 16k x 1 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S1 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(1'b0), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(1'b0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 4095
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 8191
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 8192 to 12287
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 12288 to 16383
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S1_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 1-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 14-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 1-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S1_inst instantiation
// RAMB16_S2_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S2: Virtex-II/II-Pro, Spartan-3/3E 8k x 2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S2 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(2'b00), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(2'b00), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 6143 to 8191
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S2_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 2-bit Data Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 13-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 2-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S2_inst instantiation
// RAMB16_S36_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S36_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S36_S36: Virtex-II/II-Pro, Spartan-3/3E 512 x 32 + 4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S36_S36 #(
.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(36'h000000000), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 127
.INIT_00(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_01(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_02(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_03(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_04(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_05(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_06(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_07(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_08(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_09(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 128 to 255
.INIT_10(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_11(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_12(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_13(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_14(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_15(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_16(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_17(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_18(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_19(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 256 to 383
.INIT_20(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_21(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_22(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_23(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_24(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_25(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_26(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_27(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_28(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_29(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 384 to 511
.INIT_30(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_31(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_32(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_33(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_34(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_35(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_36(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_37(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_38(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_39(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S36_S36_inst (
.DOA(DOA), // Port A 32-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPA(DOPA), // Port A 4-bit Parity Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 9-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 32-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPA(DIPA), // Port A 4-bit parity Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S36_S36_inst instantiation
// RAMB16_S4_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S4: Virtex-II/II-Pro, Spartan-3/3E 4k x 4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S4 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S4_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S4_inst instantiation
// RAMB16_S9_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9_S9: Virtex-II/II-Pro, Spartan-3/3E 2k x 8 + 1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9_S9 #(
.INIT_A(9'h000), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(9'h000), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 511
.INIT_00(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_01(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_02(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_03(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_04(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_05(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_06(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_07(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_08(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_09(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 512 to 1023
.INIT_10(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_11(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_12(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_13(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_14(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_15(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_16(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_17(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_18(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_19(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1024 to 1535
.INIT_20(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_21(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_22(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_23(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_24(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_25(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_26(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_27(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_28(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_29(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1536 to 2047
.INIT_30(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_31(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_32(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_33(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_34(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_35(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_36(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_37(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_38(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_39(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// The next set of INITP_xx are for the parity bits
// Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_S9_inst (
.DOA(DOA), // Port A 8-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPA(DOPA), // Port A 1-bit Parity Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 11-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 8-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPA(DIPA), // Port A 1-bit parity Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S9_S9_inst instantiation
// RAMB16_S18_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S18_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S18_S36: Virtex-II/II-Pro, Spartan-3/3E 1k/512 x 16/32 + 2/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S18_S36 #(
.INIT_A(18'h00000), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(18'h00000), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 255, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 255, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S18_S36_inst (
.DOA(DOA), // Port A 16-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPA(DOPA), // Port A 2-bit Parity Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 10-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 16-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPA(DIPA), // Port A 2-bit parity Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S18_S36_inst instantiation
// RAMB16_S1_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S18: Virtex-II/II-Pro, Spartan-3/3E 16k/1k x 1/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S18 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S18_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S18_inst instantiation
// RAMB16_S1_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S2: Virtex-II/II-Pro, Spartan-3/3E 16k/8k x 1/2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S2 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(2'b00), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(2'b00), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 4095 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 6144 to 8091
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S2_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 2-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 13-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 2-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S2_inst instantiation
// RAMB16_S1_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S36: Virtex-II/II-Pro, Spartan-3/3E 16k/512 x 1/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S36 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 384 to 512
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 384 to 512
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S36_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S36_inst instantiation
// RAMB16_S1_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S4: Virtex-II/II-Pro, Spartan-3/3E 16k/4k x 1/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S4 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S4_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S4_inst instantiation
// RAMB16_S1_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S9: Virtex-II/II-Pro, Spartan-3/3E 16k/2k x 1/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S9 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 1535 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1535 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S9_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S9_inst instantiation
// RAMB16_S2_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S36: Virtex-II/II-Pro, Spartan-3/3E 8k/512 x 2/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S36 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S36_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S36_inst instantiation
// RAMB16_S2_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S4: Virtex-II/II-Pro, Spartan-3/3E 8k/4k x 2/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S4 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S4_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S4_inst instantiation
// RAMB16_S2_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S9: Virtex-II/II-Pro, Spartan-3/3E 8k/2k x 2/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S9 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 1536 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S9_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S9_inst instantiation
// RAMB16_S2_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S18: Virtex-II/II-Pro, Spartan-3/3E 8k/1k x 2/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S18 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S18_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S18_inst instantiation
// RAMB16_S4_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S18: Virtex-II/II-Pro, Spartan-3/3E 4k/1k x 4/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S18 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 1023, Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S18_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S18_inst instantiation
// RAMB16_S4_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S36: Virtex-II/II-Pro, Spartan-3/3E 4k/512 x 4/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S36 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 1023, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S36_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S36_inst instantiation
// RAMB16_S4_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S9: Virtex-II/II-Pro, Spartan-3/3E 4k/2k x 4/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S9 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 1536 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S9_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S9_inst instantiation
// RAMB16_S9_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9_S18: Virtex-II/II-Pro, Spartan-3/3E 2k/1k x 8/16 + 1/2 Parity bits Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9_S18 #(
.INIT_A(9'h000), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(9'h000), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 511, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 1023, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 1535, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1536 to 2047, Port B Address 768 to 1024
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 511, Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 1023, Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 1535, Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1536 to 2047, Port B Address 768 to 1024
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_S18_inst (
.DOA(DOA), // Port A 8-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPA(DOPA), // Port A 1-bit Parity Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 11-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 8-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPA(DIPA), // Port A 1-bit parity Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S9_S18_inst instantiation
// RAMB16_S9_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9_S36: Virtex-II/II-Pro, Spartan-3/3E 2k/512 x 8/32 + 1/4 Parity bits Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9_S36 #(
.INIT_A(9'h000), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(9'h000), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 511, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 1023, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 1535, Port B Address 255 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1536 to 2047, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 511, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 1023, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 1535, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1536 to 2047, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_S36_inst (
.DOA(DOA), // Port A 8-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPA(DOPA), // Port A 1-bit Parity Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 11-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 8-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPA(DIPA), // Port A 1-bit parity Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S9_S36_inst instantiation
// RAMB16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16: Virtex-4 16k+2k Parity Paramatizable BlockRAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16 #(
.DOA_REG(0), // Optional output registers on A port (0 or 1)
.DOB_REG(0), // Optional output registers on B port (0 or 1)
.INIT_A(36'h000000000), // Initial values on A output port
.INIT_B(36'h000000000), // Initial values on B output port
.INVERT_CLK_DOA_REG("FALSE"), // Invert clock on A port output registers ("TRUE" or "FALSE")
.INVERT_CLK_DOB_REG("FALSE"), // Invert clock on A port output registers ("TRUE" or "FALSE")
.RAM_EXTENSION_A("NONE"), // "UPPER", "LOWER" or "NONE" when cascaded
.RAM_EXTENSION_B("NONE"), // "UPPER", "LOWER" or "NONE" when cascaded
.READ_WIDTH_A(0), // Valid values are 1, 2, 4, 9, 18, or 36
.READ_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18, or 36
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(36'h000000000), // Set/Reset value for A port output
.SRVAL_B(36'h000000000), // Set/Reset value for B port output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_WIDTH_A(2), // Valid values are 1, 2, 4, 9, 18, or 36
.WRITE_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18, or 36
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_inst (
.CASCADEOUTA(CASCADEOUTA), // 1-bit cascade output
.CASCADEOUTB(CASCADEOUTB), // 1-bit cascade output
.DOA(DOA), // 32-bit A port data output
.DOB(DOB), // 32-bit B port data output
.DOPA(DOPA), // 4-bit A port parity data output
.DOPB(DOPB), // 4-bit B port parity data output
.ADDRA(ADDRA), // 15-bit A port address input
.ADDRB(ADDRB), // 15-bit B port address input
.CASCADEINA(CASCADEINA), // 1-bit cascade A input
.CASCADEINB(CASCADEINB), // 1-bit cascade B input
.CLKA(CLKA), // 1-bit A port clock input
.CLKB(CLKB), // 1-bit B port clock input
.DIA(DIA), // 32-bit A port data input
.DIB(DIB), // 32-bit B port data input
.DIPA(DIPA), // 4-bit A port parity data input
.DIPB(DIPB), // 4-bit B port parity data input
.ENA(ENA), // 1-bit A port enable input
.ENB(ENB), // 1-bit B port enable input
.REGCEA(REGCEA), // 1-bit A port register enable input
.REGCEB(REGCEB), // 1-bit B port register enable input
.SSRA(SSRA), // 1-bit A port set/reset input
.SSRB(SSRB), // 1-bit B port set/reset input
.WEA(WEA), // 4-bit A port write enable input
.WEB(WEB) // 4-bit B port write enable input
);
// End of RAMB16_inst instantiation
// FIFO16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO16_512x36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO16: Virtex-4 BlockRAM Asynchronous FIFO configured for 512 deep x 36 wide
// Xilinx HDL Language Template, version 10.1.2
FIFO16 #(
.ALMOST_FULL_OFFSET(12'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(12'h080), // Sets the almost empty threshold
.DATA_WIDTH(36), // Sets data width to 4, 9, 18, or 36
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO16_512x36_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO(DO), // 32-bit data output
.DOP(DOP), // 4-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 12-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 12-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI(DI), // 32-bit data input
.DIP(DIP), // 4-bit parity input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO16_512x36_inst instantiation
// FIFO16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO16_1kx18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO16: Virtex-4 BlockRAM Asynchronous FIFO configured for 1k deep x 18 wide
// Xilinx HDL Language Template, version 10.1.2
wire [17:0] unconnected;
FIFO16 #(
.ALMOST_FULL_OFFSET(12'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(12'h080), // Sets the almost empty threshold
.DATA_WIDTH(18), // Sets data width to 4, 9, 18, or 36
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO16_1kx18_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO({unconnected[15:0], DO}), // 16-bit data output
.DOP({unconnected[17:16], DOP}), // 2-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 12-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 12-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI({16'h0000, DI}), // 16-bit data input (rest tied to ground)
.DIP({2'b00, DIP}), // 2-bit parity input (rest tied to ground)
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO16_1kx18_inst instantiation
// FIFO16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO16_2kx9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO16: Virtex-4 BlockRAM Asynchronous FIFO configured for 2k deep x 9 wide
// Xilinx HDL Language Template, version 10.1.2
wire [26:0] unconnected;
FIFO16 #(
.ALMOST_FULL_OFFSET(12'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(12'h080), // Sets the almost empty threshold
.DATA_WIDTH(9), // Sets data width to 4, 9, 18, or 36
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO16_2kx9_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO({unconnected[23:0], DO}), // 8-bit data output
.DOP({unconnected[26:24], DOP}), // 1-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 12-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 12-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI({24'h000000, DI}), // 8-bit data input (rest tied to ground)
.DIP({3'b000, DIP}), // 1-bit parity input (rest tied to ground)
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO16_2kx9_inst instantiation
// FIFO16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO16_4kx4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO16: Virtex-4 BlockRAM Asynchronous FIFO configured for 4k deep x 4 wide
// Xilinx HDL Language Template, version 10.1.2
wire [27:0] unconnected;
FIFO16 #(
.ALMOST_FULL_OFFSET(12'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(12'h080), // Sets the almost empty threshold
.DATA_WIDTH(4), // Sets data width to 4, 9, 18, or 36
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO16_4kx4_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO({unconnected[27:0], DO}), // 4-bit data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 12-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 12-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI({28'h0000000, DI}), // 4-bit data input (rest tied to ground)
.DIP(4'h0), // Parity bits tied to Ground
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO16_4kx4_inst instantiation
// RAMB32_S64_ECC: In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB32_S64_ECC_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB32_S64_ECC: Virtex-4 512 x 64 Error Correction BlockRAM
// Xilinx HDL Language Template, version 10.1.2
RAMB32_S64_ECC #(
.DO_REG(0), // Optional output registers (0 or 1)
.SIM_COLLISION_CHECK("ALL") // Collision check enable "ALL",
//"WARNING_ONLY", "GENERATE_X_ONLY"
) RAMB32_S64_ECC_inst (
.DO(DO), // 64-bit output data
.STATUS(STATUS), // 2-bit status output
.DI(DI), // 64-bit data input
.RDADDR(RDADDR), // 9-bit data address input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.SSR(1'b0), // Always tie to ground
.WRADDR(WRADDR), // 9-bit write address input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of RAMB32_S64_ECC_inst instantiation
// RAMB4_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1: Virtex/E, Spartan-II/IIE 4k x 1 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1 #(
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_inst (
.DO(DO), // 1-bit data output
.ADDR(ADDR), // 12-bit address input
.CLK(CLK), // Clock input
.DI(DI), // 1-bit data input
.EN(EN), // RAM enable input
.RST(RST), // Synchronous reset input
.WE(WE) // RAM write enable input
);
// End of RAMB4_S1_inst instantiation
// RAMB4_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S16_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S16: Virtex/E, Spartan-II/IIE 256 x 16 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S16 #(
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S16_inst (
.DO(DO), // 16-bit data output
.ADDR(ADDR), // 8-bit address input
.CLK(CLK), // Clock input
.DI(DI), // 16-bit data input
.EN(EN), // RAM enable input
.RST(RST), // Synchronous reset input
.WE(WE) // RAM write enable input
);
// End of RAMB4_S16_inst instantiation
// RAMB4_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S2: Virtex/E, Spartan-II/IIE 2k x 2 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S2 #(
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S2_inst (
.DO(DO), // 2-bit data output
.ADDR(ADDR), // 11-bit address input
.CLK(CLK), // Clock input
.DI(DI), // 2-bit data input
.EN(EN), // RAM enable input
.RST(RST), // Synchronous reset input
.WE(WE) // RAM write enable input
);
// End of RAMB4_S2_inst instantiation
// RAMB4_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S4: Virtex/E, Spartan-II/IIE 1k x 4 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S4 #(
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S4_inst (
.DO(DO), // 4-bit data output
.ADDR(ADDR), // 10-bit address input
.CLK(CLK), // Clock input
.DI(DI), // 4-bit data input
.EN(EN), // RAM enable input
.RST(RST), // Synchronous reset input
.WE(WE) // RAM write enable input
);
// End of RAMB4_S4_inst instantiation
// RAMB4_S8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S8_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S8: Virtex/E, Spartan-II/IIE 512 x 8 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S8 #(
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S8_inst (
.DO(DO), // 8-bit data output
.ADDR(ADDR), // 9-bit address input
.CLK(CLK), // Clock input
.DI(DI), // 8-bit data input
.EN(EN), // RAM enable input
.RST(RST), // Synchronous reset input
.WE(WE) // RAM write enable input
);
// End of RAMB4_S8_inst instantiation
// RAMB4_S1_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S1_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S1: Virtex/E, Spartan-II/IIE 4k x 1 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S1 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S1_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 1-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 12-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 1-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S1_inst instantiation
// RAMB4_S2_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S2_S2_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S2_S2: Virtex/E, Spartan-II/IIE 2k x 2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S2_S2 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S2_S2_inst (
.DOA(DOA), // Port A 2-bit data output
.DOB(DOB), // Port B 2-bit data output
.ADDRA(ADDRA), // Port A 11-bit address input
.ADDRB(ADDRB), // Port B 11-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 2-bit data input
.DIB(DIB), // Port B 2-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S2_S2_inst instantiation
// RAMB4_S4_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S4_S4_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S4_S4: Virtex/E, Spartan-II/IIE 1k x 4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S4_S4 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S4_S4_inst (
.DOA(DOA), // Port A 4-bit data output
.DOB(DOB), // Port B 4-bit data output
.ADDRA(ADDRA), // Port A 10-bit address input
.ADDRB(ADDRB), // Port B 10-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 4-bit data input
.DIB(DIB), // Port B 4-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S4_S4_inst instantiation
// RAMB4_S8_S8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S8_S8_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S8_S8: Virtex/E, Spartan-II/IIE 512 x 8 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S8_S8 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S8_S8_inst (
.DOA(DOA), // Port A 8-bit data output
.DOB(DOB), // Port B 8-bit data output
.ADDRA(ADDRA), // Port A 9-bit address input
.ADDRB(ADDRB), // Port B 9-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 8-bit data input
.DIB(DIB), // Port B 8-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S8_S8_inst instantiation
// RAMB4_S16_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S16_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S16_S16: Virtex/E, Spartan-II/IIE 256 x 16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S16_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S16_S16_inst (
.DOA(DOA), // Port A 16-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 8-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 16-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S16_S16_inst instantiation
// RAMB4_S1_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S16: Virtex/E, Spartan-II/IIE 4k/256 x 1/16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S16_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S16_inst instantiation
// RAMB4_S1_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S16: Virtex/E, Spartan-II/IIE 4k/256 x 1/16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S16_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S16_inst instantiation
// RAMB4_S1_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S2_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S2: Virtex/E, Spartan-II/IIE 4k/2k x 1/2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S2 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S2_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 2-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 11-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 2-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S2_inst instantiation
// RAMB4_S1_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S4_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S4: Virtex/E, Spartan-II/IIE 4k/1k x 1/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S4 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S4_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 4-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 10-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 4-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S4_inst instantiation
// RAMB4_S1_S8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S1_S8_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S1_S8: Virtex/E, Spartan-II/IIE 4k/512 x 1/8 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S1_S8 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S1_S8_inst (
.DOA(DOA), // Port A 1-bit data output
.DOB(DOB), // Port B 8-bit data output
.ADDRA(ADDRA), // Port A 12-bit address input
.ADDRB(ADDRB), // Port B 9-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 1-bit data input
.DIB(DIB), // Port B 8-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S1_S8_inst instantiation
// RAMB4_S2_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S2_S4_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S2_S4: Virtex/E, Spartan-II/IIE 2k/1k x 2/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S2_S4 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S2_S4_inst (
.DOA(DOA), // Port A 2-bit data output
.DOB(DOB), // Port B 4-bit data output
.ADDRA(ADDRA), // Port A 11-bit address input
.ADDRB(ADDRB), // Port B 10-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 2-bit data input
.DIB(DIB), // Port B 4-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S2_S4_inst instantiation
// RAMB4_S2_S8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S2_S8_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S2_S8: Virtex/E, Spartan-II/IIE 2k/512 x 2/8 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S2_S8 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S2_S8_inst (
.DOA(DOA), // Port A 2-bit data output
.DOB(DOB), // Port B 8-bit data output
.ADDRA(ADDRA), // Port A 11-bit address input
.ADDRB(ADDRB), // Port B 9-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 2-bit data input
.DIB(DIB), // Port B 8-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S2_S8_inst instantiation
// RAMB4_S2_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S2_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S2_S16: Virtex/E, Spartan-II/IIE 2k/256 x 2/16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S2_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S2_S16_inst (
.DOA(DOA), // Port A 2-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 11-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 2-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S2_S16_inst instantiation
// RAMB4_S4_S8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S4_S8_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S4_S8: Virtex/E, Spartan-II/IIE 1k/512 x 4/8 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S4_S8 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S4_S8_inst (
.DOA(DOA), // Port A 4-bit data output
.DOB(DOB), // Port B 8-bit data output
.ADDRA(ADDRA), // Port A 10-bit address input
.ADDRB(ADDRB), // Port B 9-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 4-bit data input
.DIB(DIB), // Port B 8-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S4_S8_inst instantiation
// RAMB4_S4_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S4_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S4_S16: Virtex/E, Spartan-II/IIE 1k/256 x 4/16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S4_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S4_S16_inst (
.DOA(DOA), // Port A 4-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 10-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 4-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S4_S16_inst instantiation
// RAMB4_S8_S16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB4_S8_S16_inst) and/or the port declarations within
// code : the parenthesis may be changed to properly reference
// : and connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB4_S8_S16: Virtex/E, Spartan-II/IIE 512/256 x 8/16 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB4_S8_S16 #(
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB4_S8_S16_inst (
.DOA(DOA), // Port A 8-bit data output
.DOB(DOB), // Port B 16-bit data output
.ADDRA(ADDRA), // Port A 9-bit address input
.ADDRB(ADDRB), // Port B 8-bit address input
.CLKA(CLKA), // Port A clock input
.CLKB(CLKB), // Port B clock input
.DIA(DIA), // Port A 8-bit data input
.DIB(DIB), // Port B 16-bit data input
.ENA(ENA), // Port A RAM enable input
.ENB(ENB), // Port B RAM enable input
.RSTA(RSTA), // Port A Synchronous reset input
.RSTB(RSTB), // Port B Synchronous reset input
.WEA(WEA), // Port A RAM write enable input
.WEB(WEB) // Port B RAM write enable input
);
// End of RAMB4_S8_S16_inst instantiation
// RAMB36SDP : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB36SDP_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB36SDP: 72x512 Simple Dual-Port BlockRAM /w ECC
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAMB36SDP #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.DO_REG(0), // Optional output register (0 or 1)
.EN_ECC_READ("FALSE"), // Enable ECC decoder, "TRUE" or "FALSE"
.EN_ECC_WRITE("FALSE"), // Enable ECC encoder, "TRUE" or "FALSE"
.INIT(72'h000000000000000000), // Initial values on output port
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL(72'h000000000000000000), // Set/Reset value for port output
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_01(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_02(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_03(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_04(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_05(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_06(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_07(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_08(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_09(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_0F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_10(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_11(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_12(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_13(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_14(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_15(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_16(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_17(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_18(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_19(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_1F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_20(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_21(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_22(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_23(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_24(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_25(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_26(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_27(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_28(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_29(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_2F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_30(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_31(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_32(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_33(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_34(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_35(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_36(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_37(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_38(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_39(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_3F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_40(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_41(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_42(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_43(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_44(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_45(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_46(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_47(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_48(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_49(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_4F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_50(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_51(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_52(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_53(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_54(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_55(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_56(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_57(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_58(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_59(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_5F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_60(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_61(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_62(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_63(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_64(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_65(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_66(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_67(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_68(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_69(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_6F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_70(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_71(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_72(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_73(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_74(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_75(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_76(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_77(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_78(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_79(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7A(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7B(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7C(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7D(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7E(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
.INIT_7F(256'h0000000000000000_0000000000000000_0000000000000000_0000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_01(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_02(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_03(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_04(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_05(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_06(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_07(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_08(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_09(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INITP_0F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00)
) RAMB36SDP_inst (
.DBITERR(DBITERR), // 1-bit double bit error status output
.SBITERR(SBITERR), // 1-bit single bit error status output
.DO(DO), // 64-bit data output
.DOP(DOP), // 8-bit parity data output
.ECCPARITY(ECCPARITY), // 8-bit generated error correction parity
.RDCLK(RDCLK), // 1-bit read port clock
.RDEN(RDEN), // 1-bit read port enable
.REGCE(REGCE), // 1-bit register enable input
.SSR(SSR), // 1-bit synchronous output set/reset input
.WRCLK(WRCLK), // 1-bit write port clock
.WREN(WREN), // 1-bit write port enable
.WRADDR(WRADDR), // 9-bit write port address input
.RDADDR(RDADDR), // 9-bit read port address input
.DI(DI), // 64-bit data input
.DIP(DIP), // 8-bit parity data input
.WE(WE) // 8-bit write enable input
);
// End of RAMB36SDP_inst instantiation
// RAMB36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB36: 32k+4k Parity Paramatizable True Dual-Port BlockRAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAMB36 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.DOA_REG(0), // Optional output registers on A port (0 or 1)
.DOB_REG(0), // Optional output registers on B port (0 or 1)
.INIT_A(36'h000000000), // Initial values on A output port
.INIT_B(36'h000000000), // Initial values on B output port
.RAM_EXTENSION_A("NONE"), // "UPPER", "LOWER" or "NONE" when cascaded
.RAM_EXTENSION_B("NONE"), // "UPPER", "LOWER" or "NONE" when cascaded
.READ_WIDTH_A(0), // Valid values are 1, 2, 4, 9, 18, or 36
.READ_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18, or 36
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(36'h000000000), // Set/Reset value for A port output
.SRVAL_B(36'h000000000), // Set/Reset value for B port output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_WIDTH_A(0), // Valid values are 1, 2, 4, 9, 18, or 36
.WRITE_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18, or 36
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_40(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_41(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_42(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_43(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_44(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_45(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_46(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_47(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_48(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_49(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_50(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_51(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_52(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_53(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_54(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_55(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_56(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_57(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_58(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_59(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_60(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_61(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_62(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_63(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_64(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_65(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_66(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_67(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_68(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_69(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_70(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_71(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_72(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_73(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_74(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_75(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_76(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_77(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_78(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_79(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB36_inst (
.CASCADEOUTLATA(CASCADEOUTLATA), // 1-bit cascade A latch output
.CASCADEOUTLATB(CASCADEOUTLATB), // 1-bit cascade B latch output
.CASCADEOUTREGA(CASCADEOUTREGA), // 1-bit cascade A register output
.CASCADEOUTREGB(CASCADEOUTREGB), // 1-bit cascade B register output
.DOA(DOA), // 32-bit A port data output
.DOB(DOB), // 32-bit B port data output
.DOPA(DOPA), // 4-bit A port parity data output
.DOPB(DOPB), // 4-bit B port parity data output
.ADDRA(ADDRA), // 16-bit A port address input
.ADDRB(ADDRB), // 16-bit B port address input
.CASCADEINLATA(CASCADEINLATA), // 1-bit cascade A latch input
.CASCADEINLATB(CASCADEINLATB), // 1-bit cascade B latch input
.CASCADEINREGA(CASCADEINREGA), // 1-bit cascade A register input
.CASCADEINREGB(CASCADEINREGB), // 1-bit cascade B register input
.CLKA(CLKA), // 1-bit A port clock input
.CLKB(CLKB), // 1-bit B port clock input
.DIA(DIA), // 32-bit A port data input
.DIB(DIB), // 32-bit B port data input
.DIPA(DIPA), // 4-bit A port parity data input
.DIPB(DIPB), // 4-bit B port parity data input
.ENA(ENA), // 1-bit A port enable input
.ENB(ENB), // 1-bit B port enable input
.REGCEA(REGCEA), // 1-bit A port register enable input
.REGCEB(REGCEB), // 1-bit B port register enable input
.SSRA(SSRA), // 1-bit A port set/reset input
.SSRB(SSRB), // 1-bit B port set/reset input
.WEA(WEA), // 4-bit A port write enable input
.WEB(WEB) // 4-bit B port write enable input
);
// End of RAMB36_inst instantiation
// RAMB18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB18: 16k+2k Parity Paramatizable True Dual-Port BlockRAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAMB18 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.DOA_REG(0), // Optional output registers on A port (0 or 1)
.DOB_REG(0), // Optional output registers on B port (0 or 1)
.INIT_A(18'h00000), // Initial values on A output port
.INIT_B(18'h00000), // Initial values on B output port
.READ_WIDTH_A(0), // Valid values are 1, 2, 4, 9 or 18
.READ_WIDTH_B(0), // Valid values are 1, 2, 4, 9 or 18
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(18'h00000), // Set/Reset value for A port output
.SRVAL_B(18'h00000), // Set/Reset value for B port output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_WIDTH_A(0), // Valid values are 1, 2, 4, 9 or 18
.WRITE_WIDTH_B(0), // Valid values are 1, 2, 4, 9 or 18
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB18_inst (
.DOA(DOA), // 16-bit A port data output
.DOB(DOB), // 16-bit B port data output
.DOPA(DOPA), // 2-bit A port parity data output
.DOPB(DOPB), // 2-bit B port parity data output
.ADDRA(ADDRA), // 14-bit A port address input
.ADDRB(ADDRB), // 14-bit B port address input
.CLKA(CLKA), // 1-bit A port clock input
.CLKB(CLKB), // 1-bit B port clock input
.DIA(DIA), // 16-bit A port data input
.DIB(DIB), // 16-bit B port data input
.DIPA(DIPA), // 2-bit A port parity data input
.DIPB(DIPB), // 2-bit B port parity data input
.ENA(ENA), // 1-bit A port enable input
.ENB(ENB), // 1-bit B port enable input
.REGCEA(REGCEA), // 1-bit A port register enable input
.REGCEB(REGCEB), // 1-bit B port register enable input
.SSRA(SSRA), // 1-bit A port set/reset input
.SSRB(SSRB), // 1-bit B port set/reset input
.WEA(WEA), // 2-bit A port write enable input
.WEB(WEB) // 2-bit B port write enable input
);
// End of RAMB18_inst instantiation
// RAMB18SDP : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB18SDP_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB18SDP: 36x512 Simple Dual-Port BlockRAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
RAMB18SDP #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.DO_REG(0), // Optional output register (0 or 1)
.INIT(36'h000000000), // Initial values on output port
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL(36'h000000000), // Set/Reset value for port output
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_01(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_02(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_03(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_04(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_05(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_06(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_07(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_08(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_09(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_10(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_11(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_12(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_13(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_14(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_15(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_16(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_17(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_18(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_19(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_20(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_21(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_22(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_23(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_24(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_25(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_26(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_27(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_28(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_29(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_30(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_31(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_32(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_33(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_34(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_35(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_36(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_37(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_38(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_39(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB18SDP_inst (
.DO(DO), // 32-bit data output
.DOP(DOP), // 4-bit parity data output
.RDCLK(RDCLK), // 1-bit read port clock
.RDEN(RDEN), // 1-bit read port enable
.REGCE(REGCE), // 1-bit register enable input
.SSR(SSR), // 1-bit synchronous output set/reset input
.WRCLK(WRCLK), // 1-bit write port clock
.WREN(WREN), // 1-bit write port enable
.WRADDR(WRADDR), // 9-bit write port address input
.RDADDR(RDADDR), // 9-bit read port address input
.DI(DI), // 32-bit data input
.DIP(DIP), // 4-bit parity data input
.WE(WE) // 4-bit write enable input
);
// End of RAMB18SDP_inst instantiation
// FIFO18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO18: 16k+2k Parity Synchronous/Asynchronous BlockRAM FIFO
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO18 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.ALMOST_FULL_OFFSET(12'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(12'h080), // Sets the almost empty threshold
.DATA_WIDTH(4), // Sets data width to 4, 9 or 18
.DO_REG(1), // Enable output register (0 or 1)
// Must be 1 if EN_SYN = "FALSE"
.EN_SYN("FALSE"), // Specifies FIFO as Asynchronous ("FALSE")
// or Synchronous ("TRUE")
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO18_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO(DO), // 16-bit data output
.DOP(DOP), // 2-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 12-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 12-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI(DI), // 16-bit data input
.DIP(DIP), // 2-bit parity input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO18_inst instantiation
// FIFO18_36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO18_36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO18_36: 36x18k Synchronous/Asynchronous BlockRAM FIFO
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO18_36 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.ALMOST_FULL_OFFSET(9'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(9'h080), // Sets the almost empty threshold
.DO_REG(1), // Enable output register (0 or 1)
// Must be 1 if EN_SYN = "FALSE"
.EN_SYN("FALSE"), // Specifies FIFO as Asynchronous ("FALSE")
// or Synchronous ("TRUE")
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO18_36_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO(DO), // 32-bit data output
.DOP(DOP), // 4-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 9-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 9-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI(DI), // 32-bit data input
.DIP(DIP), // 4-bit parity input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO18_36_inst instantiation
// FIFO36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO36: 32k+4k Parity Synchronous/Asynchronous BlockRAM FIFO
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO36 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.ALMOST_FULL_OFFSET(13'h0080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(13'h0080), // Sets the almost empty threshold
.DATA_WIDTH(4), // Sets data width to 4, 9, 18 or 36
.DO_REG(1), // Enable output register (0 or 1)
// Must be 1 if EN_SYN = "FALSE"
.EN_SYN("FALSE"), // Specifies FIFO as Asynchronous ("FALSE")
// or Synchronous ("TRUE")
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO36_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DO(DO), // 32-bit data output
.DOP(DOP), // 4-bit parity data output
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 13-bit read count output
.RDERR(RDERR), // 1-bit read error output
.WRCOUNT(WRCOUNT), // 13-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI(DI), // 32-bit data input
.DIP(DIP), // 4-bit parity input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO36_inst instantiation
// FIFO36_72 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO36_72_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO36_72: 72x36k Synchronous/Asynchronous BlockRAM FIFO /w ECC
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO36_72 #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.ALMOST_FULL_OFFSET(9'h080), // Sets almost full threshold
.ALMOST_EMPTY_OFFSET(9'h080), // Sets the almost empty threshold
.DO_REG(1), // Enable output register (0 or 1)
// Must be 1 if EN_SYN = "FALSE"
.EN_ECC_READ("FALSE"), // Enable ECC decoder, "TRUE" or "FALSE"
.EN_ECC_WRITE("FALSE"), // Enable ECC encoder, "TRUE" or "FALSE"
.EN_SYN("FALSE"), // Specifies FIFO as Asynchronous ("FALSE")
// or Synchronous ("TRUE")
.FIRST_WORD_FALL_THROUGH("FALSE") // Sets the FIFO FWFT to "TRUE" or "FALSE"
) FIFO36_72_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // 1-bit almost empty output flag
.ALMOSTFULL(ALMOSTFULL), // 1-bit almost full output flag
.DBITERR(DBITERR), // 1-bit double bit error status output
.DO(DO), // 64-bit data output
.DOP(DOP), // 4-bit parity data output
.ECCPARITY(ECCPARITY), // 8-bit generated error correction parity
.EMPTY(EMPTY), // 1-bit empty output flag
.FULL(FULL), // 1-bit full output flag
.RDCOUNT(RDCOUNT), // 9-bit read count output
.RDERR(RDERR), // 1-bit read error output
.SBITERR(SBITERR), // 1-bit single bit error status output
.WRCOUNT(WRCOUNT), // 9-bit write count output
.WRERR(WRERR), // 1-bit write error
.DI(DI), // 64-bit data input
.DIP(DIP), // 4-bit parity input
.RDCLK(RDCLK), // 1-bit read clock input
.RDEN(RDEN), // 1-bit read enable input
.RST(RST), // 1-bit reset input
.WRCLK(WRCLK), // 1-bit write clock input
.WREN(WREN) // 1-bit write enable input
);
// End of FIFO36_72_inst instantiation
// RAMB16BWE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE: 16k+2k Parity Paramatizable, byte-wide enable BlockRAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE #(
.DATA_WIDTH_A(0), // Valid values are 1, 2, 4, 9, 18, or 36
.DATA_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18, or 36
.INIT_A(36'h000000000), // Initial values on A output port
.INIT_B(36'h000000000), // Initial values on B output port
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(36'h000000000), // Set/Reset value for A port output
.SRVAL_B(36'h000000000), // Set/Reset value for B port output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_inst (
.DOA(DOA), // 32-bit A port data output
.DOB(DOB), // 32-bit B port data output
.DOPA(DOPA), // 4-bit A port parity data output
.DOPB(DOPB), // 4-bit B port parity data output
.ADDRA(ADDRA), // 14-bit A port address input
.ADDRB(ADDRB), // 14-bit B port address input
.CLKA(CLKA), // 1-bit A port clock input
.CLKB(CLKB), // 1-bit B port clock input
.DIA(DIA), // 32-bit A port data input
.DIB(DIB), // 32-bit B port data input
.DIPA(DIPA), // 4-bit A port parity data input
.DIPB(DIPB), // 4-bit B port parity data input
.ENA(ENA), // 1-bit A port enable input
.ENB(ENB), // 1-bit B port enable input
.SSRA(SSRA), // 1-bit A port set/reset input
.SSRB(SSRB), // 1-bit B port set/reset input
.WEA(WEA), // 4-bit A port write enable input
.WEB(WEB) // 4-bit B port write enable input
);
// End of RAMB16BWE_inst instantiation
// RAMB16BWE_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S18: 1k x 16 + 2 Parity bits Single-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S18 #(
.INIT(18'h00000), // Value of output RAM registers at startup
.SRVAL(18'h00000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 255
.INIT_00(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_01(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_02(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_03(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_04(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_05(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_06(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_07(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_08(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_09(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 256 to 511
.INIT_10(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_11(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_12(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_13(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_14(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_15(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_16(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_17(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_18(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_19(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 512 to 767
.INIT_20(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_21(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_22(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_23(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_24(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_25(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_26(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_27(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_28(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_29(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 768 to 1023
.INIT_30(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_31(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_32(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_33(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_34(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_35(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_36(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_37(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_38(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_39(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S18_inst (
.DO(DO), // 16-bit Data Output
.DOP(DOP), // 2-bit Data Parity Output
.ADDR(ADDR), // 10-bit Address Input
.CLK(CLK), // 1-bit Clock
.DI(DI), // 16-bit Data Input
.DIP(DIP), // 2-bit parity Input
.EN(EN), // 1-bit RAM Enable Input
.SSR(SSR), // 1-bit Synchronous Set/Reset Input
.WE(WE) // 2-bit Write Enable Input
);
// End of RAMB16BWE_S18_inst instantiation
// RAMB16BWE_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S36: 512 x 32 + 4 Parity bits Single-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S36 #(
.INIT(36'h000000000), // Value of output RAM registers at startup
.SRVAL(36'h000000000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 127
.INIT_00(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_01(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_02(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_03(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_04(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_05(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_06(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_07(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_08(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_09(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 128 to 255
.INIT_10(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_11(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_12(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_13(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_14(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_15(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_16(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_17(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_18(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_19(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 256 to 383
.INIT_20(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_21(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_22(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_23(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_24(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_25(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_26(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_27(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_28(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_29(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 384 to 511
.INIT_30(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_31(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_32(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_33(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_34(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_35(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_36(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_37(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_38(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_39(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S36_inst (
.DO(DO), // 32-bit Data Output
.DOP(DOP), // 4-bit parity Output
.ADDR(ADDR), // 9-bit Address Input
.CLK(CLK), // 1-bit Clock
.DI(DI), // 32-bit Data Input
.DIP(DIP), // 4-bit parity Input
.EN(EN), // 1-bit RAM Enable Input
.SSR(SSR), // 1-bit Synchronous Set/Reset Input
.WE(WE) // 4-bit Write Enable Input
);
// End of RAMB16BWE_S36_inst instantiation
// RAMB16_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1: Spartan-3/3E/3A/3AN/3AD 16kx1 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1 #(
.INIT(1'b0), // Value of output RAM registers at startup
.SRVAL(1'b0), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 4095
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 8191
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 8192 to 12287
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 12288 to 16383
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_inst (
.DO(DO), // 1-bit Data Output
.ADDR(ADDR), // 14-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 1-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S1_inst instantiation
// RAMB16_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2: Spartan-3/3E/3A/3AN/3AD 8k x 2 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2 #(
.INIT(2'b00), // Value of output RAM registers at startup
.SRVAL(2'b00), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 6143 to 8191
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_inst (
.DO(DO), // 2-bit Data Output
.ADDR(ADDR), // 13-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 2-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S2_inst instantiation
// RAMB16_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4: Spartan-3/3E/3A/3AN/3AD 4k x 4 Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4 #(
.INIT(4'h0), // Value of output RAM registers at startup
.SRVAL(4'h0), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_inst (
.DO(DO), // 4-bit Data Output
.ADDR(ADDR), // 12-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 4-bit Data Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S4_inst instantiation
// RAMB16_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9: Spartan-3/3E/3A/3AN/3AD 2k x 8 + 1 Parity bit Single-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9 #(
.INIT(9'h000), // Value of output RAM registers at startup
.SRVAL(9'h000), // Output value upon SSR assertion
.WRITE_MODE("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 511
.INIT_00(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_01(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_02(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_03(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_04(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_05(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_06(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_07(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_08(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_09(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 512 to 1023
.INIT_10(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_11(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_12(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_13(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_14(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_15(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_16(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_17(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_18(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_19(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1024 to 1535
.INIT_20(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_21(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_22(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_23(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_24(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_25(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_26(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_27(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_28(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_29(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1536 to 2047
.INIT_30(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_31(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_32(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_33(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_34(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_35(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_36(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_37(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_38(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_39(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// The next set of INITP_xx are for the parity bits
// Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_inst (
.DO(DO), // 8-bit Data Output
.DOP(DOP), // 1-bit parity Output
.ADDR(ADDR), // 11-bit Address Input
.CLK(CLK), // Clock
.DI(DI), // 8-bit Data Input
.DIP(DIP), // 1-bit parity Input
.EN(EN), // RAM Enable Input
.SSR(SSR), // Synchronous Set/Reset Input
.WE(WE) // Write Enable Input
);
// End of RAMB16_S9_inst instantiation
// RAMB16BWE_S18_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S18_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S18_S18: 1k x 16 + 2 Parity bits Dual-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S18_S18 #(
.INIT_A(18'h00000), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(18'h00000), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 255
.INIT_00(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_01(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_02(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_03(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_04(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_05(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_06(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_07(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_08(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_09(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_0F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 256 to 511
.INIT_10(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_11(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_12(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_13(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_14(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_15(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_16(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_17(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_18(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_19(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_1F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 512 to 767
.INIT_20(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_21(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_22(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_23(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_24(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_25(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_26(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_27(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_28(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_29(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_2F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// Address 768 to 1023
.INIT_30(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_31(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_32(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_33(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_34(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_35(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_36(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_37(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_38(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_39(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3A(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3B(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3C(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3D(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3E(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
.INIT_3F(256'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S18_S18_inst (
.DOA(DOA), // Port A 16-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPA(DOPA), // Port A 2-bit Data Parity Output
.DOPB(DOPB), // Port B 2-bit Data Parity Output
.ADDRA(ADDRA), // Port A 10-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A 1-bit Clock
.CLKB(CLKB), // Port B 1-bit Clock
.DIA(DIA), // Port A 16-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPA(DIPA), // Port A 2-bit parity Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A 1-bit RAM Enable Input
.ENB(ENB), // Port B 1-bit RAM Enable Input
.SSRA(SSRA), // Port A 1-bit Synchronous Set/Reset Input
.SSRB(SSRB), // Port B 1-bit Synchronous Set/Reset Input
.WEA(WEA), // Port A 2-bit Write Enable Input
.WEB(WEB) // Port B 2-bit Write Enable Input
);
// End of RAMB16BWE_S18_S18_inst instantiation
// RAMB16BWE_S36_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S36_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S36_S36: 512 x 32 + 4 Parity bits byte-wide write Dual-Port RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S36_S36 #(
.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
.SRVAL_A(36'h000000000), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 127
.INIT_00(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_01(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_02(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_03(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_04(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_05(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_06(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_07(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_08(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_09(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_0F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 128 to 255
.INIT_10(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_11(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_12(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_13(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_14(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_15(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_16(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_17(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_18(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_19(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_1F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 256 to 383
.INIT_20(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_21(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_22(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_23(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_24(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_25(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_26(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_27(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_28(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_29(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_2F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// Address 384 to 511
.INIT_30(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_31(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_32(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_33(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_34(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_35(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_36(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_37(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_38(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_39(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3A(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3B(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3C(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3D(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3E(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
.INIT_3F(256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000),
// The next set of INITP_xx are for the parity bits
// Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S36_S36_inst (
.DOA(DOA), // Port A 32-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPA(DOPA), // Port A 4-bit Parity Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 9-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A 1-bit Clock
.CLKB(CLKB), // Port B 1-bit Clock
.DIA(DIA), // Port A 32-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPA(DIPA), // Port A 4-bit parity Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A 1-bit RAM Enable Input
.ENB(ENB), // Port B 1-bit RAM Enable Input
.SSRA(SSRA), // Port A 1-bit Synchronous Set/Reset Input
.SSRB(SSRB), // Port B 1-bit Synchronous Set/Reset Input
.WEA(WEA), // Port A 4-bit Write Enable Input
.WEB(WEB) // Port B 4-bit Write Enable Input
);
// End of RAMB16BWE_S36_S36_inst instantiation
// RAMB16_S1_S1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S1: Spartan-3/3E/3A/3AN/3AD 16k x 1 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S1 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(1'b0), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(1'b0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 4095
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 8191
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 8192 to 12287
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 12288 to 16383
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S1_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 1-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 14-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 1-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S1_inst instantiation
// RAMB16_S2_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S2: Spartan-3/3E/3A/3AN/3AD 8k x 2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S2 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(2'b00), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(2'b00), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 4096 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 6143 to 8191
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S2_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 2-bit Data Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 13-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 2-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S2_inst instantiation
// RAMB16_S4_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S4: Spartan-3/3E/3A/3AN/3AD 4k x 4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S4 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S4_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S4_inst instantiation
// RAMB16_S9_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S9_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S9_S9: Spartan-3/3E/3A/3AN/3AD 2k x 8 + 1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S9_S9 #(
.INIT_A(9'h000), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(9'h000), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 511
.INIT_00(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_01(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_02(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_03(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_04(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_05(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_06(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_07(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_08(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_09(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_0F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 512 to 1023
.INIT_10(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_11(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_12(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_13(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_14(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_15(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_16(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_17(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_18(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_19(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_1F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1024 to 1535
.INIT_20(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_21(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_22(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_23(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_24(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_25(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_26(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_27(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_28(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_29(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_2F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// Address 1536 to 2047
.INIT_30(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_31(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_32(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_33(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_34(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_35(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_36(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_37(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_38(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_39(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3A(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3B(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3C(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3D(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3E(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
.INIT_3F(256'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00),
// The next set of INITP_xx are for the parity bits
// Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S9_S9_inst (
.DOA(DOA), // Port A 8-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPA(DOPA), // Port A 1-bit Parity Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 11-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 8-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPA(DIPA), // Port A 1-bit parity Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S9_S9_inst instantiation
// RAMB16BWE_S18_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S18_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S18_S9: 1k/2k x 16/8 + 2/1 Parity bits Dual-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S18_S9 #(
.INIT_A(18'h00000), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
.SRVAL_A(18'h00000), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 255, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 255, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S18_S9_inst (
.DOA(DOA), // Port A 16-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPA(DOPA), // Port A 2-bit Parity Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 10-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A 1-bit Clock
.CLKB(CLKB), // Port B 1-bit Clock
.DIA(DIA), // Port A 16-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPA(DIPA), // Port A 2-bit parity Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A 1-bit RAM Enable Input
.ENB(ENB), // Port B 1-bit RAM Enable Input
.SSRA(SSRA), // Port A 1-bit Synchronous Set/Reset Input
.SSRB(SSRB), // Port B 1-bit Synchronous Set/Reset Input
.WEA(WEA), // Port A 2-bit Write Enable Input
.WEB(WEB) // Port B 1-bit Write Enable Input
);
// End of RAMB16BWE_S18_S9_inst instantiation
// RAMB16BWE_S36_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S36_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S36_S18: 1k/512 x 16/32 + 2/4 Parity bits Dual-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S36_S18 #(
.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
.SRVAL_A(36'h000000000), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 255, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 255, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S36_S18_inst (
.DOA(DOA), // Port A 32-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPA(DOPA), // Port A 4-bit Parity Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 9-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A 1-bit Clock
.CLKB(CLKB), // Port B 1-bit Clock
.DIA(DIA), // Port A 32-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPA(DIPA), // Port A 4-bit parity Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A 1-bit RAM Enable Input
.ENB(ENB), // Port B 1-bit RAM Enable Input
.SSRA(SSRA), // Port A 1-bit Synchronous Set/Reset Input
.SSRB(SSRB), // Port B 1-bit Synchronous Set/Reset Input
.WEA(WEA), // Port A 4-bit Write Enable Input
.WEB(WEB) // Port B 2-bit Write Enable Input
);
// End of RAMB16BWE_S36_S18_inst instantiation
// RAMB16BWE_S36_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWE_S36_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWE_S36_S9: 2k/512 x 8/32 + 1/4 Parity bits Dual-Port byte-wide write RAM
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWE_S36_S9 #(
.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
.SRVAL_A(36'h000000000), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 255, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 255, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 256 to 511, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 512 to 767, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 768 to 1023, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWE_S36_S9_inst (
.DOA(DOA), // Port A 32-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPA(DOPA), // Port A 4-bit Parity Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 9-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A 1-bit Clock
.CLKB(CLKB), // Port B 1-bit Clock
.DIA(DIA), // Port A 32-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPA(DIPA), // Port A 4-bit parity Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A 1-bit RAM Enable Input
.ENB(ENB), // Port B 1-bit RAM Enable Input
.SSRA(SSRA), // Port A 1-bit Synchronous Set/Reset Input
.SSRB(SSRB), // Port B 1-bit Synchronous Set/Reset Input
.WEA(WEA), // Port A 4-bit Write Enable Input
.WEB(WEB) // Port B 1-bit Write Enable Input
);
// End of RAMB16BWE_S36_S9_inst instantiation
// RAMB16_S1_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S18: Spartan-3/3E/3A/3AN/3AD 16k/1k x 1/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S18 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S18_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S18_inst instantiation
// RAMB16_S1_S2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S2: Spartan-3/3E/3A/3AN/3AD 16k/8k x 1/2 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S2 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(2'b00), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(2'b00), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 2047
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 2048 to 4095
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 4095 to 6143
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 6144 to 8091
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S2_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 2-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 13-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 2-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S2_inst instantiation
// RAMB16_S1_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S36: Spartan-3/3E/3A/3AN/3AD 16k/512 x 1/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S36 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 384 to 512
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 384 to 512
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S36_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S36_inst instantiation
// RAMB16_S1_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S4: Spartan-3/3E/3A/3AN/3AD 16k/4k x 1/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S4 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S4_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S4_inst instantiation
// RAMB16_S1_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S1_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S1_S9: Spartan-3/3E/3A/3AN/3AD 16k/2k x 1/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S1_S9 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 4095, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 8191, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 8192 to 12287, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 12288 to 16383, Port B Address 1535 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1535 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S1_S9_inst (
.DOA(DOA), // Port A 1-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 14-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 1-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S1_S9_inst instantiation
// RAMB16_S2_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S18: Spartan-3/3E/3A/3AN/3AD 8k/1k x 2/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S18 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S18_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S18_inst instantiation
// RAMB16_S2_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S36: Spartan-3/3E/3A/3AN/3AD 8k/512 x 2/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S36 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S36_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S36_inst instantiation
// RAMB16_S2_S4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S4: Spartan-3/3E/3A/3AN/3AD 8k/4k x 2/4 Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S4 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(4'h0), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(4'h0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 1023
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 1024 to 2047
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 2048 to 3071
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 3072 to 4095
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S4_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 4-bit Data Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 12-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 4-bit Data Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S4_inst instantiation
// RAMB16_S2_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S2_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S2_S9: Spartan-3/3E/3A/3AN/3AD 8k/2k x 2/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S2_S9 #(
.INIT_A(2'b00), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(2'b00), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 2047, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 4095, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 4096 to 6143, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 1536 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 6144 to 8191, Port B Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S2_S9_inst (
.DOA(DOA), // Port A 2-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 13-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 2-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S2_S9_inst instantiation
// RAMB16_S4_S18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S18: Spartan-3/3E/3A/3AN/3AD 4k/1k x 4/16 + 0/2 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S18 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(18'h00000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(18'h00000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 255
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 256 to 511
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 512 to 767
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 768 to 1023
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 1023, Port B Address 0 to 255
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 256 to 511
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 512 to 767
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 768 to 1023
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S18_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 16-bit Data Output
.DOPB(DOPB), // Port B 2-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 10-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 16-bit Data Input
.DIPB(DIPB), // Port-B 2-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S18_inst instantiation
// RAMB16_S4_S36 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S36_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S36: Spartan-3/3E/3A/3AN/3AD 4k/512 x 4/32 + 0/4 Parity bits Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S36 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(36'h000000000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 127
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 128 to 255
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 256 to 383
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 384 to 511
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port A Address 0 to 1023, Port B Address 0 to 127
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 128 to 255
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 256 to 383
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 384 to 511
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S36_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 32-bit Data Output
.DOPB(DOPB), // Port B 4-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 9-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 32-bit Data Input
.DIPB(DIPB), // Port-B 4-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S36_inst instantiation
// RAMB16_S4_S9 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16_S4_S9_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16_S4_S9: Spartan-3/3E/3A/3AN/3AD 4k/2k x 4/8 + 0/1 Parity bit Dual-Port RAM
// Xilinx HDL Language Template, version 10.1.2
RAMB16_S4_S9 #(
.INIT_A(4'h0), // Value of output RAM registers on Port A at startup
.INIT_B(9'h000), // Value of output RAM registers on Port B at startup
.SRVAL_A(4'h0), // Port A output value upon SSR assertion
.SRVAL_B(9'h000), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
// The following INIT_xx declarations specify the initial contents of the RAM
// Port A Address 0 to 1023, Port B Address 0 to 511
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 1024 to 2047, Port B Address 512 to 1023
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 2048 to 3071, Port B Address 1024 to 1535
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port A Address 3072 to 4095, Port B Address 1536 to 2047
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
// Port B Address 0 to 511
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 512 to 1023
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1024 to 1535
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
// Port B Address 1536 to 2047
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16_S4_S9_inst (
.DOA(DOA), // Port A 4-bit Data Output
.DOB(DOB), // Port B 8-bit Data Output
.DOPB(DOPB), // Port B 1-bit Parity Output
.ADDRA(ADDRA), // Port A 12-bit Address Input
.ADDRB(ADDRB), // Port B 11-bit Address Input
.CLKA(CLKA), // Port A Clock
.CLKB(CLKB), // Port B Clock
.DIA(DIA), // Port A 4-bit Data Input
.DIB(DIB), // Port B 8-bit Data Input
.DIPB(DIPB), // Port-B 1-bit parity Input
.ENA(ENA), // Port A RAM Enable Input
.ENB(ENB), // Port B RAM Enable Input
.SSRA(SSRA), // Port A Synchronous Set/Reset Input
.SSRB(SSRB), // Port B Synchronous Set/Reset Input
.WEA(WEA), // Port A Write Enable Input
.WEB(WEB) // Port B Write Enable Input
);
// End of RAMB16_S4_S9_inst instantiation
// RAMB16BWER : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (RAMB16BWER_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// RAMB16BWER: 16k+2k Parity Paramatizable, byte-wide enable BlockRAM, output registers
// Spartan-3A DSP
// Xilinx HDL Language Template, version 10.1.2
RAMB16BWER #(
.DATA_WIDTH_A(0), // Valid values are 0, 1, 2, 4, 9, 18, or 36
.DATA_WIDTH_B(0), // Valid values are 0, 1, 2, 4, 9, 18, or 36
.DOA_REG(0), // Specifies to enable=1/disable=0 port A output registers
.DOB_REG(0), // Specifies to enable=1/disable=0 port B output registers
.INIT_A(36'h000000000), // Initial values on A output port
.INIT_B(36'h000000000), // Initial values on B output port
.RSTTYPE("SYNC"), // Specifes reset type to be "SYNC" or "ASYNC"
.SIM_COLLISION_CHECK("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SRVAL_A(36'h000000000), // Set/Reset value for A port output
.SRVAL_B(36'h000000000), // Set/Reset value for B port output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
// The following INIT_xx declarations specify the initial contents of the RAM
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000)
) RAMB16BWER_inst (
.DOA(DOA), // 32-bit A port data output
.DOB(DOB), // 32-bit B port data output
.DOPA(DOPA), // 4-bit A port parity data output
.DOPB(DOPB), // 4-bit B port parity data output
.ADDRA(ADDRA), // 14-bit A port address input
.ADDRB(ADDRB), // 14-bit B port address input
.CLKA(CLKA), // 1-bit A port clock input
.CLKB(CLKB), // 1-bit B port clock input
.DIA(DIA), // 32-bit A port data input
.DIB(DIB), // 32-bit B port data input
.DIPA(DIPA), // 4-bit A port parity data input
.DIPB(DIPB), // 4-bit B port parity data input
.ENA(ENA), // 1-bit A port enable input
.ENB(ENB), // 1-bit B port enable input
.REGCEA(REGCEA), // 1-bit A port output register enable input
.REGCEB(REGCEB), // 1-bit B port output register enable input
.RSTA(RSTA), // 1-bit A port reset input
.RSTB(RSTB), // 1-bit B port reset input
.WEA(WEA), // 4-bit A port write enable input
.WEB(WEB) // 4-bit B port write enable input
);
// End of RAMB16BWER_inst instantiation
// SRL16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL16_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRL16: 16-bit shift register LUT operating on posedge of clock
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
SRL16 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRL16_inst (
.Q(Q), // SRL data output
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRL16_inst instantiation
// SRL16_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL16_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRL16_1: 16-bit shift register LUT operating on negedge of clock
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
SRL16_1 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRL16_1_inst (
.Q(Q), // SRL data output
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRL16_1_inst instantiation
// SRL16E : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL16E_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRL16E: 16-bit shift register LUT with clock enable operating on posedge of clock
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
SRL16E #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRL16E_inst (
.Q(Q), // SRL data output
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRL16E_inst instantiation
// SRL16E_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL16E_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRL16E_1: 16-bit shift register LUT with clock enable operating on negedge of clock
// All FPGAs
// Xilinx HDL Language Template, version 10.1.2
SRL16E_1 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRL16E_1_inst (
.Q(Q), // SRL data output
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRL16E_1_inst instantiation
// SRLC16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRLC16_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRLC16: 16-bit cascadable shift register LUT operating on posedge of clock
// Virtex-II/II-Pro/4, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
SRLC16 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRLC16_inst (
.Q(Q), // SRL data output
.Q15(Q15), // Carry output (connect to next SRL)
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRLC16_inst instantiation
// SRLC16_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRLC16_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRLC16_1: 16-bit cascadable shift register LUT operating on negedge of clock
// Virtex-II/II-Pro/4, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
SRLC16_1 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRLC16_1_inst (
.Q(Q), // SRL data output
.Q15(Q15), // Carry output (connect to next SRL)
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRLC16_1_inst instantiation
// SRLC16E : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL16E_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRLC16E: 16-bit cascadable shift register LUT with clock enable operating on posedge of clock
// Virtex-II/II-Pro/4, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
SRLC16E #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRLC16E_inst (
.Q(Q), // SRL data output
.Q15(Q15), // Carry output (connect to next SRL)
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRLC16E_inst instantiation
// SRLC16E_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRLC16E_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRLC16E_1: 16-bit shift register LUT with clock enable operating on negedge of clock
// Virtex-II/II-Pro/4, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
SRLC16E_1 #(
.INIT(16'h0000) // Initial Value of Shift Register
) SRLC16E_1_inst (
.Q(Q), // SRL data output
.Q15(Q15), // Carry output (connect to next SRL)
.A0(A0), // Select[0] input
.A1(A1), // Select[1] input
.A2(A2), // Select[2] input
.A3(A3), // Select[3] input
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRLC16E_1_inst instantiation
// SRLC32E : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SRL32E_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SRLC32E: 32-bit variable length shift register LUT
// with clock enable
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
SRLC32E #(
.INIT(32'h00000000) // Initial Value of Shift Register
) SRLC32E_inst (
.Q(Q), // SRL data output
.Q31(Q31), // SRL cascade output pin
.A(A), // 5-bit shift depth select input
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.D(D) // SRL data input
);
// End of SRLC32E_inst instantiation
// MULT18X18 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MULT18X18_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MULT18X18: 18 x 18 signed asynchronous multiplier
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
MULT18X18 MULT18X18_inst (
.P(P), // 36-bit multiplier output
.A(A), // 18-bit multiplier input
.B(B) // 18-bit multiplier input
);
// End of MULT18X18_inst instantiation
// MULT18X18S : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MULT18X18S_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MULT18X18S: 18 x 18 signed synchronous multiplier
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
MULT18X18S MULT18X18S_inst (
.P(P), // 36-bit multiplier output
.A(A), // 18-bit multiplier input
.B(B), // 18-bit multiplier input
.C(C), // Clock input
.CE(CE), // Clock enable input
.R(R) // Synchronous reset input
);
// End of MULT18X18S_inst instantiation
// MULT18X18SIO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (MULT18X18SIO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// MULT18X18SIO: 18 x 18 cascadable, signed synchronous/asynchronous multiplier
// Spartan-3E/3A
// Xilinx HDL Language Template, version 10.1.2
MULT18X18SIO #(
.AREG(1), // Enable the input registers on the A port (1=on, 0=off)
.BREG(1), // Enable the input registers on the B port (1=on, 0=off)
.B_INPUT("DIRECT"), // B cascade input "DIRECT" or "CASCADE"
.PREG(1) // Enable the input registers on the P port (1=on, 0=off)
) MULT18X18SIO_inst (
.BCOUT(BCOUT), // 18-bit cascade output
.P(P), // 36-bit multiplier output
.A(A), // 18-bit multiplier input
.B(B), // 18-bit multiplier input
.BCIN(BCIN), // 18-bit cascade input
.CEA(CEA), // Clock enable input for the A port
.CEB(CEB), // Clock enable input for the B port
.CEP(CEP), // Clock enable input for the P port
.CLK(CLK), // Clock input
.RSTA(RSTA), // Synchronous reset input for the A port
.RSTB(RSTB), // Synchronous reset input for the B port
.RSTP(RSTP) // Synchronous reset input for the P port
);
// End of MULT18X18SIO_inst instantiation
// DSP48 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DSP48_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// DSP48: DSP Function Block
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
DSP48 #(
.AREG(1), // Number of pipeline registers on the A input, 0, 1 or 2
.BREG(1), // Number of pipeline registers on the B input, 0, 1 or 2
.B_INPUT("DIRECT"), // B input DIRECT from fabric or CASCADE from another DSP48
.CARRYINREG(1), // Number of pipeline registers for the CARRYIN input, 0 or 1
.CARRYINSELREG(1), // Number of pipeline registers for the CARRYINSEL, 0 or 1
.CREG(1), // Number of pipeline registers on the C input, 0 or 1
.LEGACY_MODE("MULT18X18S"), // Backward compatibility, NONE, MULT18X18 or MULT18X18S
.MREG(1), // Number of multiplier pipeline registers, 0 or 1
.OPMODEREG(1), // Number of pipeline regsiters on OPMODE input, 0 or 1
.PREG(1), // Number of pipeline registers on the P output, 0 or 1
.SUBTRACTREG(1) // Number of pipeline registers on the SUBTRACT input, 0 or 1
) DSP48_inst (
.BCOUT(BCOUT), // 18-bit B cascade output
.P(P), // 48-bit product output
.PCOUT(PCOUT), // 48-bit cascade output
.A(A), // 18-bit A data input
.B(B), // 18-bit B data input
.BCIN(BCIN), // 18-bit B cascade input
.C(C), // 48-bit cascade input
.CARRYIN(CARRYIN), // Carry input signal
.CARRYINSEL(CARRYINSEL), // 2-bit carry input select
.CEA(CEA), // A data clock enable input
.CEB(CEB), // B data clock enable input
.CEC(CEC), // C data clock enable input
.CECARRYIN(CECARRYIN), // CARRYIN clock enable input
.CECINSUB(CECINSUB), // CINSUB clock enable input
.CECTRL(CECTRL), // Clock Enable input for CTRL regsiters
.CEM(CEM), // Clock Enable input for multiplier regsiters
.CEP(CEP), // Clock Enable input for P regsiters
.CLK(CLK), // Clock input
.OPMODE(OPMODE), // 7-bit operation mode input
.PCIN(PCIN), // 48-bit PCIN input
.RSTA(RSTA), // Reset input for A pipeline registers
.RSTB(RSTB), // Reset input for B pipeline registers
.RSTC(RSTC), // Reset input for C pipeline registers
.RSTCARRYIN(RSTCARRYIN), // Reset input for CARRYIN registers
.RSTCTRL(RSTCTRL), // Reset input for CTRL registers
.RSTM(RSTM), // Reset input for multiplier registers
.RSTP(RSTP), // Reset input for P pipeline registers
.SUBTRACT(SUBTRACT) // SUBTRACT input
);
// End of DSP48_inst instantiation
// DSP48E : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DSP48E_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// DSP48E: DSP Function Block
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
DSP48E #(
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.ACASCREG(1), // Number of pipeline registers between A/ACIN input and ACOUT output, 0, 1, or 2
.ALUMODEREG(1), // Number of pipeline registers on ALUMODE input, 0 or 1
.AREG(1), // Number of pipeline registers on the A input, 0, 1 or 2
.AUTORESET_PATTERN_DETECT("FALSE"), // Auto-reset upon pattern detect, "TRUE" or "FALSE"
.AUTORESET_PATTERN_DETECT_OPTINV("MATCH"), // Reset if "MATCH" or "NOMATCH"
.A_INPUT("DIRECT"), // Selects A input used, "DIRECT" (A port) or "CASCADE" (ACIN port)
.BCASCREG(1), // Number of pipeline registers between B/BCIN input and BCOUT output, 0, 1, or 2
.BREG(1), // Number of pipeline registers on the B input, 0, 1 or 2
.B_INPUT("DIRECT"), // Selects B input used, "DIRECT" (B port) or "CASCADE" (BCIN port)
.CARRYINREG(1), // Number of pipeline registers for the CARRYIN input, 0 or 1
.CARRYINSELREG(1), // Number of pipeline registers for the CARRYINSEL input, 0 or 1
.CREG(1), // Number of pipeline registers on the C input, 0 or 1
.MASK(48'h3fffffffffff), // 48-bit Mask value for pattern detect
.MREG(1), // Number of multiplier pipeline registers, 0 or 1
.MULTCARRYINREG(1), // Number of pipeline registers for multiplier carry in bit, 0 or 1
.OPMODEREG(1), // Number of pipeline registers on OPMODE input, 0 or 1
.PATTERN(48'h000000000000), // 48-bit Pattern match for pattern detect
.PREG(1), // Number of pipeline registers on the P output, 0 or 1
.SEL_MASK("MASK"), // Select mask value between the "MASK" value or the value on the "C" port
.SEL_PATTERN("PATTERN"), // Select pattern value between the "PATTERN" value or the value on the "C" port
.SEL_ROUNDING_MASK("SEL_MASK"), // "SEL_MASK", "MODE1", "MODE2"
.USE_MULT("MULT_S"), // Select multiplier usage, "MULT" (MREG => 0), "MULT_S" (MREG => 1), "NONE" (no multiplier)
.USE_PATTERN_DETECT("NO_PATDET"), // Enable pattern detect, "PATDET", "NO_PATDET"
.USE_SIMD("ONE48") // SIMD selection, "ONE48", "TWO24", "FOUR12"
) DSP48E_inst (
.ACOUT(ACOUT), // 30-bit A port cascade output
.BCOUT(BCOUT), // 18-bit B port cascade output
.CARRYCASCOUT(CARRYCASCOUT), // 1-bit cascade carry output
.CARRYOUT(CARRYOUT), // 4-bit carry output
.MULTSIGNOUT(MULTSIGNOUT), // 1-bit multiplier sign cascade output
.OVERFLOW(OVERFLOW), // 1-bit overflow in add/acc output
.P(P), // 48-bit output
.PATTERNBDETECT(PATTERNBDETECT), // 1-bit active high pattern bar detect output
.PATTERNDETECT(PATTERNDETECT), // 1-bit active high pattern detect output
.PCOUT(PCOUT), // 48-bit cascade output
.UNDERFLOW(UNDERFLOW), // 1-bit active high underflow in add/acc output
.A(A), // 30-bit A data input
.ACIN(ACIN), // 30-bit A cascade data input
.ALUMODE(ALUMODE), // 4-bit ALU control input
.B(B), // 18-bit B data input
.BCIN(BCIN), // 18-bit B cascade input
.C(C), // 48-bit C data input
.CARRYCASCIN(CARRYCASCIN), // 1-bit cascade carry input
.CARRYIN(CARRYIN), // 1-bit carry input signal
.CARRYINSEL(CARRYINSEL), // 3-bit carry select input
.CEA1(CEA1), // 1-bit active high clock enable input for 1st stage A registers
.CEA2(CEA2), // 1-bit active high clock enable input for 2nd stage A registers
.CEALUMODE(CEALUMODE), // 1-bit active high clock enable input for ALUMODE registers
.CEB1(CEB1), // 1-bit active high clock enable input for 1st stage B registers
.CEB2(CEB2), // 1-bit active high clock enable input for 2nd stage B registers
.CEC(CEC), // 1-bit active high clock enable input for C registers
.CECARRYIN(CECARRYIN), // 1-bit active high clock enable input for CARRYIN register
.CECTRL(CECTRL), // 1-bit active high clock enable input for OPMODE and carry registers
.CEM(CEM), // 1-bit active high clock enable input for multiplier registers
.CEMULTCARRYIN(CEMULTCARRYIN), // 1-bit active high clock enable for multiplier carry in register
.CEP(CEP), // 1-bit active high clock enable input for P registers
.CLK(CLK), // Clock input
.MULTSIGNIN(MULTSIGNIN), // 1-bit multiplier sign input
.OPMODE(OPMODE), // 7-bit operation mode input
.PCIN(PCIN), // 48-bit P cascade input
.RSTA(RSTA), // 1-bit reset input for A pipeline registers
.RSTALLCARRYIN(RSTALLCARRYIN), // 1-bit reset input for carry pipeline registers
.RSTALUMODE(RSTALUMODE), // 1-bit reset input for ALUMODE pipeline registers
.RSTB(RSTB), // 1-bit reset input for B pipeline registers
.RSTC(RSTC), // 1-bit reset input for C pipeline registers
.RSTCTRL(RSTCTRL), // 1-bit reset input for OPMODE pipeline registers
.RSTM(RSTM), // 1-bit reset input for multiplier registers
.RSTP(RSTP) // 1-bit reset input for P pipeline registers
);
// End of DSP48E_inst instantiation
// DSP48A : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DSP48A_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// DSP48A: DSP Function Block
// Spartan-3A DSP
// Xilinx HDL Language Template, version 10.1.2
DSP48A #(
.A0REG(0), // Enable=1/disable=0 first stage A input pipeline register
.A1REG(1), // Enable=1/disable=0 second stage A input pipeline register
.B0REG(0), // Enable=1/disable=0 first stage B input pipeline register
.B1REG(1), // Enable=1/disable=0 second stage B input pipeline register
.CARRYINREG(1), // Enable=1/disable=0 CARRYIN input pipeline register
.CARRYINSEL("CARRYIN"), // Specify carry-in source, "CARRYIN" or "OPMODE5"
.CREG(1), // Enable=1/disable=0 C input pipeline register
.DREG(1), // Enable=1/disable=0 D pre-adder input pipeline register
.MREG(1), // Enable=1/disable=0 M pipeline register
.OPMODEREG(1), // Enable=1/disable=0 OPMODE input pipeline register
.PREG(1), // Enable=1/disable=0 P output pipeline register
.RSTTYPE("SYNC") // Specify reset type, "SYNC" or "ASYNC"
) DSP48A_inst (
.BCOUT(BCOUT), // 18-bit B port cascade output
.CARRYOUT(CARRYOUT), // 1-bit carry output
.P(P), // 48-bit output
.PCOUT(PCOUT), // 48-bit cascade output
.A(A), // 18-bit A data input
.B(B), // 18-bit B data input (can be connected to fabric or BCOUT of adjacent DSP48A)
.C(C), // 48-bit C data input
.CARRYIN(CARRYIN), // 1-bit carry input signal
.CEA(CEA), // 1-bit active high clock enable input for A input registers
.CEB(CEB), // 1-bit active high clock enable input for B input registers
.CEC(CEC), // 1-bit active high clock enable input for C input registers
.CECARRYIN(CECARRYIN), // 1-bit active high clock enable input for CARRYIN registers
.CED(CED), // 1-bit active high clock enable input for D input registers
.CEM(CEM), // 1-bit active high clock enable input for multiplier registers
.CEOPMODE(CEOPMODE), // 1-bit active high clock enable input for OPMODE registers
.CEP(CEP), // 1-bit active high clock enable input for P output registers
.CLK(CLK), // Clock input
.D(D), // 18-bit B pre-adder data input
.OPMODE(OPMODE), // 8-bit operation mode input
.PCIN(PCIN), // 48-bit P cascade input
.RSTA(RSTA), // 1-bit reset input for A input pipeline registers
.RSTB(RSTB), // 1-bit reset input for B input pipeline registers
.RSTC(RSTC), // 1-bit reset input for C input pipeline registers
.RSTCARRYIN(RSTCARRYIN), // 1-bit reset input for CARRYIN input pipeline registers
.RSTD(RSTD), // 1-bit reset input for D input pipeline registers
.RSTM(RSTM), // 1-bit reset input for M pipeline registers
.RSTOPMODE(RSTOPMODE), // 1-bit reset input for OPMODE input pipeline registers
.RSTP(RSTP) // 1-bit reset input for P output pipeline registers
);
// End of DSP48A_inst instantiation
// STARTUP_VIRTEX : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_VIRTEX_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_VIRTEX: Startup primitive for GSR, GTS or startup sequence
// control. Virtex/E, Spartan-IIE
// Xilinx HDL Language Template, version 10.1.2
STARTUP_VIRTEX STARTUP_VIRTEX_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT) // Global 3-state input (GTS can not be used as a port name)
);
// End of STARTUP_VIRTEX_inst instantiation
// STARTUP_SPARTAN2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_SPARTAN2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_SPARTAN2: Startup primitive for GSR, GTS or startup sequence
// control. Spartan-II
// Xilinx HDL Language Template, version 10.1.2
STARTUP_SPARTAN2 STARTUP_SPARTAN2_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT) // Global 3-state input (GTS can not be used as a port name)
);
// End of STARTUP_SPARTAN2_inst instantiation
// STARTUP_VIRTEX2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_VIRTEX2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_VIRTEX2: Startup primitive for GSR, GTS or startup sequence
// control. Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
STARTUP_VIRTEX2 STARTUP_VIRTEX2_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT) // Global 3-state input (GTS can not be used as a port name)
);
// End of STARTUP_VIRTEX2_inst instantiation
// STARTUP_SPARTAN3 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_SPARTAN3_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_SPARTAN3: Startup primitive for GSR, GTS or startup sequence
// control. Spartan-3
// Xilinx HDL Language Template, version 10.1.2
STARTUP_SPARTAN3 STARTUP_SPARTAN3_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT) // Global 3-state input (GTS can not be used as a port name)
);
// End of STARTUP_SPARTAN3_inst instantiation
// STARTUP_SPARTAN3E : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_SPARTAN3E_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_SPARTAN3E: Startup primitive for GSR, GTS, startup sequence control
// and Multi-Boot Configuration Trigger. Spartan-3E
// Xilinx HDL Language Template, version 10.1.2
STARTUP_SPARTAN3E STARTUP_SPARTAN3E_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT), // Global 3-state input (GTS can not be used as a port name)
.MBT(MBT) // Multi-Boot Trigger input
);
// End of STARTUP_SPARTAN3E_inst instantiation
// STARTUP_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_VIRTEX4: Startup primitive for GSR, GTS or startup sequence
// control. Virtex-4
// Xilinx HDL Language Template, version 10.1.2
STARTUP_VIRTEX4 STARTUP_VIRTEX4_inst (
.EOS(EOS), // End Of Startup 1-bit output
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT), // Global 3-state input (GTS can not be used as a port name)
.USRCCLKO(USRCCLKO), // USERCLK0 1-bit input
.USRCCLKTS(USRCCLKTS), // USERCLKTS 1-bit input
.USRDONEO(USRDONEO), // USRDONE0 1-bit input
.USRDONETS(USRDONETS) // USRDONETS 1-bit input
);
// End of STARTUP_VIRTEX4_inst instantiation
// STARTUP_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_VIRTEX5: Startup primitive for accessing GSR, GTS, startup sequence
// control, SPI PROM pins, configuration clock and start-up status
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
STARTUP_VIRTEX5 STARTUP_VIRTEX5_inst (
.CFGCLK(CFGCLK), // Config logic clock 1-bit output
.CFGMCLK(CFGMCLK), // Config internal osc clock 1-bit output
.DINSPI(DINSPI), // DIN SPI PROM access 1-bit output
.EOS(EOS), // End Of Startup 1-bit output
.TCKSPI(TCKSPI), // TCK SPI PROM access 1-bit output
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT), // Global 3-state input (GTS can not be used as a port name)
.USRCCLKO(USRCCLKO), // User CCLK 1-bit input
.USRCCLKTS(USRCCLKTS), // User CCLK 3-state 1-bit input
.USRDONEO(USRDONEO), // User Done 1-bit input
.USRDONETS(USRDONETS) // User Done 3-state 1-bit input
);
// End of STARTUP_VIRTEX5_inst instantiation
// STARTUP_SPARTAN3A : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (STARTUP_SPARTAN3A_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// STARTUP_SPARTAN3A: Startup primitive for GSR, GTS or startup sequence
// control.
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
STARTUP_SPARTAN3A STARTUP_SPARTAN3A_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can not be used as a port name)
.GTS(GTS_PORT) // Global 3-state input (GTS can not be used as a port name)
);
// End of STARTUP_SPARTAN3A_inst instantiation
// BSCAN_VIRTEX : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_VIRTEX_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_VIRTEX: Boundary Scan primitive for connecting internal logic to
// JTAG interface. Virtex/E, Spartan-IIE
// Xilinx HDL Language Template, version 10.1.2
BSCAN_VIRTEX BSCAN_VIRTEX_inst (
.DRCK1(DRCK1), // Data register output for USER1 functions
.DRCK2(DRCK2), // Data register output for USER2 functions
.RESET(RESET), // Reset output from TAP controller
.SEL1(SEL1), // USER1 active output
.SEL2(SEL2), // USER2 active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO1(TDO1), // Data input for USER1 function
.TDO2(TDO2) // Data input for USER2 function
);
// End of BSCAN_VIRTEX_inst instantiation
// BSCAN_VIRTEX2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_VIRTEX2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_VIRTEX2: Boundary Scan primitive for connecting internal logic to
// JTAG interface. Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
BSCAN_VIRTEX2 BSCAN_VIRTEX2_inst (
.CAPTURE(CAPTURE), // CAPTURE output from TAP controller
.DRCK1(DRCK1), // Data register output for USER1 functions
.DRCK2(DRCK2), // Data register output for USER2 functions
.RESET(RESET), // Reset output from TAP controller
.SEL1(SEL1), // USER1 active output
.SEL2(SEL2), // USER2 active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO1(TDO1), // Data input for USER1 function
.TDO2(TDO2) // Data input for USER2 function
);
// End of BSCAN_VIRTEX2_inst instantiation
// BSCAN_SPARTAN2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_SPARTAN2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_SPARTAN2: Boundary Scan primitive for connecting internal logic to
// JTAG interface.
// Spartan-II
// Xilinx HDL Language Template, version 10.1.2
BSCAN_SPARTAN2 BSCAN_SPARTAN2_inst (
.DRCK1(DRCK1), // Data register output for USER1 functions
.DRCK2(DRCK2), // Data register output for USER2 functions
.RESET(RESET), // Reset output from TAP controller
.SEL1(SEL1), // USER1 active output
.SEL2(SEL2), // USER2 active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO1(TDO1), // Data input for USER1 function
.TDO2(TDO2) // Data input for USER2 function
);
// End of BSCAN_SPARTAN2_inst instantiation
// BSCAN_SPARTAN3 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_SPARTAN3_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_SPARTAN3: Boundary Scan primitive for connecting internal logic to
// JTAG interface.
// Spartan-3/3E
// Xilinx HDL Language Template, version 10.1.2
BSCAN_SPARTAN3 BSCAN_SPARTAN3_inst (
.CAPTURE(CAPTURE), // CAPTURE output from TAP controller
.DRCK1(DRCK1), // Data register output for USER1 functions
.DRCK2(DRCK2), // Data register output for USER2 functions
.RESET(RESET), // Reset output from TAP controller
.SEL1(SEL1), // USER1 active output
.SEL2(SEL2), // USER2 active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO1(TDO1), // Data input for USER1 function
.TDO2(TDO2) // Data input for USER2 function
);
// End of BSCAN_SPARTAN3_inst instantiation
// BSCAN_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_VIRTEX4: Boundary Scan primitive for connecting internal logic to
// JTAG interface.
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
BSCAN_VIRTEX4 #(
.JTAG_CHAIN(1) // Possible values: 1, 2, 3, or 4
) BSCAN_VIRTEX4_inst (
.CAPTURE(CAPTURE), // CAPTURE output from TAP controller
.DRCK(DRCK), // Data register output for USER function
.RESET(RESET), // Reset output from TAP controller
.SEL(SEL), // USER active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO(TDO) // Data input for USER function
);
// End of BSCAN_VIRTEX4_inst instantiation
// JTAG_SIM_VIRTEX4 : In order to use this simulation model, the
// Verilog : following instance declaration needs to be placed
// instance : in the testbench code to simulate the design. This
// declaration : should not be instantiated into synthesizable design code.
// code : None of the ports need to be connected to the design
// : as communication is handled through the glbl.v module.
// : All ports can be connected to reg/wires in the testbench.
// : Only one JTAG_SIM_VIRTEX4 should be instantiated per design.
// : All inputs and outputs should be connected.
// <-----Cut code below this line---->
// JTAG_SIM_VIRTEX4: JTAG Interface Simulation Model
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
JTAG_SIM_VIRTEX4 #(
.PART_NAME("LX15") // Specify target V4 device. Possible values are:
// "LX15", "LX25", "LX40", "LX60", "LX80", "LX100", "LX160",
// "LX200", "SX25", "SX35", "SX55", "FX12", "FX20"
) JTAG_SIM_VIRTEX4_inst (
.TDO(TDO), // JTAG data output (1-bit)
.TCK(TCK), // Clock input (1-bit)
.TDI(TDI), // JTAG data input (1-bit)
.TMS(TMS) // JTAG command input (1-bit)
);
// End of JTAG_SIM_VIRTEX4_inst instantiation
// BSCAN_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_VIRTEX5: Boundary Scan primitive for connecting internal
// logic to JTAG interface.
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
BSCAN_VIRTEX5 #(
.JTAG_CHAIN(1) // Value for USER command. Possible values: (1,2,3 or 4)
) BSCAN_VIRTEX5_inst (
.CAPTURE(CAPTURE), // CAPTURE output from TAP controller
.DRCK(DRCK), // Data register output for USER function
.RESET(RESET), // Reset output from TAP controller
.SEL(SEL), // USER active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO(TDO) // Data input for USER function
);
// End of BSCAN_VIRTEX5_inst instantiation
// JTAG_SIM_VIRTEX5 : In order to use this simulation model, the
// Verilog : following instance declaration needs to be placed
// instance : in the testbench code to simulate the design. This
// declaration : should not be instnatiated into synthesizable design code.
// code : None of the ports need to be connected to the design
// : as communication is handled through the glbl.v module.
// : All ports can be connected to reg/wires in the testbench.
// : Only one JTAG_SIM_VIRTEX5 should be instantiated per design.
// : All inputs and outputs should be connected.
// <-----Cut code below this line---->
// JTAG_SIM_VIRTEX5: JTAG Interface Simulation Model
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
JTAG_SIM_VIRTEX5 #(
.PART_NAME("LX30") // Specify target V5 device. Possible values are:
// "LX30", "LX50", "LX85", "LX110", "LX220", "LX330"
) JTAG_SIM_VIRTEX5_inst (
.TDO(TDO), // JTAG data output (1-bit)
.TCK(TCK), // Clock input (1-bit)
.TDI(TDI), // JTAG data input (1-bit)
.TMS(TMS) // JTAG command input (1-bit)
);
// End of JTAG_SIM_VIRTEX5_inst instantiation
// BSCAN_SPARTAN3A : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BSCAN_SPARTAN3A_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// BSCAN_SPARTAN3A: Boundary Scan primitive for connecting internal logic to
// JTAG interface.
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
BSCAN_SPARTAN3A BSCAN_SPARTAN3A_inst (
.CAPTURE(CAPTURE), // CAPTURE output from TAP controller
.DRCK1(DRCK1), // Data register output for USER1 functions
.DRCK2(DRCK2), // Data register output for USER2 functions
.RESET(RESET), // Reset output from TAP controller
.SEL1(SEL1), // USER1 active output
.SEL2(SEL2), // USER2 active output
.SHIFT(SHIFT), // SHIFT output from TAP controller
.TCK(TCK), // TCK output from TAP controller
.TDI(TDI), // TDI output from TAP controller
.TMS(TMS), // TMS output from TAP controller
.UPDATE(UPDATE), // UPDATE output from TAP controller
.TDO1(TDO1), // Data input for USER1 function
.TDO2(TDO2) // Data input for USER2 function
);
// End of BSCAN_SPARTAN3A_inst instantiation
// CAPTURE_VIRTEX : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_VIRTEX_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_VIRTEX: Register State Capture for Bitstream Readback
// Virtex/E
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_VIRTEX CAPTURE_VIRTEX_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_VIRTEX_inst instantiation
// CAPTURE_VIRTEX2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_VIRTEX2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_VIRTEX2: Register State Capture for Bitstream Readback
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_VIRTEX2 CAPTURE_VIRTEX2_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_VIRTEX2_inst instantiation
// CAPTURE_SPARTAN2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_SPARTAN2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_SPARTAN2: Register State Capture for Bitstream Readback
// Spartan-II/IIE
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_SPARTAN2 CAPTURE_SPARTAN2_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_SPARTAN2_inst instantiation
// CAPTURE_SPARTAN3 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_SPARTAN3_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_SPARTAN3: Register State Capture for Bitstream Readback
// Spartan-3/3E
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_SPARTAN3 CAPTURE_SPARTAN3_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_SPARTAN3_inst instantiation
// CAPTURE_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_VIRTEX4: Register State Capture for Bitstream Readback
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_VIRTEX4 #(
.ONESHOT("TRUE") // "TRUE" or "FALSE"
) CAPTURE_VIRTEX4_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_VIRTEX4_inst instantiation
// ICAP_VIRTEX2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ICAP_VIRTEX2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ICAP_VIRTEX2: Internal Configuration Access Port
// Virtex-II/II-Pro
// Xilinx HDL Language Template, version 10.1.2
ICAP_VIRTEX2 ICAP_VIRTEX2_inst (
.BUSY(BUSY), // Busy output
.O(O), // 8-bit data output
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.I(I), // 8-bit data input
.WRITE(WRITE) // Write input
);
// End of ICAP_VIRTEX2_inst instantiation
// ICAP_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ICAP_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ICAP_VIRTEX4: Internal Configuration Access Port
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
ICAP_VIRTEX4 #(
.ICAP_WIDTH("X8") // "X8" or "X32"
) ICAP_VIRTEX4_inst (
.BUSY(BUSY), // Busy output
.O(O), // 32-bit data output
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.I(I), // 32-bit data input
.WRITE(WRITE) // Write input
);
// End of ICAP_VIRTEX4_inst instantiation
// CAPTURE_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_VIRTEX5: Register State Capture for Bitstream Readback
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_VIRTEX5 #(
.ONESHOT("TRUE") // "TRUE" or "FALSE"
) CAPTURE_VIRTEX5_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_VIRTEX5_inst instantiation
// ICAP_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ICAP_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ICAP_VIRTEX5: Internal Configuration Access Port
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
ICAP_VIRTEX5 #(
.ICAP_WIDTH("X8") // "X8", "X16" or "X32"
) ICAP_VIRTEX4_inst (
.BUSY(BUSY), // Busy output
.O(O), // 32-bit data output
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.I(I), // 32-bit data input
.WRITE(WRITE) // Write input
);
// End of ICAP_VIRTEX5_inst instantiation
// CAPTURE_SPARTAN3A : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CAPTURE_SPARTAN3A_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// CAPTURE_SPARTAN3A: Register State Capture for Bitstream Readback
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
CAPTURE_SPARTAN3A #(
.ONESHOT("TRUE") // "TRUE" or "FALSE"
) CAPTURE_SPARTAN3A_inst (
.CAP(CAP), // Capture input
.CLK(CLK) // Clock input
);
// End of CAPTURE_SPARTAN3A_inst instantiation
// ICAP_SPARTAN3A : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ICAP_SPARTAN3A_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ICAP_SPARTAN3A: Internal Configuration Access Port
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
ICAP_SPARTAN3A ICAP_SPARTAN3A_inst (
.BUSY(BUSY), // Busy output
.O(O), // 8-bit data output
.CE(CE), // Clock enable input
.CLK(CLK), // Clock input
.I(I), // 8-bit data input
.WRITE(WRITE) // Write input
);
// End of ICAP_SPARTAN3A_inst instantiation
// FRAME_ECC_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FRAME_ECC_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FRAME_ECC_VIRTEX4: Configuration Frame Error Correction Circuitry
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
FRAME_ECC_VIRTEX4 FRAME_ECC_VIRTEX4_inst (
.ERROR(ERROR), // 1-bit output indicating an error
.SYNDROME(SYNDROME), // 12-bit output location of erroroneous bit
.SYNDROMEVALID(SYNDROMEVALID) // 1-bit output indicating 0, 1 or 2 bit errors in frame
);
// End of FRAME_ECC_VIRTEX4_inst instantiation
// USR_ACCESS_VIRTEX4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (USR_ACCESS_VIRTEX4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// USR_ACCESS_VIRTEX4: Configuration Data Memory Access Port
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
USR_ACCESS_VIRTEX4 USR_ACCESS_VIRTEX4_inst (
.DATA(DATA), // 32-bit config data output
.DATAVALID(DATAVALID) // 1-bit data valid output
);
// End of USR_ACCESS_VIRTEX4_inst instantiation
// FRAME_ECC_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FRAME_ECC_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FRAME_ECC_VIRTEX5: Configuration Frame Error Correction Circuitry
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FRAME_ECC_VIRTEX5 FRAME_ECC_VIRTEX5_inst (
.CRCERROR(CRCERROR), // 1-bit output indicating a CRC error
.ECCERROR(ECCERROR), // 1-bit output indicating an ECC error
.SYNDROME(SYNDROME), // 12-bit output location of erroneous bit
.SYNDROMEVALID(SYNDROMEVALID) // 1-bit output indicating the
// SYNDROME output is valid
);
// End of FRAME_ECC_VIRTEX5_inst instantiation
// USR_ACCESS_VIRTEX5 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (USR_ACCESS_VIRTEX5_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// USR_ACCESS_VIRTEX5: Configuration Data Memory Access Port
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
USR_ACCESS_VIRTEX5 USR_ACCESS_VIRTEX5_inst (
.CFGCLK(CFGCLK), // 1-bit configuration clock output
.DATA(DATA), // 32-bit config data output
.DATAVALID(DATAVALID) // 1-bit data valid output
);
// End of USR_ACCESS_VIRTEX5_inst instantiation
// KEY_CLEAR : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (KEY_CLEAR_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// KEY_CLEAR: Startup primitive for GSR, GTS or startup sequence control
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
KEY_CLEAR KEY_CLEAR_inst (
.KEYCLEARB(KEYCLEARB) // Active low key reset 1-bit input
);
// End of KEY_CLEAR_inst instantiation
// SPI_ACCESS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SPI_ACCESS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SPI_ACCESS: Internal Logic Access to the Serial Peripheral
// Interface (SPI) PROM Data
// Spartan-3AN
// Xilinx HDL Language Template, version 10.1.2
SPI_ACCESS #(
.SIM_DELAY_TYPE("SCALED"), // "ACCURATE" spec timing delays, "SCALED" shorten delays (faster sim)
.SIM_DEVICE("3S1400AN"), // "3S50AN", "3S200AN", "3S400AN", "3S700AN", "3S1400AN"
.SIM_FACTORY_ID(64'h0), // Specifies the Pre-programmed factory ID value
.SIM_MEM_FILE("NONE"), // Name/location of file containing memory contents
.SIM_USER_ID(64'h0) // Specifies the programmed User ID value
) SPI_ACCESS_inst (
.MISO(MISO), // Serial output data from SPI PROM
.CLK(CLK), // SPI PROM clock input
.CSB(CSB), // SPI PROM enable input
.MOSI(MOSI) // Serial input data to SPI PROM
);
// End of SPI_ACCESS_inst instantiation
// DNA_PORT : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DNA_PORT_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// DNA_PORT: Access to the device-specific DNA value
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
DNA_PORT #(
.SIM_DNA_VALUE(57'h000000000000000) // Specifies the unique DNA value
// for simulation test
) DNA_PORT_inst (
.DOUT(DOUT), // 1-bit DNA output data
.CLK(CLK), // 1-bit clock input
.DIN(DIN), // 1-bit user data input pin
.READ(READ), // 1-bit input, active high load DNA, active low read
.SHIFT(SHIFT) // 1-bit input, active high shift enable
);
// End of DNA_PORT_inst instantiation
// IBUF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IBUF: Single-ended Input Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
IBUF #(
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for
// the buffer, "0"-"16" (Spartan-3E/3A only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input
// register, "AUTO", "0"-"8" (Spartan-3E/3A only)
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
)IBUF_inst (
.O(O), // Buffer output
.I(I) // Buffer input (connect directly to top-level port)
);
// End of IBUF_inst instantiation
// IBUFDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFDS: Differential Input Buffer
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
IBUFDS #(
.CAPACITANCE("DONT_CARE"), // "LOW", "NORMAL", "DONT_CARE" (Virtex-4 only)
.DIFF_TERM("FALSE"), // Differential Termination (Virtex-4/5, Spartan-3E/3A)
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for
// the buffer, "0"-"16" (Spartan-3E only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input
// register, "AUTO", "0"-"8" (Spartan-3E/3A only)
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);
// End of IBUFDS_inst instantiation
// IBUFG : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFG_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFG: Single-ended global clock input buffer
// All FPGA
// Xilinx HDL Language Template, version 10.1.2
IBUFG #(
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for
// the buffer, "0"-"16" (Spartan-3E/3A only)
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFG_inst (
.O(O), // Clock buffer output
.I(I) // Clock buffer input (connect directly to top-level port)
);
// End of IBUFG_inst instantiation
// IBUFGDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFGDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFGDS: Differential Global Clock Input Buffer
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
IBUFGDS #(
.DIFF_TERM("FALSE"), // Differential Termination (Virtex-4/5, Spartan-3E/3A)
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for
// the buffer, "0"-"16" (Spartan-3E/3A only)
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFGDS_inst (
.O(O), // Clock buffer output
.I(I), // Diff_p clock buffer input (connect directly to top-level port)
.IB(IB) // Diff_n clock buffer input (connect directly to top-level port)
);
// End of IBUFGDS_inst instantiation
// IBUF_DLY_ADJ : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUF_DLY_ADJ_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IBUF_DLY_ADJ: Dynamically Adjustable Delay, Single-ended Input Buffer
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
IBUF_DLY_ADJ #(
.DELAY_OFFSET("OFF"), // Enable Initial Delay Offset, "OFF" or "ON"
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
)IBUF_DLY_ADJ_inst (
.O(O), // Buffer output
.I(I), // Buffer input (connect directly to top-level port)
.S(S) // 3-bit buffer delay select input
);
// End of IBUF_DLY_ADJ_inst instantiation
// IBUFDS_DLY_ADJ : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUFDS_DLY_ADJ_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// IBUFDS_DLY_ADJ: Dynamically Adjustable Delay, Differential Input Buffer
// Spartan-3A
// Xilinx HDL Language Template, version 10.1.2
IBUFDS_DLY_ADJ #(
.DELAY_OFFSET("OFF"), // Enable Initial Delay Offset, "OFF" or "ON"
.DIFF_TERM("FALSE"), // Differential Termination
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_DLY_ADJ_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB), // Diff_n buffer input (connect directly to top-level port)
.S(S) // 3-bit buffer delay select input
);
// End of IBUFDS_DLY_ADJ_inst instantiation
// OBUF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUF: Single-ended Output Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
OBUF #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUF_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I) // Buffer input
);
// End of OBUF_inst instantiation
// OBUFDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUFDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUFDS: Differential Output Buffer
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
OBUFDS #(
.IOSTANDARD("DEFAULT") // Specify the output I/O standard
) OBUFDS_inst (
.O(O), // Diff_p output (connect directly to top-level port)
.OB(OB), // Diff_n output (connect directly to top-level port)
.I(I) // Buffer input
);
// End of OBUFDS_inst instantiation
// OBUFT : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUFT_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUFT: Single-ended 3-state Output Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
OBUFT #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFT_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of OBUFT_inst instantiation
// OBUFTDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUFTDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUFTDS: Differential 3-state Output Buffer
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
OBUFTDS #(
.IOSTANDARD("DEFAULT") // Specify the output I/O standard
) OBUFTDS_inst (
.O(O), // Diff_p output (connect directly to top-level port)
.OB(OB), // Diff_n output (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of OBUFTDS_inst instantiation
// DCIRESET : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (DCIRESET_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// DCIRESET: Digital Controlled Impedance (DCI) Reset Component
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
DCIRESET DCIRESET_inst (
.LOCKED(LOCKED), // 1-bit DCI LOCKED Output
.RST(RST) // 1-bit DCI Reset Input
);
// End of DCIRESET_inst instantiation
// IOBUF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IOBUF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IOBUF: Single-ended Bi-directional Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for the buffer, "0"-"16" (Spartan-3E only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input register, "AUTO", "0"-"8" (Spartan-3E only)
.IOSTANDARD("DEFAULT"), // Specify the I/O standard
.SLEW("SLOW") // Specify the output slew rate
) IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of IOBUF_inst instantiation
// IOBUFDS : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IOBUFDS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IOBUFDS: Differential Bi-directional Buffer
// Virtex-II/II-Pro/4/5, Spartan-3/3E/3A
// Xilinx HDL Language Template, version 10.1.2
IOBUFDS #(
.IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for the buffer, "0"-"16" (Spartan-3E only)
.IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input register, "AUTO", "0"-"8" (Spartan-3E only)
.IOSTANDARD("DEFAULT") // Specify the I/O standard
) IOBUFDS_inst (
.O(O), // Buffer output
.IO(IO), // Diff_p inout (connect directly to top-level port)
.IOB(IOB), // Diff_n inout (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of IOBUFDS_inst instantiation
// PULLUP : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PULLUP_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// PULLUP: I/O Buffer Weak Pull-up
// All FPGA, CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
PULLUP PULLUP_inst (
.O(O) // Pullup output (connect directly to top-level port)
);
// End of PULLUP_inst instantiation
// PULLDOWN : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PULLDOWN_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// PULLDOWN: I/O Buffer Weak Pull-down
// All FPGA
// Xilinx HDL Language Template, version 10.1.2
PULLDOWN PULLDOWN_inst (
.O(O) // Pulldown output (connect directly to top-level port)
);
// End of PULLDOWN_inst instantiation
// KEEPER : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (KEEPER_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// KEEPER: I/O Buffer Weak Keeper
// All FPGA, CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
KEEPER KEEPER_inst (
.O(O) // Keeper output (connect directly to top-level port)
);
// End of KEEPER_inst instantiation
// IDELAY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IDELAY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IDELAY: Input Delay Element
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
IDELAY #(
.IOBDELAY_TYPE("DEFAULT"), // "DEFAULT", "FIXED" or "VARIABLE"
.IOBDELAY_VALUE(0) // Any value from 0 to 63
) IDELAY_inst (
.O(O), // 1-bit output
.C(C), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.I(I), // 1-bit data input
.INC(INC), // 1-bit increment input
.RST(RST) // 1-bit reset input
);
// End of IDELAY_inst instantiation
// IDELAYCTRL : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IDELAYCTRL_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IDELAYCTRL: Input Delay Control Element (Must be used in conjunction with the IDELAY
// when used in FIXED or VARIABLE tap-delay mode)
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
IDELAYCTRL IDELAYCTRL_inst (
.RDY(RDY), // 1-bit ready output
.REFCLK(REFCLK), // 1-bit reference clock input
.RST(RST) // 1-bit reset input
);
// End of IDELAYCTRL_inst instantiation
// ISERDES : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ISERDES_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ISERDES: Source Synchronous Input Deserializer
// Virtex-4
// Xilinx HDL Language Template, version 10.1.2
ISERDES #(
.BITSLIP_ENABLE("FALSE"), // "TRUE"/"FALSE" to enable bitslip controller
// Must be "FALSE" if INTERFACE_TYPE set to "MEMORY"
.DATA_RATE("DDR"), // Specify data rate of "DDR" or "SDR"
.DATA_WIDTH(4), // Specify data width - For DDR 4,6,8, or 10
// For SDR 2,3,4,5,6,7, or 8
.INTERFACE_TYPE("MEMORY"), // Use model - "MEMORY" or "NETWORKING"
.IOBDELAY("NONE"), // Specify outputs where delay chain will be applied
// "NONE", "IBUF", "IFD", or "BOTH"
.IOBDELAY_TYPE("DEFAULT"), // Set tap delay "DEFAULT", "FIXED", or "VARIABLE"
.IOBDELAY_VALUE(0), // Set initial tap delay to an integer from 0 to 63
.NUM_CE(2), // Define number or clock enables to an integer of 1 or 2
.SERDES_MODE("MASTER") // Set SERDES mode to "MASTER" or "SLAVE"
) ISERDES_inst (
.O(O), // 1-bit combinatorial output
.Q1(Q1), // 1-bit registered output
.Q2(Q2), // 1-bit registered output
.Q3(Q3), // 1-bit registered output
.Q4(Q4), // 1-bit registered output
.Q5(Q5), // 1-bit registered output
.Q6(Q6), // 1-bit registered output
.SHIFTOUT1(SHIFTOUT1), // 1-bit carry output
.SHIFTOUT2(SHIFTOUT2), // 1-bit carry output
.BITSLIP(BITSLIP), // 1-bit Bitslip input
.CE1(CE1), // 1-bit clock enable input
.CE2(CE2), // 1-bit clock enable input
.CLK(CLK), // 1-bit clock input
.CLKDIV(CLKDIV), // 1-bit divided clock input
.D(D), // 1-bit serial data input
.DLYCE(DLYCE), // 1-bit delay chain enable input
.DLYINC(DLYINC), // 1-bit delay increment/decrement input
.DLYRST(DLYRST), // 1-bit delay chain reset input
.OCLK(OCLK), // 1-bit high-speed clock input
.REV(1'b0), // Must be tied to logic zero
.SHIFTIN1(SHIFTIN1), // 1-bit carry input
.SHIFTIN2(SHIFTIN2), // 1-bit carry input
.SR(SR) // 1-bit set/reset input
);
// End of ISERDES_inst instantiation
// OSERDES : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OSERDES_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OSERDES: Source Synchronous Output Serializer
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
OSERDES #(
.DATA_RATE_OQ("DDR"), // Specify data rate to "DDR" or "SDR"
.DATA_RATE_TQ("DDR"), // Specify data rate to "DDR", "SDR", or "BUF"
.DATA_WIDTH(4), // Specify data width - For DDR: 4,6,8, or 10
// For SDR or BUF: 2,3,4,5,6,7, or 8
.INIT_OQ(1'b0), // INIT for OQ register - 1'b1 or 1'b0
.INIT_TQ(1'b0), // INIT for OQ register - 1'b1 or 1'b0
.SERDES_MODE("MASTER"), // Set SERDES mode to "MASTER" or "SLAVE"
.SRVAL_OQ(1'b0), // Define OQ output value upon SR assertion - 1'b1 or 1'b0
.SRVAL_TQ(1'b0), // Define TQ output value upon SR assertion - 1'b1 or 1'b0
.TRISTATE_WIDTH(4) // Specify parallel to serial converter width
// When DATA_RATE_TQ = DDR: 2 or 4
// When DATA_RATE_TQ = SDR or BUF: 1
) OSERDES_inst (
.OQ(OQ), // 1-bit data path output
.SHIFTOUT1(SHIFTOUT1), // 1-bit data expansion output
.SHIFTOUT2(SHIFTOUT2), // 1-bit data expansion output
.TQ(TQ), // 1-bit 3-state control output
.CLK(CLK), // 1-bit clock input
.CLKDIV(CLKDIV), // 1-bit divided clock input
.D1(D1), // 1-bit parallel data input
.D2(D2), // 1-bit parallel data input
.D3(D3), // 1-bit parallel data input
.D4(D4), // 1-bit parallel data input
.D5(D5), // 1-bit parallel data input
.D6(D6), // 1-bit parallel data input
.OCE(OCE), // 1-bit clock enable input
.REV(1'b0), // Must be tied to logic zero
.SHIFTIN1(SHIFTIN1), // 1-bit data expansion input
.SHIFTIN2(SHIFTIN2), // 1-bit data expansion input
.SR(SR), // 1-bit set/reset input
.T1(T1), // 1-bit parallel 3-state input
.T2(T2), // 1-bit parallel 3-state input
.T3(T3), // 1-bit parallel 3-state input
.T4(T4), // 1-bit parallel 3-state input
.TCE(TCE) // 1-bit 3-state signal clock enable input
);
// End of OSERDES_inst instantiation
// IODELAY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IODELAY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IODELAY: Input and/or Output Fixed/variable Delay Element
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
IODELAY # (
.DELAY_SRC("I"), // Specify which input port to be used, "I"=IDATAIN,
// "O"=ODATAIN, "DATAIN"=DATAIN, "IO"=Bi-directional
.HIGH_PERFORMANCE_MODE("TRUE"), // "TRUE" specifies lower jitter
// at expense of more power
.IDELAY_TYPE("DEFAULT"), // "DEFAULT", "FIXED" or "VARIABLE"
.IDELAY_VALUE(0), // 0 to 63 tap values
.ODELAY_VALUE(0), // 0 to 63 tap values
.REFCLK_FREQUENCY(200.0), // Frequency used for IDELAYCTRL
// 175.0 to 225.0
.SIGNAL_PATTERN("DATA") // Input signal type, "CLOCK" or "DATA"
) IODELAY_INST (
.DATAOUT(DATAOUT), // 1-bit delayed data output
.C(C), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.DATAIN(DATAIN), // 1-bit internal data input
.IDATAIN(IDATAIN), // 1-bit input data input (connect to port)
.INC(INC), // 1-bit increment/decrement input
.ODATAIN(ODATAIN), // 1-bit output data input
.RST(RST), // 1-bit active high, synch reset input
.T(T) // 1-bit 3-state control input
);
// End of IODELAY_inst instantiation
// ISERDES_NODELAY : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ISERDES_NODELAY_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ISERDES_NODELAY: Input SERial / DESerilizer
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
ISERDES_NODELAY #(
.BITSLIP_ENABLE("FALSE"), // "TRUE"/"FALSE" to enable bitslip controller
// Must be "FALSE" if INTERFACE_TYPE set to "MEMORY"
.DATA_RATE("DDR"), // Specify data rate of "DDR" or "SDR"
.DATA_WIDTH(4), // Specify data width -
// NETWORKING SDR: 2, 3, 4, 5, 6, 7, 8 : DDR 4, 6, 8, 10
// MEMORY SDR N/A : DDR 4
.INTERFACE_TYPE("MEMORY"), // Use model - "MEMORY" or "NETWORKING"
.NUM_CE(2), // Number of clock enables used, 1 or 2
.SERDES_MODE("MASTER") // Set SERDES mode to "MASTER" or "SLAVE"
) ISERDES_NODELAY_inst (
.Q1(Q1), // 1-bit registered SERDES output
.Q2(Q2), // 1-bit registered SERDES output
.Q3(Q3), // 1-bit registered SERDES output
.Q4(Q4), // 1-bit registered SERDES output
.Q5(Q5), // 1-bit registered SERDES output
.Q6(Q6), // 1-bit registered SERDES output
.SHIFTOUT1(SHIFTOUT1), // 1-bit cascade Master/Slave output
.SHIFTOUT2(SHIFTOUT2), // 1-bit cascade Master/Slave output
.BITSLIP(BITSLIP), // 1-bit Bitslip enable input
.CE1(CE1), // 1-bit clock enable input
.CE2(CE2), // 1-bit clock enable input
.CLK(CLK), // 1-bit master clock input
.CLKB(CLKB), // 1-bit secondary clock input for DATA_RATE=DDR
.CLKDIV(CLKDIV), // 1-bit divided clock input
.D(D), // 1-bit data input, connects to IODELAY or input buffer
.OCLK(OCLK), // 1-bit fast output clock input
.RST(RST), // 1-bit asynchronous reset input
.SHIFTIN1(SHIFTIN1), // 1-bit cascade Master/Slave input
.SHIFTIN2(SHIFTIN2) // 1-bit cascade Master/Slave input
);
// End of ISERDES_NODELAY_inst instantiation
// IFDDRCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IFDDRCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IFDDRCPE: Double Data Rate Input Register with Async. Clear, Async. Preset
// and Clock Enable.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
IFDDRCPE IFDDRCPE_inst (
.Q0(Q0), // Posedge data output
.Q1(Q1), // Negedge data output
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous reset input
.D(D), // Data input (connect directly to top-level port)
.PRE(PRE) // Asynchronous preset input
);
// End of IFDDRCPE_inst instantiation
// IFDDRRSE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IFDDRRSE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IFDDRRSE: Double Data Rate Input Register with Sync. Clear, Sync. Preset
// and Clock Enable.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
IFDDRRSE IFDDRRSE_inst (
.Q0(Q0), // Posedge data output
.Q1(Q1), // Negedge data output
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.D(D), // Data input (connect directly to top-level port)
.R(R), // Synchronous reset input
.S(S) // Synchronous preset input
);
// End of IFDDRRSE_inst instantiation
// OFDDRCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OFDDRCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OFDDRCPE: Double Data Rate Output Register with Async. Clear, Async. Preset
// and Clock Enable.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
OFDDRCPE OFDDRCPE_inst (
.Q(Q), // Data output (connect directly to top-level port)
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous reset input
.D0(D0), // Posedge data input
.D1(D1), // Negedge data input
.PRE(PRE) // Asynchronous preset input
);
// End of OFDDRCPE_inst instantiation
// OFDDRRSE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OFDDRRSE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OFDDRRSE: Double Data Rate Input Register with Sync. Clear, Sync. Preset
// and Clock Enable.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
OFDDRRSE OFDDRRSE_inst (
.Q(Q), // Data output (connect directly to top-level port)
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.D0(D0), // Posedge data input
.D1(D1), // Negedge data input
.R(R), // Synchronous reset input
.S(S) // Synchronous preset input
);
// End of OFDDRRSE_inst instantiation
// OFDDRTCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OFDDRTCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OFDDRTCPE: Double Data Rate Output Register with Async. Clear, Async. Preset
// and Clock Enable with 3-state.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
OFDDRTCPE OFDDRTCPE_inst (
.O(O), // Data output (connect directly to top-level port)
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous reset input
.D0(D0), // Posedge data input
.D1(D1), // Negedge data input
.PRE(PRE), // Asynchronous preset input
.T(T) // 3-state enable input
);
// End of OFDDRTCPE_inst instantiation
// OFDDRTRSE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OFDDRTRSE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OFDDRTRSE: Double Data Rate Input Register with Sync. Clear, Sync. Preset
// and Clock Enable with 3-state.
// Virtex-II/II-Pro, Spartan-3
// Xilinx HDL Language Template, version 10.1.2
OFDDRTRSE OFDDRTRSE_inst (
.Q(Q), // Data output (connect directly to top-level port)
.C0(C0), // 0 degree clock input
.C1(C1), // 180 degree clock input
.CE(CE), // Clock enable input
.D0(D0), // Posedge data input
.D1(D1), // Negedge data input
.R(R), // Synchronous reset input
.S(S), // Synchronous preset input
.T(T) // 3-state enable input
);
// End of OFDDRTRSE_inst instantiation
// IDDR : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IDDR_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IDDR: Input Double Data Rate Input Register with Set, Reset
// and Clock Enable.
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
IDDR #(
.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE", "SAME_EDGE"
// or "SAME_EDGE_PIPELINED"
.INIT_Q1(1'b0), // Initial value of Q1: 1'b0 or 1'b1
.INIT_Q2(1'b0), // Initial value of Q2: 1'b0 or 1'b1
.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
) IDDR_inst (
.Q1(Q1), // 1-bit output for positive edge of clock
.Q2(Q2), // 1-bit output for negative edge of clock
.C(C), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.D(D), // 1-bit DDR data input
.R(R), // 1-bit reset
.S(S) // 1-bit set
);
// End of IDDR_inst instantiation
// ODDR : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ODDR_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ODDR: Output Double Data Rate Output Register with Set, Reset
// and Clock Enable.
// Virtex-4/5
// Xilinx HDL Language Template, version 10.1.2
ODDR #(
.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE"
.INIT(1'b0), // Initial value of Q: 1'b0 or 1'b1
.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
) ODDR_inst (
.Q(Q), // 1-bit DDR output
.C(C), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.D1(D1), // 1-bit data input (positive edge)
.D2(D2), // 1-bit data input (negative edge)
.R(R), // 1-bit reset
.S(S) // 1-bit set
);
// End of ODDR_inst instantiation
// IDDR2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IDDR2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IDDR2: Input Double Data Rate Input Register with Set, Reset
// and Clock Enable.
// Spartan-3E/3A
// Xilinx HDL Language Template, version 10.1.2
IDDR2 #(
.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
.INIT_Q0(1'b0), // Sets initial state of the Q0 output to 1'b0 or 1'b1
.INIT_Q1(1'b0), // Sets initial state of the Q1 output to 1'b0 or 1'b1
.SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
) IDDR2_inst (
.Q0(Q0), // 1-bit output captured with C0 clock
.Q1(Q1), // 1-bit output captured with C1 clock
.C0(C0), // 1-bit clock input
.C1(C1), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.D(D), // 1-bit DDR data input
.R(R), // 1-bit reset input
.S(S) // 1-bit set input
);
// End of IDDR2_inst instantiation
// ODDR2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (ODDR2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// ODDR2: Output Double Data Rate Output Register with Set, Reset
// and Clock Enable.
// Spartan-3E/3A
// Xilinx HDL Language Template, version 10.1.2
ODDR2 #(
.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
.INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1
.SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
) ODDR2_inst (
.Q(Q), // 1-bit DDR output data
.C0(C0), // 1-bit clock input
.C1(C1), // 1-bit clock input
.CE(CE), // 1-bit clock enable input
.D0(D0), // 1-bit data input (associated with C0)
.D1(D1), // 1-bit data input (associated with C1)
.R(R), // 1-bit reset input
.S(S) // 1-bit set input
);
// End of ODDR2_inst instantiation
// IDDR_2CLK : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IDDR_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IDDR_2CLK: Dual-Clock, Input Double Data Rate Input Register with
// Set, Reset and Clock Enable.
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
IDDR_2CLK #(
.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE", "SAME_EDGE"
// or "SAME_EDGE_PIPELINED"
.INIT_Q1(1'b0), // Initial value of Q1: 1'b0 or 1'b1
.INIT_Q2(1'b0), // Initial value of Q2: 1'b0 or 1'b1
.SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
) IDDR_2CLK_inst (
.Q1(Q1), // 1-bit output for positive edge of clock
.Q2(Q2), // 1-bit output for negative edge of clock
.C(C), // 1-bit primay clock input
.CB(CB), // 1-bit secondary clock input
.CE(CE), // 1-bit clock enable input
.D(D), // 1-bit DDR data input
.R(R), // 1-bit reset
.S(S) // 1-bit set
);
// End of IDDR_2CLK_inst instantiation
// FDCE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCE: Single Data Rate D Flip-Flop with Asynchronous Clear and
// Clock Enable (posedge clk).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCE #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D) // Data input
);
// End of FDCE_inst instantiation
// FDCE_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCE_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCE_1: Single Data Rate D Flip-Flop with Asynchronous Clear and
// Clock Enable (negedge clock).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCE_1 #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCE_1_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D) // Data input
);
// End of FDCE_1_inst instantiation
// FDCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCPE: Single Data Rate D Flip-Flop with Asynchronous Clear, Set and
// Clock Enable (posedge clk).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCPE #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCPE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D), // Data input
.PRE(PRE) // Asynchronous set input
);
// End of FDCPE_inst instantiation
// FDCPE_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCPE_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCPE_1: Single Data Rate D Flip-Flop with Asynchronous Clear, Set and
// Clock Enable (negedge clock).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCPE_1 #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCPE_1_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D), // Data input
.PRE(PRE) // Asynchronous set input
);
// End of FDCPE_1_inst instantiation
// FDRSE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCRS_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDRSE: Single Data Rate D Flip-Flop with Synchronous Clear, Set and
// Clock Enable (posedge clk).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDRSE #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDRSE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.D(D), // Data input
.R(R), // Synchronous reset input
.S(S) // Synchronous set input
);
// End of FDRSE_inst instantiation
// FDRSE_1 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDRSE_1_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDRSE_1: Single Data Rate D Flip-Flop with Synchronous Clear, Set and
// Clock Enable (negedge clock).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDRSE_1 #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDRSE_1_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.D(D), // Data input
.R(R), // Synchronous reset input
.S(S) // Synchronous set input
);
// End of FDRSE_1_inst instantiation
// LDCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (LDCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// LDCPE: Transparent latch with Asynchronous Reset, Preset and
// Gate Enable.
// All families.
// Xilinx HDL Language Template, version 10.1.2
LDCPE #(
.INIT(1'b0) // Initial value of latch (1'b0 or 1'b1)
) LDCPE_inst (
.Q(Q), // Data output
.CLR(CLR), // Asynchronous clear/reset input
.D(D), // Data input
.G(G), // Gate input
.GE(GE), // Gate enable input
.PRE(PRE) // Asynchronous preset/set input
);
// End of LDCPE_inst instantiation
// SYSMON : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (SYSMON_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// SYSMON: System Monitor
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
SYSMON #(
.INIT_40(16'h0), // Configuration register 0
.INIT_41(16'h0), // Configuration register 1
.INIT_42(16'h0), // Configuration register 2
.INIT_43(16'h0), // Test register 0
.INIT_44(16'h0), // Test register 1
.INIT_45(16'h0), // Test register 2
.INIT_46(16'h0), // Test register 3
.INIT_47(16'h0), // Test register 4
.INIT_48(16'h0), // Sequence register 0
.INIT_49(16'h0), // Sequence register 1
.INIT_4A(16'h0), // Sequence register 2
.INIT_4B(16'h0), // Sequence register 3
.INIT_4C(16'h0), // Sequence register 4
.INIT_4D(16'h0), // Sequence register 5
.INIT_4E(16'h0), // Sequence register 6
.INIT_4F(16'h0), // Sequence register 7
.INIT_50(16'h0), // Alarm limit register 0
.INIT_51(16'h0), // Alarm limit register 1
.INIT_52(16'h0), // Alarm limit register 2
.INIT_53(16'h0), // Alarm limit register 3
.INIT_54(16'h0), // Alarm limit register 4
.INIT_55(16'h0), // Alarm limit register 5
.INIT_56(16'h0), // Alarm limit register 6
.INIT_57(16'h0), // Alarm limit register 7
.SIM_MONITOR_FILE("design.txt") // Simulation analog entry file
) SYSMON_inst (
.ALM(ALM), // 3-bit output for temp, Vccint and Vccaux
.BUSY(BUSY), // 1-bit output ADC busy signal
.CHANNEL(CHANNEL), // 5-bit output channel selection
.DO(DO), // 16-bit output data bus for dynamic reconfig
.DRDY(DRDY), // 1-bit output data ready for dynamic reconfig
.EOC(EOC), // 1-bit output end of conversion
.EOS(EOS), // 1-bit output end of sequence
.JTAGBUSY(JTAGBUSY), // 1-bit output JTAG DRP busy
.JTAGLOCKED(JTAGLOCKED), // 1-bit output DRP port lock
.JTAGMODIFIED(JTAGMODIFIED), // 1-bit output JTAG write to DRP
.OT(OT), // 1-bit output over temperature alarm
.CONVST(CONVST), // 1-bit input convert start
.CONVSTCLK(CONVSTCLK), // 1-bit input convert start clock
.DADDR(DADDR), // 7-bit input address bus for dynamic reconfig
.DCLK(DCLK), // 1-bit input clock for dynamic reconfig
.DEN(DEN), // 1-bit input enable for dynamic reconfig
.DI(DI), // 16-bit input data bus for dynamic reconfig
.DWE(DWE), // 1-bit input write enable for dynamic reconfig
.RESET(RESET), // 1-bit input active high reset
.VAUXN(VAUXN), // 16-bit input N-side auxiliary analog input
.VAUXP(VAUXP), // 16-bit input P-side auxiliary analog input
.VN(VN), // 1-bit input N-side analog input
.VP(VP) // 1-bit input P-side analog input
);
// End of SYSMON_inst instantiation
// Must use valid headers on all columns
// Comments can be added to the stimulus file using '//'
TIME TEMP VCCAUX VCCINT VP VN VAUXP[0] VAUXN[0]
00000 45 2.5 1.0 0.5 0.0 0.7 0.0
05000 85 2.45 1.1 0.3 0.0 0.2 0.0
// Time stamp data is in nano seconds (ns)
// Temperature is recorded in C (degrees centigrade)
// All other channels are recorded as V (Volts)
// Valid column headers are:
// TIME, TEMP, VCCAUX, VCCINT, VP, VN,
// VAUXP[0], VAUXN[0],...............VAUXP[15], VAUXN[15]
// External analog inputs are differential so VP = 0.5 and VN = 0.0 the
// input on channel VP/VN in 0.5 - 0.0 = 0.5V
// BUFG : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BUFG_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BUFG: Global Clock Buffer (source by an internal signal)
// Xilinx HDL Language Template, version 10.1.2
BUFG BUFG_inst (
.O(O), // Clock buffer output
.I(I) // Clock buffer input
);
// End of BUFG_inst instantiation
// CLK_DIV2 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV2_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV2: Simple clock Divide by 2
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV2 CLK_DIV2_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV2_inst instantiation
// CLK_DIV2R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV2R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV2R: Clock Divide by 2 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV2R CLK_DIV2R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV2R_inst instantiation
// CLK_DIV2SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV2SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV2SD: Clock Divide by 2 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV2SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV2SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV2SD_inst instantiation
// CLK_DIV2RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV2RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV2RSD: Clock Divide by 2 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV2RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV2RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV2RSD_inst instantiation
// CLK_DIV4 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV4_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV4: Simple clock Divide by 4
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV4 CLK_DIV4_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV4_inst instantiation
// CLK_DIV4R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV4R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV4R: Clock Divide by 4 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV4R CLK_DIV4R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV4R_inst instantiation
// CLK_DIV4SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV4SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV4SD: Clock Divide by 4 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV4SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV4SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV4SD_inst instantiation
// CLK_DIV4RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV4RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV4RSD: Clock Divide by 4 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV4RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV4RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV4RSD_inst instantiation
// CLK_DIV6 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV6_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV6: Simple clock Divide by 6
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV6 CLK_DIV6_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV6_inst instantiation
// CLK_DIV6R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV6R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV6R: Clock Divide by 6 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV6R CLK_DIV6R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV6R_inst instantiation
// CLK_DIV6SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV6SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV6SD: Clock Divide by 6 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV6SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV6SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV6SD_inst instantiation
// CLK_DIV6RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV6RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV6RSD: Clock Divide by 6 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV6RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV6RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV6RSD_inst instantiation
// CLK_DIV8 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV8_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV8: Simple clock Divide by 8
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV8 CLK_DIV8_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV8_inst instantiation
// CLK_DIV8R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV8R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV8R: Clock Divide by 8 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV8R CLK_DIV8R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV8R_inst instantiation
// CLK_DIV8SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV8SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV8SD: Clock Divide by 8 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV8SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV8SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV8SD_inst instantiation
// CLK_DIV8RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV8RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV8RSD: Clock Divide by 8 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV8RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV8RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV8RSD_inst instantiation
// CLK_DIV10 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV10_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV10: Simple clock Divide by 10
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV10 CLK_DIV10_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV10_inst instantiation
// CLK_DIV10R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV10R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV10R: Clock Divide by 10 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV10R CLK_DIV10R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV10R_inst instantiation
// CLK_DIV10SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV10SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV10SD: Clock Divide by 10 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV10SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV10SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV10SD_inst instantiation
// CLK_DIV10RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV10RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV10RSD: Clock Divide by 10 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV10RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV10RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV10RSD_inst instantiation
// CLK_DIV12 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV12_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV12: Simple clock Divide by 12
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV12 CLK_DIV12_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV12_inst instantiation
// CLK_DIV12R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV12R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV12R: Clock Divide by 12 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV12R CLK_DIV12R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV12R_inst instantiation
// CLK_DIV12SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV12SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV12SD: Clock Divide by 12 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV12SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV12SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV12SD_inst instantiation
// CLK_DIV12RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV12RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV12RSD: Clock Divide by 12 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV12RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV12RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV12RSD_inst instantiation
// CLK_DIV14 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV14_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV14: Simple clock Divide by 14
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV14 CLK_DIV14_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV14_inst instantiation
// CLK_DIV14R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV14R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV14R: Clock Divide by 14 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV14R CLK_DIV14R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV14R_inst instantiation
// CLK_DIV14SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV14SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV14SD: Clock Divide by 14 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV14SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV14SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV14SD_inst instantiation
// CLK_DIV14RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV14RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV14RSD: Clock Divide by 14 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV14RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV14RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV14RSD_inst instantiation
// CLK_DIV16 : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV16_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV16: Simple clock Divide by 16
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV16 CLK_DIV16_inst (
.CLKDV(CLKDV), // Divided clock output
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV16_inst instantiation
// CLK_DIV16R : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV16R_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV16R: Clock Divide by 16 with synchronous reset
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV16R CLK_DIV16R_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV16R_inst instantiation
// CLK_DIV16SD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV16SD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV16SD: Clock Divide by 16 with start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV16SD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV16SD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV16SD_inst instantiation
// CLK_DIV16RSD : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (CLK_DIV16RSD_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// CLK_DIV16RSD: Clock Divide by 16 with synchronous reset and start delay
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
CLK_DIV16RSD #(
.DIVIDER_DELAY(1) // Number of clock cycles to delay before starting
) CLK_DIV16RSD_inst (
.CLKDV(CLKDV), // Divided clock output
.CDRST(CDRST), // Synchronous reset input
.CLKIN(CLKIN) // Clock input
);
// End of CLK_DIV16RSD_inst instantiation
// IBUF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (IBUF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// IBUF: Single-ended Input Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
IBUF #(
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUF_inst (
.O(O), // Buffer output
.I(I) // Buffer input (connect directly to top-level port)
);
// End of IBUF_inst instantiation
// OBUF : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUF_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUF: Single-ended Output Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
OBUF #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUF_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I) // Buffer input
);
// End of OBUF_inst instantiation
// OBUFT : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (OBUFT_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// OBUFT: Single-ended 3-state Output Buffer
// All devices
// Xilinx HDL Language Template, version 10.1.2
OBUFT #(
.DRIVE(12), // Specify the output drive strength
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFT_inst (
.O(O), // Buffer output (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input
);
// End of OBUFT_inst instantiation
// PULLUP : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (PULLUP_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// PULLUP: I/O Buffer Weak Pull-up
// All FPGA, CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
PULLUP PULLUP_inst (
.O(O) // Pullup output (connect directly to top-level port)
);
// End of PULLUP_inst instantiation
// KEEPER : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (KEEPER_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design.
// <-----Cut code below this line---->
// KEEPER: I/O Buffer Weak Keeper
// All FPGA, CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
KEEPER KEEPER_inst (
.O(O) // Keeper output (connect directly to top-level port)
);
// End of KEEPER_inst instantiation
// FDDCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDDCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDDCPE: Double Data Rate Register with Asynchronous Clear and Set
// and Clock Enable (Clear has priority).
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
FDDCPE FDDCPE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D), // Data input
.PRE(PRE) // Asynchronous set input
);
// End of FDDCPE_inst instantiation
// FTDCPLE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FTDCPLE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FTDCPLE: Double Data Rate T Flip-Flop with Asynchronous Clear, Set,
// Load and Clock Enable (Clear has priority).
// CoolRunner-II
// Xilinx HDL Language Template, version 10.1.2
FTDCPLE FTDCPLE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D), // Load data input
.L(L), // Load enable input
.PRE(PRE), // Asynchronous set input
.T(T) // T data input
);
// End of FTDCPLE_inst instantiation
// FDCE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCE: Single Data Rate D Flip-Flop with Asynchronous Clear and
// Clock Enable (posedge clk).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCE #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D) // Data input
);
// End of FDCE_inst instantiation
// FDCPE : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FDCPE_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. Delete or comment
// : out inputs/outs that are not necessary.
// <-----Cut code below this line---->
// FDCPE: Single Data Rate D Flip-Flop with Asynchronous Clear, Set and
// Clock Enable (posedge clk).
// All families.
// Xilinx HDL Language Template, version 10.1.2
FDCPE #(
.INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
) FDCPE_inst (
.Q(Q), // Data output
.C(C), // Clock input
.CE(CE), // Clock enable input
.CLR(CLR), // Asynchronous clear input
.D(D), // Data input
.PRE(PRE) // Asynchronous set input
);
// End of FDCPE_inst instantiation
// BRAM_SINGLE_MACRO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BRAM_SINGLE_MACRO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BRAM_SINGLE_MACRO: Single Port RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
BRAM_SINGLE_MACRO #(
.BRAM_SIZE("18Kb"), // Target BRAM, "18Kb" or "36Kb"
.DEVICE("VIRTEX5"), // Target Device: "VIRTEX5"
.DO_REG(0), // Optional output register (0 or 1)
.INIT(36'h000000000), // Initial values on output port
.INIT_FILE ("NONE"),
.WRITE_WIDTH(0), // Valid values are 1, 2, 4, 9, 18, 36 or 72 (72 only valid when BRAM_SIZE="36Kb")
.READ_WIDTH(0), // Valid values are 1, 2, 4, 9, 18, 36 or 72 (72 only valid when BRAM_SIZE="36Kb")
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.SRVAL(36'h000000000), // Set/Reset value for port output
.WRITE_MODE("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INIT_xx are valid when configured as 36Kb
.INIT_40(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_41(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_42(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_43(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_44(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_45(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_46(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_47(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_48(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_49(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_50(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_51(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_52(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_53(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_54(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_55(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_56(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_57(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_58(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_59(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_60(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_61(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_62(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_63(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_64(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_65(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_66(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_67(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_68(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_69(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_70(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_71(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_72(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_73(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_74(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_75(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_76(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_77(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_78(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_79(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INIT_xx are valid when configured as 36Kb
.INITP_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) BRAM_SINGLE_MACRO_inst (
.DO(DO), // Output data
.ADDR(ADDR), // Input address
.CLK(CLK), // Input clock
.DI(DI), // Input data port
.EN(EN), // Input RAM enable
.REGCE(REGCE), // Input output register enable
.RST(RST), // Input reset
.WE(WE) // Input write enable
);
// End of BRAM_SINGLE_MACRO_inst instantiation
// BRAM_SDP_MACRO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BRAM_SDP_MACRO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BRAM_SDP_MACRO: Simple Dual Port RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
BRAM_SDP_MACRO #(
.BRAM_SIZE("18Kb"), // Target BRAM, "18Kb" or "36Kb"
.DEVICE("VIRTEX5"), // Target device: "VIRTEX5"
.WRITE_WIDTH(0), // Valid values are 1, 2, 4, 9, 18, 36 or 72 (72 only valid when BRAM_SIZE="36Kb")
.READ_WIDTH(0), // Valid values are 1, 2, 4, 9, 18, 36 or 72 (72 only valid when BRAM_SIZE="36Kb")
.DO_REG(0), // Optional output register (0 or 1)
.INIT_FILE ("NONE"),
.SIM_COLLISION_CHECK ("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.SRVAL(72'h000000000000000000), // Set/Reset value for port output
.INIT(72'h000000000000000000), // Initial values on output port
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INIT_xx are valid when configured as 36Kb
.INIT_40(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_41(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_42(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_43(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_44(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_45(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_46(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_47(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_48(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_49(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_50(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_51(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_52(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_53(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_54(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_55(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_56(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_57(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_58(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_59(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_60(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_61(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_62(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_63(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_64(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_65(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_66(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_67(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_68(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_69(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_70(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_71(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_72(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_73(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_74(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_75(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_76(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_77(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_78(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_79(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are valid when configured as 36Kb
.INITP_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) BRAM_SDP_MACRO_inst (
.DO(DO), // Output read data port
.DI(DI), // Input write data port
.RDADDR(RDADDR), // Input read address
.RDCLK(RDCLK), // Input read clock
.RDEN(RDEN), // Input read port enable
.REGCE(REGCE), // Input read output register enable
.RST(RST), // Input reset
.WE(WE), // Input write enable
.WRADDR(WRADDR), // Input write address
.WRCLK(WRCLK), // Input write clock
.WREN(WREN) // Input write port enable
);
// End of BRAM_SDP_MACRO_inst instantiation
// BRAM_TDP_MACRO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (BRAM_TDP_MACRO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// BRAM_TDP_MACRO: True Dual Port RAM
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
BRAM_TDP_MACRO #(
.BRAM_SIZE("18Kb"), // Target BRAM: "18Kb" or "36Kb"
.DEVICE("VIRTEX5"), // Target device: "VIRTEX5"
.DOA_REG(0), // Optional port A output register (0 or 1)
.DOB_REG(0), // Optional port B output register (0 or 1)
.INIT_A(36'h0000000), // Initial values on port A output port
.INIT_B(36'h00000000), // Initial values on port B output port
.INIT_FILE ("NONE"),
.READ_WIDTH_A (0), // Valid values are 1, 2, 4, 9, 18 or 36 (36 only valid when BRAM_SIZE="36Kb")
.READ_WIDTH_B (0), // Valid values are 1, 2, 4, 9, 18 or 36 (36 only valid when BRAM_SIZE="36Kb")
.SIM_COLLISION_CHECK ("ALL"), // Collision check enable "ALL", "WARNING_ONLY",
// "GENERATE_X_ONLY" or "NONE"
.SIM_MODE("SAFE"), // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
.SRVAL_A(36'h00000000), // Set/Reset value for port A output
.SRVAL_B(36'h00000000), // Set/Reset value for port B output
.WRITE_MODE_A("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_MODE_B("WRITE_FIRST"), // "WRITE_FIRST", "READ_FIRST", or "NO_CHANGE"
.WRITE_WIDTH_A(0), // Valid values are 1, 2, 4, 9, 18 or 36 (36 only valid when BRAM_SIZE="36Kb")
.WRITE_WIDTH_B(0), // Valid values are 1, 2, 4, 9, 18 or 36 (36 only valid when BRAM_SIZE="36Kb")
.INIT_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_0F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_10(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_11(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_12(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_13(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_14(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_15(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_16(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_17(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_18(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_19(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_1F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_20(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_21(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_22(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_23(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_24(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_25(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_26(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_27(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_28(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_29(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_2F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_30(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_31(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_32(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_33(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_34(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_35(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_36(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_37(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_38(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_39(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_3F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INIT_xx are valid when configured as 36Kb
.INIT_40(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_41(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_42(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_43(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_44(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_45(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_46(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_47(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_48(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_49(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_4F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_50(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_51(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_52(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_53(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_54(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_55(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_56(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_57(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_58(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_59(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_5F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_60(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_61(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_62(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_63(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_64(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_65(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_66(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_67(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_68(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_69(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_6F(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_70(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_71(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_72(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_73(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_74(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_75(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_76(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_77(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_78(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_79(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INIT_7F(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are for the parity bits
.INIT_FF(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_00(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_01(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_02(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_03(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_04(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_05(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_06(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_07(256'h0000000000000000000000000000000000000000000000000000000000000000),
// The next set of INITP_xx are valid when configured as 36Kb
.INITP_08(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_09(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0A(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0B(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0C(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0D(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0E(256'h0000000000000000000000000000000000000000000000000000000000000000),
.INITP_0F(256'h0000000000000000000000000000000000000000000000000000000000000000)
) BRAM_TDP_MACRO_inst (
.DOA(DOA), // Output port-A data
.DOB(DOB), // Output port-B data
.ADDRA(ADDRA), // Input port-A address
.ADDRB(ADDRB), // Input port-B address
.CLKA(CLKA), // Input port-A clock
.CLKB(CLKB), // Input port-B clock
.DIA(DIA), // Input port-A data
.DIB(DIB), // Input port-B data
.ENA(ENA), // Input port-A enable
.ENB(ENB), // Input port-B enable
.REGCEA(REGCEA), // Input port-A output register enable
.REGCEB(REGCEB), // Input port-B output register enable
.RSTA(RSTA), // Input port-A reset
.RSTB(RSTB), // Input port-B reset
.WEA(WEA), // Input port-A write enable
.WEB(WEB) // Input port-B write enable
);
// End of BRAM_TDP_MACRO_inst instantiation
// FIFO_DUALCLOCK_MACRO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO_DUALCLOCK_MACRO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO_DUALCLOCK_MACRO: Dual Clock First-In, First-Out (FIFO) RAM Buffer
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO_DUALCLOCK_MACRO #(
.ALMOST_EMPTY_OFFSET(9'h080), // Sets the almost empty threshold
.ALMOST_FULL_OFFSET(9'h080), // Sets almost full threshold
.DATA_WIDTH(0), // Valid values are 4, 9, 18, 36 or 72 (72 only valid when FIFO_SIZE="36Kb")
.DEVICE("VIRTEX5"), // Target device: "VIRTEX5"
.FIFO_SIZE ("18Kb"), // Target BRAM: "18Kb" or "36Kb"
.FIRST_WORD_FALL_THROUGH ("FALSE"), // Sets the FIFO FWFT to "TRUE" or "FALSE"
.SIM_MODE("SAFE") // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
) FIFO_DUALCLOCK_MACRO (
.ALMOSTEMPTY(ALMOSTEMPTY), // Output almost empty
.ALMOSTFULL(ALMOSTFULL), // Output almost full
.DO(DO), // Output data
.EMPTY(EMPTY), // Output empty
.FULL(FULL), // Output full
.RDCOUNT(RDCOUNT), // Output read count
.RDERR(RDERR), // Output read error
.WRCOUNT(WRCOUNT), // Output write count
.WRERR(WRERR), // Output write error
.DI(DI), // Input data
.RDCLK(RDCLK), // Input read clock
.RDEN(RDEN), // Input read enable
.RST(RST), // Input reset
.WRCLK(WRCLK), // Input write clock
.WREN(WREN) // Input write enable
);
// End of FIFO_DUALCLOCK_MACRO_inst instantiation
// FIFO_SYNC_MACRO : In order to incorporate this function into the design,
// Verilog : the following instance declaration needs to be placed
// instance : in the body of the design code. The instance name
// declaration : (FIFO_SYNC_MACRO_inst) and/or the port declarations within the
// code : parenthesis may be changed to properly reference and
// : connect this function to the design. All inputs
// : and outputs must be connected.
// <-----Cut code below this line---->
// FIFO_SYNC_MACRO: Synchronous First-In, First-Out (FIFO) RAM Buffer
// Virtex-5
// Xilinx HDL Language Template, version 10.1.2
FIFO_SYNC_MACRO #(
.DEVICE("VIRTEX5"), // Target Device: "VIRTEX5"
.ALMOST_EMPTY_OFFSET(9'h080), // Sets the almost empty threshold
.ALMOST_FULL_OFFSET(9'h080), // Sets almost full threshold
.DATA_WIDTH(0), // Valid values are 4, 9, 18, 36 or 72 (72 only valid when FIFO_SIZE="36Kb")
.DEVICE("VIRTEX5"), // Target device: "VIRTEX5"
.DO_REG(0), // Optional output register (0 or 1)
.FIFO_SIZE ("18Kb"), // Target BRAM: "18Kb" or "36Kb"
.SIM_MODE("SAFE") // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
) FIFO_SYNC_MACRO_inst (
.ALMOSTEMPTY(ALMOSTEMPTY), // Output almost empty
.ALMOSTFULL(ALMOSTFULL), // Output almost full
.DO(DO), // Output data
.EMPTY(EMPTY), // Output empty
.FULL(FULL), // Output full
.RDCOUNT(RDCOUNT), // Output read count
.RDERR(RDERR), // Output read error
.WRCOUNT(WRCOUNT), // Output write count
.WRERR(WRERR), // Output write error
.CLK(CLK), // Input clock
.DI(DI), // Input data
.RDEN(RDEN), // Input read enable
.RST(RST), // Input reset
.WREN(WREN) // Input write enable
);
// End of FIFO_SYNC_MACRO_inst instantiation