FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-02-2006, 06:16 PM
CMOS
Guest
 
Posts: n/a
Default mux problem

hi,
i want to write a verilog module for a 32 channel MUX with data width
of 8.
following is the module i wrote and it compiles successfully.


================================================== =============================
`timescale 1ns / 1ps


module mux(data_out, data_in[0:31], sel, en, reset);

parameter data_width = 8;
parameter zbus = 8'bz;
parameter zerobus = 8'b0;

output[data_width-1:0] data_out;
input[data_width-1:0] data_in;
input en, reset;
input[4:0] sel;

reg[data_width-1:0] data_selection;

assign data_out = (!en) ? ((!reset) ? zerobus : data_selection ): zbus;


always @ (data_in, sel) begin
data_selection = data_in[sel];
end
endmodule

================================================== ====================
however im experiancing some difficulties in writing the test bench for
it.
i've wrote the following but it does not compile.

================================================== =====================
`timescale 1ns / 1ps

////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 22:47:36 05/02/2006
// Design Name: mux
// Module Name: mux_tb.v
// Project Name: com_link
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: mux
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////

module mux_tb_v;

// Inputs
reg [7:0] data_in[0:31];
reg [4:0] sel;
reg en;
reg reset;

integer k;


// Outputs
wire [7:0] data_out;

// Instantiate the Unit Under Test (UUT)
mux uut (
.data_out(data_out),
.data_in[0:31](data_in[0:31]),
.sel(sel),
.en(en),
.reset(reset)
);

initial begin
// Initialize Inputs
for(k=0;k<32;k=k+1) begin
//data_in[k] = 8'bz;
end
sel = 5'b0;
en = 0;
reset = 0;

// Wait 100 ns for global reset to finish
#100;

// Add stimulus here

end

endmodule

================================================== ===========================


please let me know whether the MUX's module is correct and if correct
how to write the testbench for it.
specifically i want to know the way i get the input to the MUX using a
two dimentional array is correct.

thank you
CMOS

Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
problem with timing simulation (clear explanation of problem) [email protected] FPGA 1 12-06-2005 11:50 AM
BIG PROBLEM : Configuration Boot Problem Stratix Patrick FPGA 4 06-22-2005 04:50 PM
Altera Quartus II 4.2 SP1 fit problem and Altera APEX20KE clock problem Manfred Balik FPGA 3 03-04-2005 07:04 AM


All times are GMT +1. The time now is 03:55 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved