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

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [mc/] [boards/] [s3e-500/] [src/] [bio/] [bio.v] - Blame information for rev 290

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 226 hellwig
//
2
// bio.v -- board specific I/O
3
//
4
 
5
 
6 290 hellwig
`timescale 1ns/10ps
7
`default_nettype none
8
 
9
 
10
module bio(clk, rst,
11
           stb, we, addr,
12 226 hellwig
           data_in, data_out,
13 290 hellwig
           ack, spi_en,
14 226 hellwig
           sw, led,
15
           lcd_e, lcd_rw, lcd_rs,
16
           spi_ss_b, fpga_init_b);
17
    // internal interface
18
    input clk;
19 290 hellwig
    input rst;
20
    input stb;
21
    input we;
22 226 hellwig
    input addr;
23
    input [31:0] data_in;
24
    output [31:0] data_out;
25 290 hellwig
    output ack;
26 226 hellwig
    output spi_en;
27
    // external interface
28
    input [3:0] sw;
29
    output [7:0] led;
30
    output lcd_e;
31
    output lcd_rw;
32
    output lcd_rs;
33
    output spi_ss_b;
34
    output fpga_init_b;
35
 
36
  reg [31:0] bio_out;
37
  wire [31:0] bio_in;
38
 
39 242 hellwig
  reg [3:0] sw_p;
40
  reg [3:0] sw_s;
41
 
42 226 hellwig
  always @(posedge clk) begin
43 290 hellwig
    if (rst) begin
44 226 hellwig
      bio_out[31:0] <= 32'h0;
45
    end else begin
46 290 hellwig
      if (stb & we & ~addr) begin
47 226 hellwig
        bio_out[31:0] <= data_in[31:0];
48
      end
49
    end
50
  end
51
 
52
  assign data_out[31:0] =
53
    (addr == 0) ? bio_out[31:0] : bio_in[31:0];
54 290 hellwig
  assign ack = stb;
55 226 hellwig
  assign spi_en = bio_out[31];
56
 
57 242 hellwig
  always @(posedge clk) begin
58
    sw_p[3:0] <= sw[3:0];
59
    sw_s[3:0] <= sw_p[3:0];
60
  end
61 226 hellwig
 
62 242 hellwig
  assign bio_in[31:0] = { 28'h0, sw_s[3:0] };
63
 
64 226 hellwig
  assign led[7:0] = bio_out[7:0];
65
 
66
  // disable the character LCD screen
67
  // it may be enabled if spi_en = 1
68
  assign lcd_e = 0;
69
  assign lcd_rw = 0;
70
  assign lcd_rs = 0;
71
 
72
  // disable SPI serial and platform flash ROMs
73
  assign spi_ss_b = 1;
74
  assign fpga_init_b = 0;
75
 
76
endmodule

powered by: WebSVN 2.1.0

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