По всем вопросам звоните:

+7 495 274-22-22

УДК: 621.9 DOI:10.33920/pro-2-2106-06

Кодирование оперативной памяти на языке описания Verilog для решения задач в радиоэлектронике и машиностроении

Юдачев С. С., канд. техн. наук, доцент, декан РТ-факультета, МГТУ им. Н.Э. Баумана, Москва, 105005, Москва ул. 2-я Бауманская, д. 5
Ситников С. С., МГТУ им. Н.Э. Баумана, Москва, 105005, Москва ул. 2-я Бауманская, д. 5, е-mail: sitnikovss@bk.ru
Монахов П. А., МГТУ им. Н.Э. Баумана, Москва, 105005, Москва ул. 2-я Бауманская, д. 5

Предложен вариант написания алгоритма работы устройства, применяемого в программируемой логической интегральной схеме, на примере кодирования оперативной памяти при помощи языка описания аппаратуры Verilog. При выполнении работы используется программное обеспечение Xilinx, позволяющее работать с проектом на всех этапах создания и описания работы логики устройства. Практическая значимость работы — изучение и решение простейших задач в области разработки современных радиоэлектронных устройств быстрого реагирования на языке описания аппаратуры Verilog, например как само кодирование программируемой логической интегральной схемы, так и написание тестового отладочного кода, а также задание входных и выходных сигналов, синхроимпульса, сигналов сброса и разрешения, описание логики работы устройств, таких как счетчики, коммутаторы, регистры и триггеры, а также симуляции готового проекта для оценки корректности работы запрограммированного устройства. Данная работа может использоваться не только для обучения студентов высших учебных заведений в области разработки, отладки и кодирования электронных и радиоэлектронных устройств в части описания алгоритма их работы, но и для организации лабораторных работ по курсам дисциплин, связанных с данной тематикой, и для создания и проектирования реальных устройств на производстве. Ознакомление и изучение данного языка программирования проводятся в стенах одного из ведущих инженерных университетов Российской Федерации — Московского государственного технического университета им. Н.Э. Баумана.

Литература:

1. Цифровой синтез: практический курс / Под общ. ред. А.Ю. Романова, Ю.В. Панчула. — Москва: ДМК Пресс, 2020. — 556 с.

2. Акчурин, А. Д., Юсупов, К.М. Программирование на языке Verilog: учебное пособие. — Казань, 2016. — 90 с.

3. Поляков, А.К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. — Москва: СОЛОН-Пресс, 2003. — 320 с.

4. Бибило, П. Н., Авдеев, Н.А. Моделирование и верификация цифровых систем на языке VHDL. — Москва: ЛЕНАНД, 2017. — 344 с.

5. Закревский, А.Д. Параллельные алгоритмы логического управления. — Минск: Ин-т техн. кибернетики НАН Беларуси, 1999. — 202 с.

6. Бибило, П.Н. Синтез логических схем с использованием языка VHDL. — Москва: Солон-Р, 2002. — 384 с.

7. Бибило, П.Н. Cистемы проектирования интегральных схем на основе языка VHDL. StateCAD, ModelSim, LeonardoSpectrum. — Москва: СОЛОНПресс, 2005. — 384 с.

8. Бибило, П. Н., Авдеев, Н.А. VHDL. Эффективное использование при проектировании цифровых систем. — Москва: СОЛОН-Пресс, 2006. — 344 с.

9. Бибило, П.Н. Логическое перепроектирование схем, реализованных на FPGA, в схемы на базовых матричных кристаллах // Информационные технологии. — 2004. — №1. — С. 10–17.

10. Бибило, П.Н. Проектирование конечных автоматов в САПР WebPack ISE фирмы Xilinx // Информационные технологии. — 2004. — №3. — С. 8–13.

1. Cifrovoj sintez: prakticheskij kurs / pod obshch. red. A. YU. Romanova, YU. V. Panchula. — M.: DMK Press, 2020. — 556 s.

2. Akchurin A.D., Yusupov K.M. Programmirovanie na yazyke Verilog. Uchebnoe posobie. — Kazan', 2016. — 90 s.

3. Polyakov A.K. Yfzyki VHDL i VERILOG v proektirovanii cifrovoj apparatury. — M.: SOLON-Press, 2003. — 320 s.

4. Bibilo P.N., Avdeev N.A. Modelirovanie i verifikaciya cifrovyh sistem na yazyke VHDL. — M.: LENAND, 2017. — 344 s.

5. Zakrevskij A.D. Parallel»nye algoritmy logicheskogo upravleniya. Mn.: In-t tekhn. kibernetiki NAN Belarusi. 1999. — 202 s.

6. Bibilo P.N. Sintez logicheskih skhem s ispol»zovaniem yazyka VHDL. — M.: Solon-R, 2002. — 384 s.

7. Bibilo P.N. Cistemy proektirovaniya integral»nyh skhem na osnove yazyka VHDL. StateCAD, ModelSim, LeonardoSpectrum. — M.: SOLON-Press, 2005. — 384 s.

8. Bibilo P.N., Avdeev N.A. VHDL. Effektivnoe ispol»zovanie pri proektirovanii cifrovyh sistem. — M.: SOLON-Press, 2006. — 344 s.

9. Bibilo P.N. Logicheskoe pereproektirovanie skhem, realizovannyh na FPGA, v skhemy na bazovyh matrichnyh kristallah. //Informacionnye tekhnologii. — 2004. — №1. — S. 10–17

10.Bibilo P.N. Proektirovanie konechnyh avtomatov v SAPR WebPack ISE firmy Xilinx. //Informacionnye tekhnologii. — 2004. — №3. — S. 8–13.

Оперативная память необходима для хранения выполняемого машинного кода во время работы устройства, а также хранения входных и выходных данных, подлежащих обработке [1–10].

Рассмотрим один из вариантов реализации оперативной памяти. Зададим период синхроимпульса 5 нс, что означает частоту работы нашей оперативной памяти 0,2 ГГц. Для усложнения задачи и приближения ее к реальной добавим несложное условие записи. Будем записывать числа в память, если они больше 5.

Также нам необходимо заранее определить, сколько данных сможет вместить в себя память и сколько бит может содержать каждое данное. Пусть число ячеек памяти будет равно 10 и каждая ячейка будет вмещать в себя 5 бит. Также нужно после записи всех ячеек ввести запрет на запись новых данных. В противном случае при большом числе входных данных у нас постоянно будет происходить перезапись и сама идея оперативной памяти потеряет свой смысл.

В соответствии с этим, сколько бы данных мы ни подали на вход, после записи всех ячеек при поступлении новых данных они будут просто «проходить» мимо не влияя на нашу память.

В качестве программных функций будем использовать главный файл программы, содержащий описание логики работы нашего устройства, тестировочный файл, в который будем передавать значения наших сигналов:

clk — синхросерия;

reset — сигнал сброса;

en — разрешающий сигнал;

shd — шина данных, содержащая значения входных данных, которые приходят в каждом такте;

razmer — сигнал, определяющий количество ячеек, в которые будет производиться запись, а также файл симуляции, в котором потактово отображаются значения всех сигналов.

Также хотелось бы отметить, что для корректных записи и чтения необходимо формировать адреса, по которым будут записываться и считываться числа. Для этого потребуется два счетчика — на входе и на выходе. Когда данные поступают на вход, счетчик начинает работать и формировать адреса. Как только сформировали адреса, равные количественно сигналу razmer, у нас появляется сигнал zapret, который запрещает дальнейшую запись данных в память, что соответствует алгоритму работы нашего устройства. Одновременно с этим этот же сигнал дает нам разрешение на чтение данных из памяти. В этот же момент начинает формирование выходных адресов наш второй счетчик, что и позволяет получать на выходе не одно и то же данное, а разные данные из каждого адреса.

Для Цитирования:
Юдачев, Ситников, Монахов, Кодирование оперативной памяти на языке описания Verilog для решения задач в радиоэлектронике и машиностроении. Главный механик. 2021;6.
Полная версия статьи доступна подписчикам журнала
Язык статьи:
Действия с выбранными: