Я не звикла заощаджувати "простір" у SRAM, можете мені допомогти?

B

Bebo

Guest
Привіт кожен орган ...я написав код, який отримає дані RS232 і збережіть його на SRAM ...і його роботи<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />Але у мене є проблема ...я не звикла заощаджувати "простір", які дорівнюють 20 в шістнадцятковій системі, з даними ... я спробував змінити свій код, але мені не вдалосяPLZ ...допоможіть мені<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Сумний" border="0" />ось мій код:# # # # MEM_SRAM #####################################

Модуль MEM_SRAM (
Data_Bus, / / Шина даних
Адреса, / / RAM Адреса
НРД, / / RAM читайте Включити
ЗЗР, / / RAM Створити Включити
NCE, / / Chip RAM Включити
НБУ, / / RAM Верхній байт
NLB, / / RAM Нижня Байт
Data_In,
Address_In,
RxD_endofpacket,
LEDR,
CLK) / / Створити Включити

вихід р [17:00] Виступ / / RAM сигналів / / включити
InOut [7:00] Data_Bus;
вихід НРД, ЗЗР;
вихід НБУ, NLB;
вихід NCE;
р [1:00] ми / / Створити Включити
вхід [17:00] Address_In;
вхід [7:00] Data_In;
вхід RxD_endofpacket;
потужність [17:00] LEDR / / включити р
вхід CLK;
НБУ призначити = 1'b1 / / Вимкнути Верхній байт
призначити NLB = 1'b0 / / Включити Нижня Байт
присвоїти NCE = 1'b0 / / Включити Chip
призначити NRD = 1'b0 / / Читати Включити
призначити ЗЗР =! МИ / / Створити Включитипризначити Data_Bus = МИ?Data_In: 8'hzz;

завжди @ (posedge RxD_endofpacket)
якщо (RxD_endofpacket == 1)
починати
якщо (Data_In == "00100000")
МИ = 1'b0;
ще
МИ = 1'b1;

Адреса <= Адреса 1;
кінець

призначити LEDR = Адреса;

###################################
Це модуль, який поєднує в собі модуль приймача і модуля SRAM######## ############################

Модуль serialfun (CLK, RxD, RxD_data, ЗЗР, NCE,
НРД, адреса, Data_Bus, LED, Data_In, НБУ, NLB, RxD_endofpacket, RxD_data_ready, RxD_idle);
вхід CLK;
вхід RxD;
вихід RxD_idle;
вихід RxD_endofpacket;
вихід RxD_data_ready;
вихід NRD;
вихід ЗЗР, NCE;
р [1:00] МИ;
потужність [17:00] Виступ;
InOut [7:00] Data_Bus;
потужність [17:00] СІД;
вихід НБУ, NLB;

////////////////////////////////////////////////// /
/ / Дріт RxD_data_ready;
потужність [7:00] RxD_data;
async_receiver перетворювач (. CLK (CLK). RxD (RxD). RxD_data (RxD_data). RxD_endofpacket (RxD_endofpacket). RxD_idle (RxD_idle). RxD_data_ready (RxD_data_ready));
////////////////////////////////////////////////// /

////////////////////////////////////////////////// /////////
вхід [7:00] Data_In;
р [17:00] Address_In;

MEM_SRAM і0 (. Data_Bus (Data_Bus). Адреса (Адреса). NRD (НРД). НБУ (НБУ). NLB (NLB),
. ЗЗР (ЗЗР). NCE (NCE). Address_In (Address_In). Data_In (RxD_data). LEDR (LED). RxD_endofpacket (RxD_endofpacket));endmodule

 
incremented when RxD_endofpacket==1.

У коді, адреса завжди
збільшується, коли RxD_endofpacket == 1.

Це повинно виглядати приблизно так:

Код:якщо (Data_In == 'h20)

МИ <= 1'b0;

Ьедт

МИ <= 1'b1;

Адреса <= Адреса 1;

кінець

 
Дякую вам devnull

Я змінив свій код ..

WE (Створити Увімкнути) буде ввести код MEM, як введення і я буду перевіряти, якщо дані "простір", або будь-які інші дані зі сторін, а потім увійдіть ми повинні писати або не пам'ять.

і в коді MEM я просто приріст адресу.

Як ви думаєте, що моя логіка наказ чи ні?модуль, який поєднує в собі модуль приймача і модуля SRAM:
###############################################

Модуль serialfun (CLK, RxD, RxD_data, ЗЗР, NCE,НРД, адреса, Data_Bus, LED, Data_In, НБУ, NLB, RxD_endofpacket, RxD_data_ready, RxD_idle, WE);вхід CLK;вхід RxD;вихід RxD_idle;вихід RxD_endofpacket;вихід RxD_data_ready;вихід NRD;вихід ЗЗР, NCE;вихідний р-ми;потужність [17:00] Виступ;InOut [7:00] Data_Bus;потужність [17:00] СІД;вихід НБУ, NLB;
////////////////////////////////////////////////// // / Дріт RxD_data_ready;потужність [7:00] RxD_data;async_receiver перетворювач (. CLK (CLK). RxD (RxD). RxD_data (RxD_data). RxD_endofpacket (RxD_endofpacket). RxD_idle (RxD_idle). RxD_data_ready (RxD_data_ready));

////////////////////////////////////////////////// /завжди @ (posedge RxD_endofpacket)якщо (RxD_endofpacket == 1)починатиякщо (== RxD_data 8'b00100000)МИ = 1'b0;щеМИ = 1'b1;кінець////////////////////////////////////////////////// /////////призначити Data_Bus = МИ?RxD_data: 8'hzz;////////////////////////////////////////////////// /////////вхід [7:00] Data_In;
р [17:00] Address_In;

MEM_SRAM і0 (. Data_Bus (Data_Bus). Адреса (Адреса). NRD (НРД). НБУ (НБУ). NLB (NLB),
. ЗЗР (ЗЗР). NCE (NCE). Address_In (Address_In). Data_In (RxD_data). LEDR (LED). RxD_endofpacket (RxD_endofpacket). МИ (WE));endmodule [/ колір]

################################################## #

SRAM Код:################################################## # #Модуль MEM_SRAM (Data_Bus, / / Шина данихАдреса, / / RAM АдресаНРД, / / RAM читайте ВключитиЗЗР, / / RAM Створити ВключитиNCE, / / Chip RAM ВключитиНБУ, / / RAM Верхній байтNLB, / / RAM Нижня БайтData_In,Address_In,RxD_endofpacket,LEDR,МИ,CLK) / / Створити Включитивихід р [17:00] Виступ / / RAM сигналів / / включитиInOut [7:00] Data_Bus;вихід НРД, ЗЗР;вихід НБУ, NLB;вихід NCE;МИ введення / / Створити Включитивхід [17:00] Address_In;вхід [7:00] Data_In;вхід RxD_endofpacket;потужність [17:00] LEDR / / включити рвхід CLK;НБУ призначити = 1'b1 / / Вимкнути Верхній байтпризначити NLB = 1'b0 / / Включити Нижня Байтпризначити NCE = 1'b0 / / Включити Chipпризначити NRD = 1'b0 / / Читати Включитипризначити ЗЗР =! МИ / / Створити Включити

завжди @ (posedge RxD_endofpacket)якщо (RxD_endofpacket == 1)починатиякщо (WE == 1)Адреса <= Адреса 1;щеАдреса <= Адреса 0;кінець
призначити LEDR = Адреса;########################################### 3
 
Кращий спосіб визначити, якщо ваш код буде працювати чи ні, для моделювання і дивитися на хвилі.

 
я не знаю, що сталося з моїм кодом??: /

коли я відправити дані, такі як (наприклад)>>> 1, то 2, то "простір", то 3, то 4

збережених даних, як це в SRAM>>>> 1, то 2, то "простір", а потім 4

Я не знаю, чому це зберегти "простір" і пропустити три >>????

це моя проекту в цілому:

###########################################Модуль serialfun (CLK, RxD, RxD_data, ЗЗР, NCE,НРД, адреса, Data_Bus, LED, Data_In, НБУ, NLB, RxD_endofpacket, RxD_data_ready, RxD_idle, WE);вхід CLK;вхід RxD;вихід RxD_idle;вихід RxD_endofpacket;вихід RxD_data_ready;вихід NRD;вихід ЗЗР, NCE;вихідний р-ми;потужність [17:00] Виступ;InOut [7:00] Data_Bus;потужність [17:00] СІД;вихід НБУ, NLB;

////////////////////////////////////////////////// // / Дріт RxD_data_ready;потужність [7:00] RxD_data;async_receiver перетворювач (. CLK (CLK). RxD (RxD). RxD_data (RxD_data). RxD_endofpacket (RxD_endofpacket). RxD_idle (RxD_idle). RxD_data_ready (RxD_data_ready));
////////////////////////////////////////////////// /
завжди @ (posedge RxD_endofpacket)якщо (RxD_endofpacket == 1)починатиякщо (== RxD_data 8'b00100000)МИ = 1'b0;

щеМИ = 1'b1;
кінець////////////////////////////////////////////////// /////////
/ / Присвоїти Data_Bus = МИ?
RxD_data: 8'hzz;вхід [7:00] Data_In;р [17:00] Address_In;
////////////////////////////////////////////////// /////////MEM_SRAM і0 (. Data_Bus (Data_Bus). Адреса (Адреса). NRD (НРД). НБУ (НБУ). NLB (NLB),. ЗЗР (ЗЗР). NCE (NCE). Address_In (Address_In). Data_In (RxD_data). LEDR (LED). RxD_endofpacket (RxD_endofpacket). МИ (WE));

endmodule

##############################################
Модуль MEM_SRAM (Data_Bus, / / Шина данихАдреса, / / RAM АдресаНРД, / / RAM читайте ВключитиЗЗР, / / RAM Створити ВключитиNCE, / / Chip RAM ВключитиНБУ, / / RAM Верхній байтNLB, / / RAM Нижня БайтData_In,Address_In,RxD_endofpacket,LEDR,МИ,CLK) / / Створити Включити
вихід р [17:00] Виступ / / RAM сигналів / / включитиInOut [7:00] Data_Bus;вихід НРД, ЗЗР;вихід НБУ, NLB;вихід NCE;МИ введення / / Створити Включитивхід [17:00] Address_In;вхід [7:00] Data_In;вхід RxD_endofpacket;потужність [17:00] LEDR / / включити рвхід CLK;НБУ призначити = 1'b1 / / Вимкнути Верхній байтпризначити NLB = 1'b0 / / Включити Нижня Байтпризначити NCE = 1'b0 / / Включити Chipпризначити NRD = 1'b0 / / Читати Включитипризначити ЗЗР =! МИ / / Створити Включити

призначити Data_Bus = МИ?
Data_In: 8'hzz;
завжди @ (posedge RxD_endofpacket)якщо (RxD_endofpacket == 1)починатиякщо (WE == 1)Адреса <= Адреса 1;
/ / Ще/ / Адреса <= Адреса 0;кінець
призначити LEDR = Адреса;

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top