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

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.24/] [fpga/] [src/] [bio/] [bio.v] - Blame information for rev 211

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 190 hellwig
//
2
// bio.v -- board specific I/O
3
//
4
 
5
 
6
module bio(clk, reset,
7
           en, wr, addr,
8
           data_in, data_out,
9 191 hellwig
           wt,
10 192 hellwig
           sw1_1, sw1_2,
11
           sw1_3, sw1_4,
12 191 hellwig
           sw2_n, sw3_n);
13 190 hellwig
    // internal interface
14
    input clk;
15
    input reset;
16
    input en;
17
    input wr;
18
    input addr;
19
    input [31:0] data_in;
20
    output [31:0] data_out;
21
    output wt;
22
    // external interface
23 192 hellwig
    input sw1_1;
24
    input sw1_2;
25
    input sw1_3;
26
    input sw1_4;
27 191 hellwig
    input sw2_n;
28
    input sw3_n;
29 190 hellwig
 
30
  reg [31:0] bio_out;
31
  wire [31:0] bio_in;
32
 
33 192 hellwig
  reg sw1_1_p;
34
  reg sw1_1_s;
35
  reg sw1_2_p;
36
  reg sw1_2_s;
37
  reg sw1_3_p;
38
  reg sw1_3_s;
39
  reg sw1_4_p;
40
  reg sw1_4_s;
41 191 hellwig
  reg sw2_p_n;
42
  reg sw2_s_n;
43
  reg sw3_p_n;
44
  reg sw3_s_n;
45
 
46 190 hellwig
  always @(posedge clk) begin
47
    if (reset) begin
48
      bio_out[31:0] <= 32'h0;
49
    end else begin
50
      if (en & wr & ~addr) begin
51
        bio_out[31:0] <= data_in[31:0];
52
      end
53
    end
54
  end
55
 
56
  assign data_out[31:0] =
57
    (addr == 0) ? bio_out[31:0] : bio_in[31:0];
58
  assign wt = 0;
59
 
60 191 hellwig
  always @(posedge clk) begin
61 192 hellwig
    sw1_1_p <= sw1_1;
62
    sw1_1_s <= sw1_1_p;
63
    sw1_2_p <= sw1_2;
64
    sw1_2_s <= sw1_2_p;
65
    sw1_3_p <= sw1_3;
66
    sw1_3_s <= sw1_3_p;
67
    sw1_4_p <= sw1_4;
68
    sw1_4_s <= sw1_4_p;
69 191 hellwig
    sw2_p_n <= sw2_n;
70
    sw2_s_n <= sw2_p_n;
71
    sw3_p_n <= sw3_n;
72
    sw3_s_n <= sw3_p_n;
73
  end
74 190 hellwig
 
75 191 hellwig
  assign bio_in[31:0] =
76 192 hellwig
    { 26'h0,
77
      ~sw3_s_n, ~sw2_s_n,
78
      sw1_4_s, sw1_3_s, sw1_2_s, sw1_1_s };
79 191 hellwig
 
80 190 hellwig
endmodule

powered by: WebSVN 2.1.0

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