Guest User

Untitled

a guest
Oct 23rd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module ezhik_summator (
  2.                // inputs:
  3.                 address,
  4.                 chipselect,
  5.                 clk,
  6.                 reset_n,
  7.                 write_n,
  8.                 writedata,
  9.  
  10.                // outputs:
  11.                 readdata
  12.              )
  13. ;
  14.  
  15.   output  [ 31: 0] readdata;
  16.   input   [  2: 0] address;
  17.   input            chipselect;
  18.   input            clk;
  19.   input            reset_n;
  20.   input            write_n;
  21.   input   [ 31: 0] writedata;
  22.  
  23.   wire             clk_en;
  24.   reg     [ 31: 0] register1;
  25.   reg     [ 31: 0] register2;
  26.   reg     [ 31: 0] summ;
  27.   wire    [ 31: 0] out_port;
  28.   wire    [ 31: 0] read_mux_out;
  29.   wire    [ 31: 0] readdata;
  30.   assign clk_en = 1;
  31.   //s1, which is an e_avalon_slave
  32.   assign read_mux_out = {32 {(address == 0)}} & summ;
  33.   always @(posedge clk or negedge reset_n)
  34.     begin
  35.       if (reset_n == 0)
  36.     begin
  37.           register1 <= 0;
  38.           register2 <= 0;
  39.     end
  40.       else if (chipselect && ~write_n && (address == 1))
  41.     begin
  42.           register1 <= writedata[31 : 0];
  43.         end
  44.       else if (chipselect && ~write_n && (address == 2))
  45.     begin
  46.           register2 <= writedata[31 : 0];
  47.     end
  48.     summ <= register1 + register2;
  49.     end
  50.  
  51.  
  52.   assign readdata = read_mux_out;
  53.  
  54. endmodule
Add Comment
Please, Sign In to add comment