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

Subversion Repositories csa

[/] [csa/] [trunk/] [rtl/] [ts_sync.v] - Diff between revs 41 and 42

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 41 Rev 42
Line 7... Line 7...
             , input                 rst
             , input                 rst
             , input                 en
             , input                 en
             , input         [8-1:0] datain
             , input         [8-1:0] datain
             , output  reg           valid
             , output  reg           valid
             , output  reg           head     // find ts packet head
             , output  reg           head     // find ts packet head
 
             , output  reg           init     // the first dec ts packet
             , output  reg           dec      // this ts group need decrypt
             , output  reg           dec      // this ts group need decrypt
             , output  reg           evenodd  // the current key type
             , output  reg           evenodd  // the current key type
             , output  reg [8*8-1:0] group
             , output  reg [8*8-1:0] group
             , output  reg     [3:0] bytes    // valid bytes in group
             , output  reg     [3:0] bytes    // valid bytes in group
        );
        );
        reg sync;
        reg sync;
        reg valid_s;
 
        reg need_dec; // current packet need decrypt;
        reg need_dec; // current packet need decrypt;
        reg [8*8-1:0] group_d;
        reg [8*8-1:0] group_d;
        reg [7:0] ts_cnt; // 
        reg [7:0] ts_cnt; // 
 
 
        always @(posedge clk)
        always @(posedge clk)
                if(rst)
                if(rst)
                begin
                begin
                        valid<=1'h0;
                        valid<=1'h0;
                        head<=1'h0;
                        head<=1'h0;
                        dec<=1'h0;
                        dec<=1'h0;
                        sync<=1'h0;
                        sync<=1'h0;
                        need_dec<=1'h0;
                        need_dec<=1'h0;
                        ts_cnt=8'h0;
                        ts_cnt=8'h0;
 
                        init<=1'h0;
                end
                end
                else
                else
                begin
                begin
                        head<=1'h0;
                        head<=1'h0;
                        dec<=1'h0;
                        dec<=1'h0;
                        valid_s<=1'h0;
                        valid<=1'h0;
                        valid<=valid_s;
                        init<=1'h0;
 
 
                        if(en)
                        if(en)
                        begin
                        begin
                                group_d <= {datain, group_d[8*8-1:1*8] };
                                group_d <= {datain, group_d[8*8-1:1*8] };
                                group   <={datain, group_d[8*8-1:1*8] } ;
 
                        end
                        end
                        if(sync)
                        if(sync)
                        begin
                        begin
                                if(ts_cnt==8'h1&&en)
                                if(ts_cnt==8'h1&&en)
                                begin
                                begin
                                        need_dec<=1'h0;
                                        need_dec<=1'h0;
                                        sync<=1'h0; // ts packet end
                                        sync<=1'h0; // ts packet end
                                        valid_s<=1'h1;
 
                                end
                                end
                                if(ts_cnt[2:0]==3'h1&&en)
                                if(ts_cnt[2:0]==3'h1&&en)
                                begin
                                begin
                                        valid_s<=1'h1;
                                        valid<=1'h1;
                                        dec<=need_dec;
                                        dec<=need_dec;
                                        bytes<=4'h8;
                                        bytes<=4'h8;
 
                                        group   <={datain, group_d[8*8-1:1*8] } ;
 
 
                                end
                                end
 
                                if(ts_cnt==8'hb1&en)
 
                                        init<=1'h1;
                                if(en)
                                if(en)
                                        ts_cnt <= ts_cnt - 8'h1;
                                        ts_cnt <= ts_cnt - 8'h1;
                        end
                        end
                        if(en)
                        if(en)
                        begin
                        begin

powered by: WebSVN 2.1.0

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