[an error occurred while processing this directive]
|
ну например так
module ROM32 (SD, wire [(rom_bit+1):2] #60 sa1 = SA;//=========== reg [31:0] data; assign SD = (rd & ~N_OEM & ~N_ROM) ? ROM[sa1] : initial always @(negedge wr) endmodule а память (для функции $readmemh)
E-mail:
info@telesys.ru
N_ROM, SA, N_BEM, N_WRM, N_OEM);
parameter rom_bit=21;
parameter rom_size=(1<
inout [31:0] SD;
input [22:2] SA;
input [3:0] N_BEM;
input N_ROM, N_WRM, N_OEM;
wire wr = ~N_ROM & ~N_WRM;
wire #60 rd = ~N_ROM & ~N_OEM;
wire #5 b0 = wr & ~N_BEM[0];
wire #5 b1 = wr & ~N_BEM[1];
wire #5 b2 = wr & ~N_BEM[2];
wire #5 b3 = wr & ~N_BEM[3];
reg [31:0] ROM[0:rom_size];
wire [31:0] #5 d = SD;
32'hzzzzzzzz;
begin
`ifdef romname
$readmemh(`romname,ROM);
`else
`d("##### No ROM defined");
`q
`endif
end
begin
data=ROM[sa1];
if(b0) data[7:0] = d[7:0];
if(b1) data[15:8] = d[15:8];
if(b2) data[23:16] = d[23:16];
if(b3) data[31:24] = d[31:24];
ROM[sa1]=data;
end
@00000000
46c06008
46c04778
e3e04007
e0000004
e5810000
e3a0050e
e59f1020
e3a02000
e4903004
e0822003
e1500001
dafffffb
Ответы