Guest User

Untitled

a guest
Aug 26th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module dut(ch0,ch1,ch2,ch3,clk,reset,in);
  2.   input[33:0] in;
  3.   input clk, reset;
  4.  
  5.   output[33:0] ch0,ch1,ch2,ch3;
  6.   reg[33:0] ch0,ch1,ch2,ch3;
  7.   reg msb;
  8.   reg[1:0] chanal;
  9.   reg[7:0] n;
  10.   reg[19:0] addr;
  11.   reg p;
  12.   reg notXor;
  13.   integer i;
  14.   always @(posedge clk) begin
  15.  
  16.     if(reset == 1) begin
  17.       ch0 = {1'b0,32'b10101010101010101010101010101010};
  18.       ch1 = {1'b0,32'b10101010101010101010101010101010};
  19.       ch2 = {1'b0,32'b10101010101010101010101010101010};
  20.       ch3 = {1'b0,32'b10101010101010101010101010101010};
  21.     end  
  22.    
  23.     msb = in[33];
  24.     if(msb == 1) begin
  25.       chanal = in[32:31];
  26.       n = in[30:23];
  27.       if(chanal == 2'b00)
  28.         ch0 = in;
  29.       if(chanal == 2'b01)
  30.         ch1 = in;
  31.       if(chanal == 2'b10)
  32.         ch2 = in;
  33.       if(chanal == 2'b11)
  34.         ch3 = in;  
  35.     end
  36.     else begin
  37.       notXor = in[33];
  38.       for(i=32;i>0;i=i-1)
  39.         notXor = ~(notXor ^ in[i]);
  40.      
  41.     end  
  42.   end
  43.      
  44. endmodule
  45.  
  46. module testRTL();
  47.   reg[33:0] in;
  48.   reg clk, reset;
  49.  
  50.   wire[33:0] ch0,ch1,ch2,ch3;
  51.  
  52.   integer i;
  53.  
  54.   initial begin
  55.     clk = 0;
  56.     forever
  57.       #5 clk = ~clk;  
  58.   end
  59.  
  60.   initial begin
  61.     reset = 1;
  62.     #5 reset = 0;
  63.    
  64.     for(i=0;i<34;i=1+1)
  65.       in[i] = 1;
  66.    
  67.   end
  68.  
  69.   dut test1(ch0,ch1,ch2,ch3,clk,reset,in);
  70. endmodule
Add Comment
Please, Sign In to add comment