Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Последняя версия Следующая версия справа и слева
6502:ir [2013/10/18 22:43]
org
6502:ir [2015/09/03 23:11]
org
Строка 46: Строка 46:
         IR01 = NOT(_IR[0]) | NOT(_IR[1]);​         IR01 = NOT(_IR[0]) | NOT(_IR[1]);​
 } }
 +</​code>​
 +
 +==== Verilog ====
 +
 +<code c>
 +// ------------------
 +// Instruction Register (IR)
 +
 +// Controls:
 +// FETCH: Load IR from PD (Predecode Latch)
 +
 +module InstructionRegister (
 +    // Outputs
 +    IR,
 +    // Inputs
 +    PHI0, FETCH, _PD
 +);
 +
 +    input PHI0, FETCH;
 +    input [7:0] _PD;        // Active-low!
 +
 +    output [7:0] IR;
 +
 +    // Clocks
 +    wire PHI1, PHI2;
 +    assign PHI1 = ~PHI0;
 +    assign PHI2 = PHI0;
 +
 +    reg [7:0] IR = 8'​b11111111; ​    // Power-up state (IR = 0xFF)
 +
 +initial begin
 +    IR = 8'​b11111111; ​      // For safety.
 +end
 +
 +always @(PHI1) begin
 +    if (FETCH) IR = ~_PD;
 +end
 +
 +endmodule ​  // InstructionRegister
 </​code>​ </​code>​
  
 {{template>​6502_blocks}} {{template>​6502_blocks}}
  • Показать страницу