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

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.23/] [fpga/] [src/] [ser/] [xmt.v] - Blame information for rev 27

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 hellwig
module xmt(clk, reset, load, empty, parallel_in, serial_out);
2
    input clk;
3
    input reset;
4
    input load;
5
    output reg empty;
6
    input [7:0] parallel_in;
7
    output serial_out;
8
 
9
  reg [3:0] state;
10
  reg [8:0] shift;
11
  reg [10:0] count;
12
 
13
  assign serial_out = shift[0];
14
 
15
  always @(posedge clk) begin
16
    if (reset == 1) begin
17
      state <= 4'h0;
18
      shift <= 9'b111111111;
19
      empty <= 1;
20
    end else begin
21
      if (state == 4'h0) begin
22
        if (load == 1) begin
23
          state <= 4'h1;
24
          shift <= { parallel_in, 1'b0 };
25
          count <= 1302;
26
          empty <= 0;
27
        end
28
      end else
29
      if (state == 4'hb) begin
30
        state <= 4'h0;
31
        empty <= 1;
32
      end else begin
33
        if (count == 0) begin
34
          state <= state + 1;
35
          shift[8:0] <= { 1'b1, shift[8:1] };
36
          count <= 1302;
37
        end else begin
38
          count <= count - 1;
39
        end
40
      end
41
    end
42
  end
43
 
44
endmodule

powered by: WebSVN 2.1.0

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