OpenCores
URL https://opencores.org/ocsvn/numbert_sort_device/numbert_sort_device/trunk

Subversion Repositories numbert_sort_device

[/] [numbert_sort_device/] [trunk/] [main/] [dynamic_tree.sv] - Diff between revs 2 and 5

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 5
Line 25... Line 25...
//
//
//typedef struct {
//typedef struct {
//bit [1] com;
//bit [1] com;
//bit [15:0] dat;
//bit [15:0] dat;
//} CDT_port;
//} CDT_port;
//
 
//module Cell_Dyna_Tree ( clk, glob_com, stageGlb, is_input, in_prev, in_next, out );
module Dyna_Tree ( clk, glob_com, dataIn, dataOut );
//
 
//parameter HBIT= 15;
parameter HBIT= 7;
//
parameter TREE_LEVEL= 4;
//
 
//input clk;
input clk;
//input glob_com;
input [1:0] glob_com;
//
 
//input  stageGlb[3:0];
input  [HBIT:0] dataIn;
//input  candidateActive[3:0];
output [HBIT:0] dataOut;
//
 
//input  parentPtr[3:0];
wire [HBIT:0] toLeft;
//input  [HBIT:0] pntInQuestMsg [3:0];
wire [HBIT:0] toRight;
//input  [HBIT:0] cldInQuestMsg [3:0];
wire [HBIT:0] fromLeft;
//output active =  |parentPtr;
wire [HBIT:0] fromRight;
//output  [HBIT:0] message;
 
//
Cell_DT_Inner #( HBIT ) inner ( clk, glob_com, dataIn, fromLeft, fromRight, dataOut, toLeft, toRight );
//output bit  leftPtr [3:0];
 
//output bit  rightPtr[3:0];
generate
//
if ( TREE_LEVEL >0 )
//wire leftRq;  //      have left subtree
begin
//wire rightRq; //      have right subtree
        Dyna_Tree #( HBIT, TREE_LEVEL-1 ) leftSubTree  ( clk, glob_com, toLeft, fromLeft );
//
        Dyna_Tree #( HBIT, TREE_LEVEL-1 ) rightSubTree ( clk, glob_com, toRight, fromRight );
////wire parentMsg= pntInQuestMsg[];
end
//
else
//Cell_DT_Inner #( HBIT ) inner ( clk, glob_com, parentMsg, leftMsg, rightMsg, message );
begin
//
        assign fromLeft =1;
//always@(posedge clk )
        assign fromRight=1;
//begin
end
//      if ( leftRq )
endgenerate
//      begin
 
//              if ( leftPtr==0 )       //      new child required
 
//              begin
endmodule
//                      if ( stageGlb & ~candidateActive )
 
//                      begin
 
//                              leftPtr<= stageGlb;
typedef enum {  VMS_NOMESSAGE=0,
//                      end
                                                VMS_WRITE,
//              end
                                                VMS_READ
//      end
                } VMeta;
//      else
 
//      begin
module Cell_DT_Inner ( clk, glob_com, fromParent, fromLeft, fromRight, toParent, toLeft, toRight );
//              leftPtr<= 0;
parameter HBIT= 7;
//      end
 
//      if (~hold)
input clk;
//      begin
input [1:0] glob_com;
//              higher <= ( cand_h > cand_l ) ? cand_h : cand_l;
 
//              lower  <= ( cand_h > cand_l ) ? cand_l : cand_h;
input  [HBIT:0] fromParent;
//      end
input  [HBIT:0] fromLeft;
//end
input  [HBIT:0] fromRight;
//endmodule
 
//
output [HBIT:0] toParent;
//
output [HBIT:0] toLeft;
//module Cell_DT_Inner ( clk, glob_com, parentMsg, leftMsg, rightMsg, message );
output [HBIT:0] toRight;
//parameter HBIT= 15;
 
//
reg [HBIT:0] value;
//input clk;
reg [HBIT:0] message;
//input [1:0]glob_com;
VMeta        state;
//
 
//input  [HBIT:0] parentMsg;
assign toParent= value + message;
//input  [HBIT:0] leftMsg;
assign toLeft= message;
//input  [HBIT:0] rightMsg;
assign toRight= value;
//output  [HBIT:0] message;
 
//
always@(posedge clk )
//reg [HBIT:0] store;
begin
//reg [HBIT:0] tmp;
        case( state )
//
        VMS_NOMESSAGE: ;
//always@(posedge clk )
        VMS_WRITE:
//begin
                begin
//      case( glob_com )
                        value    <= fromParent +1;
//      2'h0: ;
                        message  <= fromParent;
//      2'h1: ;
                end
//      2'h2:
        VMS_READ:
//              begin
                begin
//                      higher <= ( cand_h > cand_l ) ? cand_h : cand_l;
                        value    <= fromLeft;
//                      lower  <= ( cand_h > cand_l ) ? cand_l : cand_h;
                        message  <= fromRight;
//              end
                end
//      2'h3:   ;
        2'h3:   ;
//      endcase
        default:        ;
//end
        endcase
//
        state    <= VMeta'(glob_com);
//endmodule
end
//
 
//
endmodule
//
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.