M
microe_victor
Guest
Ayúdame en este APB típico proceso de escritura
que se describe como la foto siguiente<img src="http://images.elektroda.net/55_1168186101.GIF" border="0" alt="Help me with " a APB writing register process "" title="Ayúdame con "un registro de proceso de escritura APB""/>Por favor, use verilog a escribir esto, gracias
PS:
Aquí está mi código, no aplicar todas las funciones.Es mi primera vez de escribir el código RTL, así que creo que podría haber algún malentendido en el Protocolo de APB
siempre @ (posedge pclk)
empezar
if (PRESET)
empezar
estado <= INI;
tag_addr <= 0;
datos <= 32'b0;
final
algo más
empezar
caso (estado)
INI:
empezar
if ((PSELE == 1'b1) & & (PENABLE == 1'b0))
estado <= SELECT;
algo más
estado <= INI;
final
SELECT:
empezar
if ((PSELE == 1'b1) & & (PENABLE == 1'b1))
empezar
estado <= enable;
if (addr == DIRECCIÓN)
tag_addr <= 1'b1;
algo más
tag_addr <= 1'b0;
final
algo más
empezar
estado <= INI;
final
final
ENABLE:
empezar
if (tag_addr)
datos <= PDATA;
algo más
datos <= datos;
if ((PSELE == 1'b1) & & (PENABLE == 1'b0))
estado <= SELECT;
algo más
estado <= INI;
final
default:
estado <= INI;
endcase
final
final
que se describe como la foto siguiente<img src="http://images.elektroda.net/55_1168186101.GIF" border="0" alt="Help me with " a APB writing register process "" title="Ayúdame con "un registro de proceso de escritura APB""/>Por favor, use verilog a escribir esto, gracias
PS:
Aquí está mi código, no aplicar todas las funciones.Es mi primera vez de escribir el código RTL, así que creo que podría haber algún malentendido en el Protocolo de APB
siempre @ (posedge pclk)
empezar
if (PRESET)
empezar
estado <= INI;
tag_addr <= 0;
datos <= 32'b0;
final
algo más
empezar
caso (estado)
INI:
empezar
if ((PSELE == 1'b1) & & (PENABLE == 1'b0))
estado <= SELECT;
algo más
estado <= INI;
final
SELECT:
empezar
if ((PSELE == 1'b1) & & (PENABLE == 1'b1))
empezar
estado <= enable;
if (addr == DIRECCIÓN)
tag_addr <= 1'b1;
algo más
tag_addr <= 1'b0;
final
algo más
empezar
estado <= INI;
final
final
ENABLE:
empezar
if (tag_addr)
datos <= PDATA;
algo más
datos <= datos;
if ((PSELE == 1'b1) & & (PENABLE == 1'b0))
estado <= SELECT;
algo más
estado <= INI;
final
default:
estado <= INI;
endcase
final
final