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

Subversion Repositories csa

[/] [csa/] [trunk/] [rtl/] [ts_sync.v] - Blame information for rev 41

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

Line No. Rev Author Line
1 41 simon111
 
2
`include "../bench/timescale.v"
3
// this module probe the ts sync head,
4
 
5
module ts_sync(
6
               input                 clk
7
             , input                 rst
8
             , input                 en
9
             , input         [8-1:0] datain
10
             , output  reg           valid
11
             , output  reg           head     // find ts packet head
12
             , output  reg           dec      // this ts group need decrypt
13
             , output  reg           evenodd  // the current key type
14
             , output  reg [8*8-1:0] group
15
             , output  reg     [3:0] bytes    // valid bytes in group
16
        );
17
        reg sync;
18
        reg valid_s;
19
        reg need_dec; // current packet need decrypt;
20
        reg [8*8-1:0] group_d;
21
        reg [7:0] ts_cnt; // 
22
        always @(posedge clk)
23
                if(rst)
24
                begin
25
                        valid<=1'h0;
26
                        head<=1'h0;
27
                        dec<=1'h0;
28
                        sync<=1'h0;
29
                        need_dec<=1'h0;
30
                        ts_cnt=8'h0;
31
                end
32
                else
33
                begin
34
                        head<=1'h0;
35
                        dec<=1'h0;
36
                        valid_s<=1'h0;
37
                        valid<=valid_s;
38
 
39
                        if(en)
40
                        begin
41
                                group_d <= {datain, group_d[8*8-1:1*8] };
42
                                group   <={datain, group_d[8*8-1:1*8] } ;
43
                        end
44
                        if(sync)
45
                        begin
46
                                if(ts_cnt==8'h1&&en)
47
                                begin
48
                                        need_dec<=1'h0;
49
                                        sync<=1'h0; // ts packet end
50
                                        valid_s<=1'h1;
51
                                end
52
                                if(ts_cnt[2:0]==3'h1&&en)
53
                                begin
54
                                        valid_s<=1'h1;
55
                                        dec<=need_dec;
56
                                        bytes<=4'h8;
57
                                end
58
                                if(en)
59
                                        ts_cnt <= ts_cnt - 8'h1;
60
                        end
61
                        if(en)
62
                        begin
63
                                if(group_d[6*8-1:5*8]==8'h47)
64
                                begin
65
                                        sync<=1'h1;
66
                                        valid<=1'h1;
67
                                        head<=1'h1;
68
                                        bytes=4'h4;
69
                                        group <= {32'h000,1'h0,datain[6:0],group_d[8*8-1:5*8]};
70
                                        evenodd <= datain[6];
71
                                        need_dec<=datain[7];
72
                                        ts_cnt <= 8'hb8;
73
                                end
74
                        end
75
                end
76
endmodule

powered by: WebSVN 2.1.0

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