diff options
| author | Matt Ettus <matt@ettus.com> | 2009-09-02 17:09:16 -0700 | 
|---|---|---|
| committer | Matt Ettus <matt@ettus.com> | 2009-09-02 17:09:16 -0700 | 
| commit | 280e196b60f0a4e8f1915dbd38761e879ccd567e (patch) | |
| tree | ec823940ee6f9dab09c851f670402230b5b573f7 | |
| parent | 1c68af83c84fb0a03fc8ac0df6491d865287daae (diff) | |
| download | uhd-280e196b60f0a4e8f1915dbd38761e879ccd567e.tar.gz uhd-280e196b60f0a4e8f1915dbd38761e879ccd567e.tar.bz2 uhd-280e196b60f0a4e8f1915dbd38761e879ccd567e.zip  | |
never used, not needed
| -rw-r--r-- | control_lib/fifo_reader.v | 28 | ||||
| -rw-r--r-- | control_lib/fifo_writer.v | 31 | ||||
| -rw-r--r-- | control_lib/giantfifo.v | 209 | ||||
| -rw-r--r-- | control_lib/giantfifo_tb.v | 173 | 
4 files changed, 0 insertions, 441 deletions
diff --git a/control_lib/fifo_reader.v b/control_lib/fifo_reader.v deleted file mode 100644 index 49d05b1a6..000000000 --- a/control_lib/fifo_reader.v +++ /dev/null @@ -1,28 +0,0 @@ - -module fifo_reader -  #(parameter rate=4) -    (input clk, -     input [31:0] data_in, -     output read_o -     input ready_i, -     input done_i -     ); - -   reg [7:0] state = 0; -    -   always @(posedge clk) -     if(ready) -       if(state == rate) -	 state <= 0; -       else -	 state <= state + 1; -     else -       state <= 0; - -   assign    read = (state == rate); - -   initial $monitor(data_in); -    -endmodule // fifo_reader - -    diff --git a/control_lib/fifo_writer.v b/control_lib/fifo_writer.v deleted file mode 100644 index 064ad3cb9..000000000 --- a/control_lib/fifo_writer.v +++ /dev/null @@ -1,31 +0,0 @@ - -module fifo_writer -  #(parameter rate=4) -    (input clk, -     output [31:0] data_out, -     output write_o, -     input ready_i, -     input done_i -     ); -    -   reg [7:0] state = 0; - - -   // FIXME change this to write -   always @(posedge clk) -     if(ready) -       if(state == rate) -	 state <= 0; -       else -	 state <= state + 1; -     else -       state <= 0; - -   assign    read = (state == rate); - -   initial $monitor(data_in); -    -endmodule // fifo_writer - - -    diff --git a/control_lib/giantfifo.v b/control_lib/giantfifo.v deleted file mode 100644 index dba330b8a..000000000 --- a/control_lib/giantfifo.v +++ /dev/null @@ -1,209 +0,0 @@ - - - -module giantfifo -  #(parameter WIDTH=36) -    (input clk, input rst, -     input [WIDTH-1:0] datain, -     output [WIDTH-1:0] dataout, -     input read, -     input write, -     input clear, -     output full, -     output empty, -     output [15:0] space, -     output [15:0] occupied, -      -     // External RAM -     inout [17:0] RAM_D, -     output reg [18:0] RAM_A, -     output RAM_CE1n, -     output RAM_CENn, -     output reg RAM_CLK, -     output reg RAM_WEn, -     output RAM_OEn, -     output RAM_LDn -     ); - -   wire [4:0] path1_occ, path2_space; -   wire [35:0] path1_dat, path2_dat; -    -   shortfifo #(.WIDTH(WIDTH)) sf1 -     (.clk(clk),.rst(rst),.clear(clear), -      .datain(datain),.write(write),.full(full), -      .dataout(path1_dat),.read(path1_read),.empty(path1_empty), -      .space(),.occupied(path1_occ) ); -   wire       path1_almost_empty = (path1_occ == 5'd1); -    -   shortfifo #(.WIDTH(WIDTH)) sf2 -     (.clk(clk),.rst(rst),.clear(clear), -      .datain(path2_dat),.write(path2_write),.full(path2_full), -      .dataout(dataout),.read(read),.empty(empty), -      .space(path2_space),.occupied() ); -   wire       path2_almost_full = (path2_space == 5'd1); -	 -   assign     RAM_CE1n = 1'b0; -   assign     RAM_CENn = 1'b0; -   always @(clk) -     RAM_CLK <= #2 clk; -   assign     RAM_LDn = 1'b0; - -   // State machine -   wire       write_now, read_now, idle, phase; -   reg 	      ram_full, ram_empty; -    -   reg [17:0] read_ptr, write_ptr; -   reg [2:0]  zbt_state; - -   localparam ZBT_IDLE = 0; -   localparam ZBT_WRITE_UPPER = 2; -   localparam ZBT_WRITE_LOWER = 3; -   localparam ZBT_READ_UPPER = 4; -   localparam ZBT_READ_LOWER = 5; - -   wire       can_write = ~ram_full & ~path1_empty; -   wire       can_write_chain = can_write & ~path1_almost_empty; - -   wire       can_read = ~ram_empty & ~path2_full; -   wire       can_read_chain = can_read & ~path2_almost_full; -    -   assign     phase = zbt_state[0]; - -   reg [17:0] ram_occupied; -   wire       ram_almost_empty = (write_ptr == (read_ptr+1'b1)); -   wire       ram_almost_full = ((write_ptr+1'b1) == read_ptr); - -   always @(posedge clk) -     if(rst | clear) -       begin -	  zbt_state <= ZBT_IDLE; -	  write_ptr <= 0; -	  read_ptr <= 0; -	  ram_full <= 0; -	  ram_empty <= 1; -	  ram_occupied <= 0; -       end -     else -       case(zbt_state) -	 ZBT_IDLE :  -	   if(can_read)  -	     zbt_state <= ZBT_READ_UPPER; -	   else if(can_write) -	     zbt_state <= ZBT_WRITE_UPPER; -	  -	 ZBT_WRITE_UPPER :  -	   begin -	      zbt_state <= ZBT_WRITE_LOWER; -	      ram_occupied <= ram_occupied + 1; -	      ram_empty <= 0; -	      if(ram_occupied == 18'd10) -		ram_full <= 1; -	   end -	 ZBT_WRITE_LOWER :  -	   begin -	      write_ptr <= write_ptr + 1; -	      if(can_read_chain)  -		zbt_state <= ZBT_READ_UPPER; -	      else if(can_write_chain) -		zbt_state <= ZBT_WRITE_UPPER; -	      else -		zbt_state <= ZBT_IDLE; -	   end -	 ZBT_READ_UPPER :  -	   begin -	      zbt_state <= ZBT_READ_LOWER; -	      ram_occupied <= ram_occupied - 1; -	      ram_full <= 0; -	      if(ram_occupied == 18'd1) -		ram_empty <= 1; -	   end -	 ZBT_READ_LOWER : -	   begin -	      read_ptr <= read_ptr + 1; -	      if(can_read_chain)  -		zbt_state <= ZBT_READ_UPPER; -	      else if(can_write_chain) -		zbt_state <= ZBT_WRITE_UPPER; -	      else -		zbt_state <= ZBT_IDLE; -	   end -	 default : -	   zbt_state <= ZBT_IDLE; -       endcase // case(zbt_state) - -   // Need to generate RAM_WEn, RAM_OEn, RAM_D, RAM_A; -   assign path1_read = (zbt_state == ZBT_WRITE_LOWER); -   reg 	  path2_write, delayed_read_upper, delayed_read_lower, delayed_write; - -   always @(posedge clk) -     if(delayed_read_upper) -       path2_dat[35:18] <= RAM_D; -   always @(posedge clk) -     if(delayed_read_lower) -       path2_dat[17:0] <= RAM_D; - -   always @(posedge clk) -     if(rst) -       begin -	  delayed_read_upper <= 0; -	  delayed_read_lower <= 0; -	  path2_write <= 0; -       end -     else  -       begin -	  delayed_read_upper <= (zbt_state == ZBT_READ_LOWER); -	  delayed_read_lower <= delayed_read_upper; -	  path2_write <= delayed_read_lower; -       end -    -   reg [17:0] RAM_D_pre2, RAM_D_pre1, RAM_D_out; -    -   always @(posedge clk) -     RAM_D_pre2 <= phase ? path1_dat[17:0] : path1_dat[35:18]; - -   always @(posedge clk)  RAM_D_pre1 <= RAM_D_pre2; -   always @(posedge clk)  RAM_D_out <= RAM_D_pre1; -   reg 	      wr_del_1, wr_del_2; 	       -   always @(posedge clk) -     if(rst) -       begin -	  wr_del_1 <= 0;	   -	  wr_del_2 <= 0; -	  delayed_write <= 0; -       end -     else -       begin -	  delayed_write <= wr_del_2; -	  wr_del_2 <= wr_del_1; -	  wr_del_1 <= write_now; -       end - -   reg delayed_read, rd_del_1, rd_del_2; -   always @(posedge clk) -     if(rst) -       begin -	  rd_del_1 <= 0;	   -	  rd_del_2 <= 0; -	  delayed_read <= 0; -       end -     else -       begin -	  delayed_read <= rd_del_2; -	  rd_del_2 <= rd_del_1; -	  rd_del_1 <= read_now; -       end -	   -   assign     RAM_D = delayed_write ? RAM_D_out : 18'bzzzzzzzzzzzzzzzzzz; -   assign     write_now = (zbt_state == ZBT_WRITE_UPPER) || (zbt_state == ZBT_WRITE_LOWER); -   assign     read_now =  (zbt_state == ZBT_READ_UPPER) || (zbt_state == ZBT_READ_LOWER); -    -   always @(posedge clk) -     RAM_A <= write_now ? {write_ptr,phase} : {read_ptr,phase}; - -   always @(posedge clk) -     RAM_WEn <= ~write_now; - -   assign     RAM_OEn = ~delayed_read; -   assign     RAM_OEn = 0; -    -endmodule // giantfifo diff --git a/control_lib/giantfifo_tb.v b/control_lib/giantfifo_tb.v deleted file mode 100644 index 87ecd97ae..000000000 --- a/control_lib/giantfifo_tb.v +++ /dev/null @@ -1,173 +0,0 @@ -module fifo_tb(); - -   localparam WIDTH = 36; -   reg clk, rst; -   wire short_full, short_empty, long_full, long_empty, giant_full, giant_empty; -   wire casc_full, casc_empty, casc2_full, casc2_empty; -   reg 	read, write; -    -   wire [WIDTH-1:0] short_do, long_do, casc_do, casc2_do, giant_do; -   reg [WIDTH-1:0]  di; - -   reg 	      clear = 0; -    -   shortfifo #(.WIDTH(WIDTH)) shortfifo -     (.clk(clk),.rst(rst),.datain(di),.dataout(short_do),.clear(clear), -      .read(read),.write(write),.full(short_full),.empty(short_empty)); -    -   longfifo #(.WIDTH(WIDTH), .SIZE(4)) longfifo -     (.clk(clk),.rst(rst),.datain(di),.dataout(long_do),.clear(clear), -      .read(read),.write(write),.full(long_full),.empty(long_empty)); -    -   cascadefifo #(.WIDTH(WIDTH), .SIZE(4)) cascadefifo -     (.clk(clk),.rst(rst),.datain(di),.dataout(casc_do),.clear(clear), -      .read(read),.write(write),.full(casc_full),.empty(casc_empty)); -    -   cascadefifo2 #(.WIDTH(WIDTH), .SIZE(4)) cascadefifo2 -     (.clk(clk),.rst(rst),.datain(di),.dataout(casc2_do),.clear(clear), -      .read(read),.write(write),.full(casc2_full),.empty(casc2_empty)); - -   wire [17:0] RAM_D; -   wire [18:0] RAM_A; -   wire        RAM_CLK, RAM_WEn, RAM_LDn, RAM_CE1n, RAM_OEn, RAM_CENn; -    -   giantfifo #(.WIDTH(WIDTH)) giantfifo -     (.clk(clk),.rst(rst),.datain(di),.dataout(giant_do),.clear(clear), -      .read(read),.write(write),.full(giant_full),.empty(giant_empty), -      .RAM_D(RAM_D),.RAM_A(RAM_A),.RAM_CE1n(RAM_CE1n),.RAM_CENn(RAM_CENn), -      .RAM_CLK(RAM_CLK),.RAM_WEn(RAM_WEn),.RAM_OEn(RAM_OEn),.RAM_LDn(RAM_LDn) -      ); - -   wire        MODE = 1'b0; -   cy1356 ram_model(.d(RAM_D),.clk(RAM_CLK),.a(RAM_A), -		    .bws(2'b00),.we_b(RAM_WEn),.adv_lb(RAM_LDn), -		    .ce1b(RAM_CE1n),.ce2(1'b1),.ce3b(1'b0), -		    .oeb(RAM_OEn),.cenb(RAM_CENn),.mode(MODE)  -		    ); -    -   initial rst = 1; -   initial #1000 rst = 0; -   initial clk = 0; -   always #50 clk = ~clk; -    -   initial di = 36'h300AE; -   initial read = 0; -   initial write = 0; - -   always @(posedge clk) -     if(write) -       di <= di + 1; -    -   always @(posedge clk) -     begin -	if(short_full != long_full) -	  $display("Error: FULL mismatch"); -	if(short_empty != long_empty) -	  $display("Note: EMPTY mismatch, usually not a problem (longfifo has 2 cycle latency)"); -	if(read & (short_do != long_do)) -	  $display("Error: DATA mismatch"); -     end -    -   initial $dumpfile("giantfifo_tb.vcd"); -   initial $dumpvars(0,fifo_tb); - -   initial -     begin -	@(negedge rst); -	@(posedge clk); -	repeat (10) -	  @(posedge clk); -	write <= 1; -	@(posedge clk); -	write <= 0; -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	read <= 1; -	@(posedge clk); -	read <= 0; -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); - -	repeat(10) -	  begin -	     write <= 1; -	     @(posedge clk); -	     write <= 0; -	     @(posedge clk); -	     @(posedge clk); -	     @(posedge clk); -	     read <= 1; -	     @(posedge clk); -	     read <= 0; -	     @(posedge clk); -	     @(posedge clk); -	     @(posedge clk); -	     @(posedge clk); -	     @(posedge clk); -	  end // repeat (10) -	 -	write <= 1; -	repeat (4) -	  @(posedge clk); -	write <= 0; -	@(posedge clk); -	read <= 1; -	repeat (4) -	  @(posedge clk); -	read <= 0; -	@(posedge clk); - - -	write <= 1; -	repeat (4) -	  @(posedge clk); -	write <= 0; -	@(posedge clk); -	repeat (4) -	  begin -	     read <= 1; -	     @(posedge clk); -	     read <= 0; -	     @(posedge clk); -	  end - -	write <= 1; -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	@(posedge clk); -	read <= 1; -	repeat (5) -	  @(posedge clk); -	write <= 0; -	  @(posedge clk); -	  @(posedge clk); -	read <= 0; -	@(posedge clk); - -	write <= 1; -	repeat (16) -	  @(posedge clk); -	write <= 0; -	@(posedge clk); -	 -	read <= 1; -	repeat (16) -	  @(posedge clk); -	read <= 0; -	@(posedge clk); -		  -	repeat (10) -	  @(posedge clk); -	$finish; -     end -endmodule // longfifo_tb  | 
