С 7 по 9 ноября в Институте космических и информационных технологий Сибирского федерального университета прошла I Зимняя школа «Цифровые встраиваемые системы». Участниками школы были студенты и аспиранты СФУ.
Читать полностью »
Рубрика «Verilog»
Как мы провели Зимнюю школу «Цифровые встраиваемые системы» в Красноярске
2018-12-25 в 15:50, admin, рубрики: fpga, Verilog, ПЛИС, Производство и разработка электроники, процессор, Процессоры, разработка микросхем, схемотехника, Электроника для начинающихДесятиклассница из Сибири хочет стать проектировщицей процессоров. Почему бы ей не сделать нейроускоритель на ПЛИС?
2018-12-07 в 8:50, admin, рубрики: fpga, Verilog, vhdl, высокая производительность, искусственный интеллект, машинное обучение, нейросети, образование, олимпиадное программирование, ПЛИС, Электроника для начинающихВчера мне пришло письмо от десятиклассницы из Сибири, которая хочет стать разработчицей микропроцессоров. Она уже получила некоторый результат в этой области — добавила инструкцию умножения в простейший процессор schoolMIPS, синтезировала его для ПЛИС Intel FPGA MAX10, определила максимальную частоту и повышение производительности простых программ. Все это она сначала делала в деревне Бурмистрово Новосибирской Области, а потом на конференции в Томске.
Теперь Даша Криворучко (так зовут десятиклассницу) переехала жить в московский интернат и спрашивает у меня, чего бы ей еще спроектировать. Я думаю, что на этом этапе карьеры ей стоит спроектировать аппаратный ускоритель нейросетей на основе систолического массива для умножения матриц. Использовать язык описания аппаратуры Verilog и ПЛИС Intel FPGA, но не дешевенький MAX10, а что-нибудь подороже, чтобы вместить большой систолический массив.
После этого сравнить производительность аппаратного решения с программой, работающей на процессоре schoolMIPS, а также с программой на Питоне, работающей на десктопном компьютере. В качестве тестового примера использовать распознавание цифр с небольшой матрицы.
RAM with Simple direct-mapped cache simulation on FPGA in Verilog
2018-12-06 в 14:11, admin, рубрики: cache, fpga, fpga дизайн, ram, simulation, testbench, VerilogSimple direct-mapped cache simulation on FPGA
This article is a part of a course work for first year bachelor students of Innopolis University. All work is done in a team. The purpose of this article is to show an understanding of the topic, or to help to understand it using simulation.
Principle of work but from the user side should look like:
- To write any data in memory, you need to access the RAM with data and address in which we want to write.
- To access the data, we have to adress to cache. If the cache cannot find the necessary data, then it accesses the RAM by copying data from there.
When working with Verilog, it should be understood that each individual block of the program is represented as a module. As you know, the cache is not an independent part of fast memory, and for its proper operation it needs to take data from another memory block — RAM. Therefore, in order to simulate the work of the cache at the FPGA, we have to simulate whole RAM module which includes cache as well, but the main point is cache simulation.
The implementation consists of such modules:
- ram.v — RAM memory module
- cache.v — Cache memory module
- cache_and_ram.v — module that operates with data and memory.
- testbench.v and testbench2.v — module to show that main modules work perfectly.
Musical box and rotary encoder on FPGA board
2018-11-30 в 8:19, admin, рубрики: fpga, FPGA Cyclone IV, Innopolis University, Verilog, программирование микроконтроллеровIntroduction
We are the first year students studying Computer Science in Innopolis University and we would like to share our experience in developing a Verilog program to create the coolest (well, at least, the loudest) rotary encoder ever on an FPGA board.
In this article, you will find a wonderful story about our project, the hardware, software we used and some background theory regarding rotary encoder and creating sounds in FPGA’s buzzer. Finally, we will provide a link to a github repository where a reader can access the source code. We hope you will like the project and it will inspire you to make something similar.
So, let’s start!
Hardware and Software
Real-time edge detection using FPGA
2018-11-28 в 8:03, admin, рубрики: edge detect, electronics, fpga, FPGA Cyclone IV, image processing, Innopolis University, Verilog, АлгоритмыIntroduction
Our project implements a real-time edge detection system based on capturing image frames from an OV7670 camera and streaming them to a VGA monitor after applying a grayscale filter and Sobel operator. Our design is built on a Cyclone IV FPGA board which enables us to optimize the performance using the powerful features of the low-level hardware and parallel computations which is important to meet the requirements of the real-time system.
We used ZEOWAA FPGA development board which is based on Cyclone IV (EP4CE6E22C8N). Also, we used Quartus Prime Lite Edition as a development environment and Verilog HDL as a programming language. In addition, we used the built-in VGA interface to drive the VGA monitor, and GPIO (General Pins for Input and Output) to connect the external hardware with our board.
The Snake game for FPGA Cyclone IV (with VGA & SPI joystick)
2018-11-27 в 10:10, admin, рубрики: digital, fpga, game development, Innopolis University, joystick, snake, Verilog, VGA, Игры и игровые приставкиIntroduction
Do you remember the snake game from childhood, where a snake runs on the screen trying to eat an apple? This article describes our implementation of the game on an FPGA1.
Figure 1. Gameplay
Написание простого процессора и окружения для него
2018-11-21 в 16:23, admin, рубрики: C, fpga, Verilog, программирование микроконтроллеров, системное программирование, Создание процессораЗдравствуйте! В этой статье я расскажу какие шаги нужно пройти для создания простого процессора и окружения для него.
Модель разработки на примере Stack-based CPU
2018-11-19 в 19:03, admin, рубрики: fpga, java, own language, Verilog, ПрограммированиеВозникал ли у вас когда-нибудь вопрос "как работает процессор?". Да-да, именно тот, который находится в вашем в ПК/ноутбуке/смартфоне. В этой статье я хочу привести пример самостоятельно придуманного процессора с дизайном на языке Verilog. Verilog — это не совсем тот язык программирования, на который он похож. Это — Hardware Description Language. Написанный код не выполняется чем-либо (если вы не запускаете его в симуляторе, конечно), а превращается в дизайн физической схемы, либо в вид, воспринимаемый FPGA (Field Programmable Gate Array).
Stack-based calculator on the Cyclone IV FPGA board
2018-11-14 в 15:25, admin, рубрики: fpga, Verilog, программирование микроконтроллеровIntroduction
As first-year students of Innopolis University, we had an opportunity to make our own project in computer architecture. University suggested to us several projects and we have chosen to make a stack-based calculator with reverse polish notation. One of the requirements for the project is to use FPGA board provided by the university.
As our board, we have chosen Cyclon IV. Therefore, we had to write code on hardware description language. In the course we have studied Verilog, so we have chosen it. Also, the university has additional modules for FPGA, such as numpad, thus we decided to use it in our project.
In this article, we want to share our knowledge about FPGA and Verilog, also provide you with a tutorial to repeat our project.
Читать полностью »
Особенности оконной фильтрации на ПЛИС
2018-10-23 в 10:56, admin, рубрики: Altera, c++, cordic, fpga, Matlab, Verilog, vhdl, vivado, vivado hls, windows, xilinx, Алгоритмы, математика, ПЛИС, программирование микроконтроллеровВсем привет!
В этой статье речь пойдет об одной важной части цифровой обработки сигналов — оконной фильтрации сигналов, в частности на ПЛИС. В статье будут показаны способы проектирования классических окон стандартной длины и «длинных» окон от 64K до 16M+ отсчетов. Основной язык разработки — VHDL, элементная база — современные кристаллы FPGA Xilinx последних семейств: это Ultrascale, Ultrascale+, 7-series. В статье будет показана реализация CORDIC — базового ядра для конфигурации оконных функций любой длительности, а также основных оконных функций. В статье рассмотрен метод проектирования с помощью языков высокого уровня С/C++ в Vivado HLS. Как обычно, в конце статьи вы найдете ссылку на исходные коды проекта.
КДПВ: типичная схема прохождения сигнала через узлы ЦОС для задач анализа спектра.
Читать полностью »