User`s manual
12 ‘define STATUS_WRITE_ERROR 4’hB
13 ‘define STATUS_READ_WRONG_DATA 4’hC
14
15 ‘define NUM_BLOCKS 128
16 ‘define BLOCK_SIZE 64*1024
17 ‘define LAST_BLOCK_ADDRESS ((‘NUM_BLOCKS-1)*‘BLOCK_SIZE)
18 ‘define LAST_ADDRESS (‘NUM_BLOCKS*‘BLOCK_SIZE-1)
19
20 ‘define FLASHOP_IDLE 2’b00
21 ‘define FLASHOP_READ 2’b01
22 ‘define FLASHOP_WRITE 2’b10
23
24 module test_fsm (reset, clock, fop, faddress, fwdata, frdata, fbusy, dots, mode, busy, datain, addrin, state);
25 input reset, clock;
26 output [1:0] fop;
27 output [22:0] faddress;
28 output [15:0] fwdata;
29 input [15:0] frdata;
30 input fbusy;
31 output [639:0] dots;
32 input [1:0] mode;
33 output busy;
34 input [15:0] datain;
35 input [22:0] addrin;
36 output state;
37
38 reg [1:0] fop;
39 reg [22:0] faddress;
40 reg [15:0] fwdata;
41 reg [639:0] dots;
42 reg busy;
43 reg [15:0] data_to_store;
44
45 ////////////////////////////////////////////////////////////////////////////
46 //
47 // State Machine
48 //
49 ////////////////////////////////////////////////////////////////////////////
50
51 reg [7:0] state;
52 reg [3:0] status;
53
54 parameter MODE_IDLE = 0;
55 parameter MODE_INIT = 1;
56 parameter MODE_WRITE = 2;
57 parameter MODE_READ = 3;
74