A
ayza1505
Guest
Я спробував запустити цю програму, але є помилка з-за пам'яті: кілька постійних drivers.anyone може мені допомогти?
вхід WEN, A0, A1;
вхід DI0, DI1, DI2, DI3;
вихід DO0, do1, DO2, do3;Параметр MEMORY_SIZE = 4;
Параметр WORD_LEN = 4;
Параметр ADDRESS_WIDTH = 2;
р [0: (WORD_LEN - 1)] пам'ять [(MEMORY_SIZE - 1): 0] / / Оперативна пам'ять
дроту [(ADDRESS_WIDTH -1): 0] rw_address_reg / / 'RD (читати) адреса порту.
дроту [0: (WORD_LEN - 1)] bdi_data_reg / / введення "даних реєстру.
дроту [0: (WORD_LEN - 1)] ado_data_wire / / вихід "дані" зареєструватися
р [0: (WORD_LEN - 1)] ado_data_reg / / вихід "дані" зареєструватися
р [(MEMORY_SIZE - 1): 0] темпах;
ЬіЕ ira0 (A0_BUF, А0);
ЬіЕ ira1 (A1_BUF, A1);
ЬіЕ dib0 (DI0_BUF, DI0);
ЬіЕ dib1 (DI1_BUF, DI1);
ЬіЕ dib2 (DI2_BUF, DI2);
ЬіЕ dib3 (DI3_BUF, DI3);
ЬіЕ wenable (WEN_BUF, WEN);
призначати
rw_address_reg = (A1_BUF, A0_BUF),
bdi_data_reg = (DI0_BUF, DI1_BUF, DI2_BUF, DI3_BUF);завжди @ (negedge WEN_BUF)
починати
якщо (== WEN_BUF 1'b0)
починати
якщо (rw_address_reg <MEMORY_SIZE)
починати
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
ще
починати
$ Дисплея ("WRITE-ERROR [RAM4X4]: [Незаконні Адреса <1:0> =% D>% D], час =% г \ п", rw_address_reg, MEMORY_SIZE, $ часу);
для (темпах = 0; темпах <WORD_LEN; Темп Темп = 1)
починати
ado_data_reg [темпах] = 1'bx;
кінець
кінець
кінець
кінець
завжди @ (rw_address_reg)
починати
якщо (== WEN_BUF 1'b1)
починати
ado_data_reg = пам'яті [rw_address_reg];
кінець
ще
починати
для (темпах = 0; темпах <WORD_LEN; Темп Темп = 1)
починати
ado_data_reg [темпах] = 1'bx;
кінець
$ Дисплея ("WRITE-ERROR [RAM4X4]: <1:0> змінилася", $ раз ", а (Wen) = 0 \ п");
для (темпах = 0; темпах <MEMORY_SIZE; Темп Темп = 1)
починати
пам'ять [темпах] = 4'bx;
кінець
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
кінець
завжди @ (bdi_data_reg)
починати
якщо (== WEN_BUF 1'b0)
починати
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
кінець
вхід WEN, A0, A1;
вхід DI0, DI1, DI2, DI3;
вихід DO0, do1, DO2, do3;Параметр MEMORY_SIZE = 4;
Параметр WORD_LEN = 4;
Параметр ADDRESS_WIDTH = 2;
р [0: (WORD_LEN - 1)] пам'ять [(MEMORY_SIZE - 1): 0] / / Оперативна пам'ять
дроту [(ADDRESS_WIDTH -1): 0] rw_address_reg / / 'RD (читати) адреса порту.
дроту [0: (WORD_LEN - 1)] bdi_data_reg / / введення "даних реєстру.
дроту [0: (WORD_LEN - 1)] ado_data_wire / / вихід "дані" зареєструватися
р [0: (WORD_LEN - 1)] ado_data_reg / / вихід "дані" зареєструватися
р [(MEMORY_SIZE - 1): 0] темпах;
ЬіЕ ira0 (A0_BUF, А0);
ЬіЕ ira1 (A1_BUF, A1);
ЬіЕ dib0 (DI0_BUF, DI0);
ЬіЕ dib1 (DI1_BUF, DI1);
ЬіЕ dib2 (DI2_BUF, DI2);
ЬіЕ dib3 (DI3_BUF, DI3);
ЬіЕ wenable (WEN_BUF, WEN);
призначати
rw_address_reg = (A1_BUF, A0_BUF),
bdi_data_reg = (DI0_BUF, DI1_BUF, DI2_BUF, DI3_BUF);завжди @ (negedge WEN_BUF)
починати
якщо (== WEN_BUF 1'b0)
починати
якщо (rw_address_reg <MEMORY_SIZE)
починати
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
ще
починати
$ Дисплея ("WRITE-ERROR [RAM4X4]: [Незаконні Адреса <1:0> =% D>% D], час =% г \ п", rw_address_reg, MEMORY_SIZE, $ часу);
для (темпах = 0; темпах <WORD_LEN; Темп Темп = 1)
починати
ado_data_reg [темпах] = 1'bx;
кінець
кінець
кінець
кінець
завжди @ (rw_address_reg)
починати
якщо (== WEN_BUF 1'b1)
починати
ado_data_reg = пам'яті [rw_address_reg];
кінець
ще
починати
для (темпах = 0; темпах <WORD_LEN; Темп Темп = 1)
починати
ado_data_reg [темпах] = 1'bx;
кінець
$ Дисплея ("WRITE-ERROR [RAM4X4]: <1:0> змінилася", $ раз ", а (Wen) = 0 \ п");
для (темпах = 0; темпах <MEMORY_SIZE; Темп Темп = 1)
починати
пам'ять [темпах] = 4'bx;
кінець
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
кінець
завжди @ (bdi_data_reg)
починати
якщо (== WEN_BUF 1'b0)
починати
пам'ять [rw_address_reg] = bdi_data_reg;
ado_data_reg = пам'яті [rw_address_reg];
кінець
кінець