Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. module pfpzu(
  2.     input oe_n,
  3.         input res_n,
  4.         input [15:2] a,
  5.         output a16,a17
  6.        
  7. );
  8.  
  9.         reg [1:0] plane;
  10.         reg [1:0] newplane;
  11.  
  12.         reg enable_switch;
  13.  
  14.  
  15.  
  16.         assign a17 = plane[1];
  17.         assign a16 = plane[0];
  18.        
  19.        
  20.         always @*
  21.         begin
  22.                 if( a[15:4] == 12'b100000010000 )
  23.                         enable_switch <= 1;
  24.                 else
  25.                         enable_switch <= 0;
  26.         end
  27.  
  28.  
  29.         always @(negedge oe_n)
  30.         if (oe_n==1'b0)
  31.         begin
  32.                 case( {a[3:2],plane[1:0]} )
  33.                 4'b0000:
  34.                         newplane <= 0;
  35.                 4'b0001:
  36.                         newplane <= 1;
  37.                 4'b0010:
  38.                         newplane <= 2;
  39.                 4'b0011:
  40.                         newplane <= 3;
  41.                 4'b0100:
  42.                         newplane <= 3;
  43.                 4'b0101:
  44.                         newplane <= 3;
  45.                 4'b0110:
  46.                         newplane <= 3;
  47.                 4'b0111:
  48.                         newplane <= 2;
  49.                 4'b1000:
  50.                         newplane <= 2;
  51.                 4'b1001:
  52.                         newplane <= 2;
  53.                 4'b1010:
  54.                         newplane <= 0;
  55.                 4'b1011:
  56.                         newplane <= 1;
  57.                 4'b1100:
  58.                         newplane <= 1;
  59.                 4'b1101:
  60.                         newplane <= 0;
  61.                 4'b1110:
  62.                         newplane <= 1;
  63.                 4'b1111:
  64.                         newplane <= 0;
  65.                 endcase
  66.         end
  67.  
  68.  
  69.  
  70.  
  71.         always @(posedge oe_n, negedge res_n)
  72.         begin
  73.                 if (res_n==1'b0)
  74.                         plane <= 2'b00;
  75.                 else   
  76.                 if( enable_switch==1 )
  77.                 begin
  78.                         plane <= newplane;
  79.                 end
  80.         end
  81.  
  82.  
  83. endmodule
  84.