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

📄 rtc_test_top.v

📁 用Actel公司的Fusion系列FPGA开发的RTC实验程序
💻 V
字号:
// RTC_Test_Top.v


module RTC_Test_Top(
                    clk_48M,            //系统时钟输入
                    clk_RTC,            //RTC计数时钟
                    rst,                //全局复位:高电平有效
                    PUB,                //FPGA掉电唤醒管脚:低电平有效
                    //VRPU,               //FPGA掉电使能:下降沿触发
                    FPGAGOOD,           //逻辑“1”表示FPGA在逻辑上是正确的
                    LED8,               //点亮LED8:用于指示FPGA内核是否掉电
                    VAREF               //ADC电压参考:必须引出
                    );

input       clk_48M,clk_RTC,rst,PUB;        //,VRPU;

inout       VAREF;

output      FPGAGOOD,LED8;

//中间连线
wire        rst,clk_Analog,clk_ACM,CLKOUT,FPGAGOOD;
wire        [8:0] INIT_ADDR,INIT_DATA;
wire        [1:0] RTCXTLMODE_I;
wire        INIT_ACM_WEN,INIT_ACM_RTC_WEN,INIT_ASSC_WEN,INIT_EV_WEN,INIT_TR_WEN;
wire        INIT_DONE,RTCXTLSEL,RTCPSMMATCH;

reg [29:0]  count;
reg VRPU;
assign LED8 = 1'b0;             //让LED8信号点亮LED8

always @(posedge clk_ACM or posedge rst)
begin
    if(rst)
        count <= 30'd0;
    else
        begin
            
            if(count == 30'd35000000)
                begin
                    VRPU <= 1'b0;
                end
            else
            begin
                VRPU <= 1'b1;
                count <= count + 30'd1;
            end        
        end
end

                //时钟连线
Clock_Gen       U1(.POWERDOWN(1'b1),
                   .CLKA(clk_48M),
                   .LOCK(),
                   .GLA(clk_Analog),
                   .GLB(clk_ACM),
                   .OADIVRST());

                //模拟模块连线
Analog_RTC      U2(
                
                //模拟模块固定连线
                   .SYS_CLK(clk_Analog),
                   .SYS_RESET(!rst),
                   .VAREF(VAREF),
                   .ACMCLK(clk_ACM),
                
                //模拟模块与FlashMemory之间的连线
                   .INIT_ADDR(INIT_ADDR),
                   .INIT_DATA(INIT_DATA),
                   .INIT_ACM_WEN(INIT_ACM_WEN),
                   .INIT_ACM_RTC_WEN(INIT_ACM_RTC_WEN),
                   .INIT_ASSC_WEN(INIT_ASSC_WEN),
                   .INIT_EV_WEN(INIT_EV_WEN),
                   .INIT_TR_WEN(INIT_TR_WEN),
                   .INIT_DONE(INIT_DONE),
              
                //模拟模块中的RTC与Crystal_Osc和VR_Ctr之间的连线
                   .RTCCLK(CLKOUT),
                   .RTCXTLSEL(RTCXTLSEL),
                   .RTCXTLMODE_I(RTCXTLMODE_I),
                   .RTCMATCH(),
                   .RTCPSMMATCH(RTCPSMMATCH),
                   
                //没有使用
                   .DATAVALID(),
                   .ASSC_DONE(),
                   .ASSC_WAIT(),
                   .ASSC_CHSAT(),
                   .ASSC_CHLATD());


FlashMem_RTC    U3(.INIT_CLK(clk_ACM),
                   .SYS_RESET(!rst),
                   .INIT_POWER_UP(1'b1),
                   .INIT_DONE(INIT_DONE),
                   .INIT_DATA(INIT_DATA),
                   .INIT_ADDR(INIT_ADDR),
                   .INIT_ACM_RTC_WEN(INIT_ACM_RTC_WEN),
                   .INIT_ACM_WEN(INIT_ACM_WEN),
                   .INIT_ASSC_WEN(INIT_ASSC_WEN),
                   .INIT_EV_WEN(INIT_EV_WEN),
                   .INIT_TR_WEN(INIT_TR_WEN));


Crystal_Osc     U4(.XTL(clk_RTC),
                   .CLKOUT(CLKOUT),
                   .SELMODE(RTCXTLSEL),
                   .RTC_MODE(RTCXTLMODE_I));


VR_Ctr          U5(.PUB(PUB),
                   .VRPU(VRPU),
                   .FPGAGOOD(FPGAGOOD),
                   .PUCORE(),
                   .RTCPSMMATCH(RTCPSMMATCH));
                   

endmodule

⌨️ 快捷键说明

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