⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcrm.v

📁 华大机顶盒源码(包括所有源代码).rar
💻 V
字号:
/******************************************************
功能说明:
         包含3个子模块,PcrReg模块,div模块,PCTCtl模块
*******************************************************/
`include "PCRCtl.v"
`include "PcrReg.v"
`include "div.v"

module PCRM( CLKM, ResetN,
             //input 
             CLK90K, SetData, SPCR0, SPCR1, SPCR2, SetFNum, RdEnd,
             TxFsync, Send_0Frame, Pause, 
             //output
             SetPCREn, ProgTxEn, TF2_EN, PCR_ERR,
             //debug
             NxtPCRn,PCRnV, SetTsys, TF2, TF2_ERR, test
             );

input CLKM;                  \\系统主时钟,信号来源FPGA的P77脚
input ResetN;                \\系统复位信号,FPGA的P49&(!K)  
input CLK90K;                \\90kHz时钟信号,来自CLKMOD.CLK90K
 
input [15:0] SetData;        \\PCRM模块内的寄存器的输入数据总线,来自CSM.SETDATA[15:0] 
input        SPCR0;          \\设置PCR第32~17位指示,来自CSM.SPCR0
input        SPCR1;          \\设置PCR第16~1位指示,来自CSM.SPCR1 
input        SPCR2;          \\设置PCR第0位指示,来自CSM.SPCR2  
input        SetFNum;        \\设置帧个数寄存器指示,来自CSM.FNum  
input        RdEnd;          \\读PCR结束信号,来自CSM.RdEnd
input        TxFsync;        \\发送帧同步信号,来自CSM.TxFsync
input        Send_0Frame;    \\发送第0帧指示,来自CSM.Send_0Frame
input        Pause;          \\暂停播放信号,来自I2CTOP.Pause

output       SetPCREn;       \\设置PCR寄存器允许,作为CSM.SetPCREn的输入
output       ProgTxEn;       \\节目数据发送允许,作为TXMODULE.ProgTxEn输入 

output       TF2_EN;         \\用于指示PCR_ERR信号是否有效,作为CSM.TF2_EN输入 
output	     PCR_ERR;        \\PCR错误指示,作为CSM.PCR_ERR输入
           

//debug
output       NxtPCRn;
output       PCRnV;
output       SetTsys;
output [32:0] TF2;
output        TF2_ERR;
output        test;
//debug

//内部信号
wire  [32:0] TF;
wire         TF_En;
wire         NxtPCRn;
wire         RdEndOut;
wire  [32:0] PCRn;
wire  [32:0] PCR12;
wire  [11:0] FNUM;
wire         DivEn; 
wire         PCRnV;

//debug
assign TF2_ERR = TF2[32] | TF2[31] | TF2[30] | TF2[29] | 
                 TF2[28] | TF2[27] | TF2[26] | TF2[25] | 
                 TF2[24] | TF2[23] | TF2[22] | TF2[21] |
                 TF2[20] | TF2[19] | TF2[18] | TF2[17] |
                 TF2[16] | TF2[15] | TF2[14];   
//debug
                 
/*********************************************************************
PCRCtl模块功能:描述了PCR的比较过程
*********************************************************************/
PCRCtl U1( .ResetN(ResetN),
           .CLKM(CLKM), 
           .CLK90K(CLK90K), 
           .PCRn(PCRn),
           .NxtPCRn(NxtPCRn),
           .Fsync(TxFsync), 
           .Send_0SEG(Send_0Frame),
           .TxEn(ProgTxEn), 
           .PCRnV(PCRnV), 
           .RdEnd(RdEndOut),
           .Pause(Pause),
           .SetTsys(SetTsys),
           .test(test)
           ); 

/*******************************************************************

*******************************************************************/
PcrReg U2( .ResetN(ResetN), 
           .CLKM(CLKM), 
           .PCRn(PCRn),
           .NxtPCRn(NxtPCRn), 
           .SPCR0(SPCR0), 
           .SPCR1(SPCR1), 
           .SPCR2(SPCR2),  
           .SetFNum(SetFNum),
           .IData(SetData), 
           .SetPCREn(SetPCREn),           
           .PCR12(PCR12), 
           .FNUM(FNUM), 
           .TF(TF),
           .DivEn(DivEn),
           .TF_En(TF_En),
           .PCRnV(PCRnV),
           .RdEndIn(RdEnd), 
           .RdEndOut(RdEndOut),
           .TF2_EN(TF2_EN),
           .PCR_ERR(PCR_ERR),
           //debug
           .TF2(TF2)
         );

div    U3( .ResetN(ResetN), 
           .CLKM(CLKM), 
           .dividend(PCR12), 
           .divisor(FNUM),  
           .quotient(TF), 
           .DivEn(DivEn), 
           .Quo_Valid(TF_En)
         );
         

endmodule             

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -