本人最近心态异常平静,于是乎--->简单整理下这两年魔幻般的经历(咱从地道的搬砖人又回到了研究僧的灵笼中,装作不开心~)。
注:转载本文章,请标明其来源。同时,此文章涉及的逻辑块代码仅供学习参考!!!谢谢配合!!!!!!!
本文以intel Birch Stream平台为例,参考的Birch Stream PDG为Rev 0.7 版本,如若新版PDG在时序上有所变动,请以最新的PDG或EDG为准,谢谢配合。
第一节:服务器CPU时序的要求
X86架构的服务器CPU含有多路电源轨,如常见的P3V3、P1V05、P0V9等。如整机方案使用的是Eagle Steam或之前的CPU,整个系统的电源时序会增加若干组关于PCH的电源轨。电源部分的常见分类有CPU核心电源、IO电源、总线电源、DIMM电源等,其上电时序和掉电时序必须满足平台的PDG或EDG的时序要求,如若不然,某些BUG可能就脱颖而出(狗头。毕竟咱自己给自己挖过坑,调试时出现各种奇葩问题,这台机器AC cycle跑不起来、那台产品触发保护机制……回忆当年,不争气的眼睛又进了沙子)。关于电源轨简称或命名的详细含义,请自学~
话不多说,先贴图为证。
1. Power Up Sequence 简略图(G3->S5->S0)

2. Power Down Sequence简略图(S0->S5)

3. 详细时序图

第二节:FPGA控制CPU的时序
1.三段式状态机FSM
整个核心的时序控制逻辑分为三部分,第一部分为状态转移逻辑;第二部分描述状态转移条件和规律;第三部分为输出控制逻辑。详细介绍如下:
1.1 状态转移逻辑(时序逻辑)
//1 Sequential state transition
always@( posedge i_sys_clk or negedge i_sys_rst_n)begin
if(!i_sys_rst_n)
r_current_state <= FSM_IDLE;
else
r_current_state <= r_next_state ;
end
1.2 状态转移条件和规律(组合逻辑)
//2 Combinational condition judgment
always@(*) begin
if(!i_sys_rst_n) begin
w_delay_start = 1'b1;
w_delay_ms_cnt = 8'd49;
w_timeout_cnt = 8'd49;
end
else begin
case(r_current_state)
FSM_IDLE : begin
if(i_config_error || w_pwr_fault_flg)
r_next_state = FSM_IDLE;
else if(w_delay_ms_done) begin
w_delay_start = 1'b0;
w_delay_ms_cnt = AUX_DELAY_G0;
w_timeout_cnt = TIMEOUT_COUNT;
r_next_state = FSM_AUX_G0_PWR_ON;
end
else
r_next_state = FSM_IDLE;
end
FSM_AUX_G0_PWR_ON : begin
w_delay_start = 1'b1;
// (power on timeout | power run down) & (~forced power on)
if(w_pwr_fault_flg)
r_next_state = FSM_PWR_FAIL;
else if((&i_aux_g0_pwr_pgd | i_forced_pwron) && w_delay_ms_done)begin
w_delay_start = 1'b0;
w_delay_ms_cnt = AUX_DELAY_G1;
w_timeout_cnt = TIMEOUT_COUNT;
r_next_state = FSM_AUX_G1_PWR_ON;
end
else
r_next_state = FSM_AUX_G0_PWR_ON;
end
FSM_AUX_G1_PWR_ON : begin
w_delay_start = 1'b1;
if(w_pwr_fault_flg)
r_next_state = FSM_PWR_FAIL;
else if((&i_aux_g1_pwr_pgd | i_forced_pwron) && w_delay_ms_done) begin
w_delay_start = 1'b0;
w_timeout_cnt = TIMEOUT_COUNT;
w_delay_ms_cnt = (AUX_PWR_GROUP > 2) ? AUX_DELAY_G2 : RSMRST_DE


最低0.47元/天 解锁文章
10万+





