URL
https://opencores.org/ocsvn/generic_parameterized_mux/generic_parameterized_mux/trunk
Subversion Repositories generic_parameterized_mux
Compare Revisions
- This comparison shows the changes necessary to convert path
/generic_parameterized_mux
- from Rev 1 to Rev 2
- ↔ Reverse comparison
Rev 1 → Rev 2
/trunk/bench/tb_Nx1_mux.v
0,0 → 1,47
module tb_Nx1_mux; |
|
reg [7:0]D; |
reg [2:0]S; |
wire Y; |
|
Nx1_mux #(.N(8)) DUT(.D(D), .S(S), .Y(Y)); |
|
task initialize; |
begin |
D=8'b0000; |
S=4'b00; |
end |
endtask |
|
task select(input [2:0]i); |
begin |
S=i; |
end |
endtask |
|
task load(input [7:0] data); |
begin |
D=data; |
end |
endtask |
|
integer i , j; |
initial begin |
$dumpfile ("Nx1_mux.vcd"); |
$dumpvars (0, tb_Nx1_mux); |
for (i=0; i<8 ; i=i+1) |
begin |
initialize; |
#10; |
select(i); |
for(j=0;j<256;j=j+1) |
begin |
load(j); |
#10; |
end |
end |
$finish; |
end |
initial $monitor("D = %b, S = %b, Y = %b",D,S,Y); |
|
endmodule |
/trunk/rtl/Nx1_mux.v
0,0 → 1,55
|
////////////////////////////////////////////////////////////////// //// |
//// //// |
|
//// //// |
//// This file is part of the XXX project //// |
//// http://www.opencores.org/cores/xxx/ //// |
//// //// |
//// Description //// |
//// Implementation of Genric Nx1 parameterized Multiplexer. //// |
//// //// |
//// To Do: //// |
//// - //// |
//// //// |
//// Author(s): //// |
//// - Kanish R, Kanish@opencores.org //// |
//// //// |
////////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2009 Authors and OPENCORES.ORG //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer. //// |
//// //// |
//// This source file is free software; you can redistribute it //// |
//// and/or modify it under the terms of the GNU Lesser General //// |
//// Public License as published by the Free Software Foundation; //// |
//// either version 2.1 of the License, or (at your option) any //// |
//// later version. //// |
//// //// |
//// This source is distributed in the hope that it will be //// |
//// useful, but WITHOUT ANY WARRANTY; without even the implied //// |
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// |
//// PURPOSE. See the GNU Lesser General Public License for more //// |
//// details. //// |
//// //// |
//// You should have received a copy of the GNU Lesser General //// |
//// Public License along with this source; if not, download it //// |
//// from http://www.opencores.org/lgpl.shtml //// |
//// //// /// |
/////////////////////////////////////////////////////////////////// |
|
|
module Nx1_mux(D,Y,S); |
parameter N=2; |
input [N-1:0]D; |
input [$clog2(N)-1:0]S; |
integer i; |
output reg Y; |
always @(*) begin |
Y=D[S]; |
end |
endmodule |