[an error occurred while processing this directive]
я делал чтением из файла. может в V2K есть инициализация
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено yes 11 ноября 2003 г. 08:59
В ответ на: Хотелось бы иметь возможность записать массив констант строчкой при инициализации, что-то вроде {10, -1, 25, ...} отправлено Рыба 10 ноября 2003 г. 18:39

//$Id: ROM32.v,v 1.2 1999/10/15 07:41:28 serg Exp $
// // ROM 32K X 32 1M x 32
//-------------------------------------------------------------------
`timescale 1ns/10ps

module ROM32 (SD,
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 [(rom_bit+1):2] #60 sa1 = SA;//===========
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] data;
reg [31:0] ROM[0:rom_size];
wire [31:0] #5 d = SD;

assign SD = (rd & ~N_OEM & ~N_ROM) ? ROM[sa1] :
32'hzzzzzzzz;

initial
begin
`ifdef romname
$readmemh(`romname,ROM);
`else
`d("##### No ROM defined");
`q
`endif
end

always @(negedge wr)
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

endmodule
------------------------
//$Id: dsp_connect,v 1.1 1999/09/29 10:50:46 serg Exp $
@00000000
e3a010d1
e129f001
e3a0db01
e3a010d2
e129f001
e3a0db01
e3a010db
e129f001
e3a0db01
e3a010d7
e129f001
e3a0db01
e3a010d3
e129f001
e3a0db01
e3a010d0
e169f001
e28fe000
e1b0f00e
.....

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru