static void memory_test() { size_t address_size = 10; Memory *memory = new Memory(address_size); memory->input_set(MEMORY_INPUT_CLK, 0); memory->input_set(MEMORY_INPUT_MWE, 1); memory->address_set(2 + address_size, 0); //Output address for(size_t i = 2; i < 100; ++i) { memory->address_set(2, i); //Input address memory->data_set(i + 42); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); } memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->input_set(MEMORY_INPUT_MWE, 1); memory->address_set(2, 1); //Input address memory->address_set(2 + address_size, 0); //Output address memory->data_set(83); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->input_set(MEMORY_INPUT_MWE, 1); memory->address_set(2, 3); //Input address memory->data_set(199); memory->address_set(2 + address_size, 0); //Output address printf("Memory: %lu\n", memory->data_get()); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->input_set(MEMORY_INPUT_MWE, 0); memory->address_set(2, 3); //Input address memory->data_set(32); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->address_set(2 + address_size, 1); //Output address printf("Memory: %lu\n", memory->data_get()); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); memory->address_set(2 + address_size, 3); //Output address printf("Memory: %lu\n", memory->data_get()); for(size_t i = 0; i < 102; ++i) { memory->address_set(2 + address_size, i); //Output address printf("Memory: %lu\n", memory->data_get()); memory->input_set(MEMORY_INPUT_CLK, 1); memory->input_set(MEMORY_INPUT_CLK, 0); } delete memory; }