parameter idle_init=10'b0000000001, pall1_init=10'b0000000010, emrs_dllena_init=10'b0000000100,
mrs_dllrst_init=10'b0000001000, pall2_init=10'b0000010000, ref1_init=10'b0000100000, ref2_init=10'b0001000000,
mrs_init=10'b0010000000, wait_init_end=10'b0100000000, init_end=10'b1000000000;
parameter NOP=8'b00000001, ACT=8'b00000010, READ=8'b00000100, WRIT=8'b00001000, PALL=8'b00010000,
MRS=8'b00100000, EMRS=8'b01000000, REF=8'b10000000;
reg [9:0] n_init, c_init; // idle_init, etc...
reg [7:0] n_state, c_state, b_state; // NOP, etc...
parameter idle_dets=3'b001, write_dets=3'b010, wait_write1=3'b100;
reg [2:0] ns_dets, cs_dets; // idle_dets
// synthesis translate_off
reg [20*8:1] MAIN_STATE, INIT_STATE, STATE_DETS;
always @(c_state) begin
case (c_state)
NOP: MAIN_STATE <= "NOP";
ACT: MAIN_STATE <= "ACT";
READ: MAIN_STATE <= "READ";
WRIT: MAIN_STATE <= "WRIT";
PALL: MAIN_STATE <= "PALL";
MRS: MAIN_STATE <= "MRS";
EMRS: MAIN_STATE <= "EMRS";
default: MAIN_STATE <= "REF";
endcase
end
always @(c_init) begin
case (c_init)
idle_init: INIT_STATE <= "IDLE_INIT";
pall1_init: INIT_STATE <= "PALL1_INIT";
emrs_dllena_init: INIT_STATE <= "EMRS_DLLENA_INIT";
mrs_dllrst_init: INIT_STATE <= "MRS_DLLRST_INIT";
pall2_init: INIT_STATE <= "PALL2_INIT";
ref1_init: INIT_STATE <= "REF1_INIT";
ref2_init: INIT_STATE <= "REF2_INIT";
mrs_init: INIT_STATE <= "MRS_INIT";
wait_init_end: INIT_STATE <= "WAIT_INIT_END";
default: INIT_STATE <= "INIT_END";
endcase;
end
always @(cs_dets) begin
case(cs_dets)
idle_dets: STATE_DETS <= "IDLE_DETS";
write_dets: STATE_DETS <= "WRITE_DETS";
default: STATE_DETS <= "WAIT_WRITE1";
endcase
end
// synthesis translate_on
type initial_ddr_sdram is (idle_init, pall1_init, emrs_dllena_init, mrs_dllrst_init, pall2_init, ref1_init, ref2_init, mrs_init, wait_init_end, init_end);
type ddr_sdram_state is (NOP, ACT, READ, WRIT, PALL, MRS, EMRS, REF);
signal n_init, c_init : initial_ddr_sdram;
signal n_state, c_state, b_state : ddr_sdram_state;
type dqs_enable_timing_state is (idle_dets, write_dets, wait_write1);
signal ns_dets, cs_dets : dqs_enable_timing_state;
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | - | - | - | - |