Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы

Лекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы (В.В. Подымов, М.С. Шуплецов - Лекции и семинары), страница 2

PDF-файл Лекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы (В.В. Подымов, М.С. Шуплецов - Лекции и семинары), страница 2 Пакеты проектирования сверхбольших интегральных схем (53105): Лекции - 7 семестрЛекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы (В.В. Подымов, М.С. Шуплецов - Лекции и семинары) - PDF, страница 2 (53105) - СтудИзба2019-09-18СтудИзба

Описание файла

Файл "Лекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы" внутри архива находится в папке "В.В. Подымов, М.С. Шуплецов - Лекции и семинары". PDF-файл из архива "В.В. Подымов, М.С. Шуплецов - Лекции и семинары", который расположен в категории "". Всё это находится в предмете "пакеты проектирования сверхбольших интегральных схем" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Width ( 3 ) ) (< arguments >)Iбез указания параметров — тогда подставляется значениепо умолчаниюr e g i s t e r r (< arguments >)Лекция 1Часть 2Управляющие автоматыВведение: зачем нужен управляющий автомат8loadresetclock1register8+Эта схема определяет то, как преобразуются данные, то естьоперационный автоматВ зависимости от того, что подаётся на входные сигналы load,reset, clock, данные, записанные в регистр, могутIоставаться такими же, как и былиIувеличиваться на единицуIсбрасываться в нольВведение: зачем нужен управляющий автомат8loadresetclock1register8+А как заставить регистр делать то, что мы хотим?1. Подвести ко входам регистра имеющиеся элементыуправления (в DE0-Nano — KEY[i], SW[i], CLOCK_50) иуправлять регистром, нажимая на кнопки и щёлкаявыключателями2.

Заставить схему делать эту работу за насIчто особенно полезно, если управляющих входов больше,чем элементов управления, а часто без этого в принципене обойтисьВведение: зачем нужен управляющий автомат8loadresetclock1register8+Схема, которая выставляет за нас управляющие сигналы нужным образом в нужные моменты времени — это управляющийавтоматПростенькая задачкаА как разработать подходящий управляющий автомат?Те, кто выпускались бакалаврами с нашей кафедры:вспоминаем далёкий первый курс, а заодно чуть менее далёкийчетвёртый — знания об автоматах-преобразователях с этихкурсов очень даже могут пригодитьсяНачнём с такой задачки: регистр должен посчитать числаот ноля до двух и остановитьсяМожно пошагово расписать последовательность действий,которые должен сделать регистр, чтобы эту задачку решить:1. записать в себя ноль2.

прибавить единицу3. прибавить единицу4. остановитьсяАвтоматыЧто такое автомат?IУ него есть конечное множество состоянийIОбщаясь с внешней средой, он переходит из одногосостояния в другое в дискретном времени (т.е. пошагово)IВ зависимости от текущего состояния, он выдаёт нечто навыход, то есть во внешнюю среду (автомат Мура)IСовершая переход, он также способен выдавать нечто навыход (автомат Мили)in1 /out3out0out1in3 /out5in2 /out4in4 /out6out2Автоматы1. записать в себя ноль2. прибавить единицу3. прибавить единицу4.

остановитьсяПопробуем записать этот алгоритм в автоматном видеОткуда взять дискретное время?Есть входной провод CLOCK_50, и можно дискретно отсчитывать моменты времени по передним фронтам приходящих отнего сигналовАвтоматы1. записать в себя ноль2. прибавить единицу3. прибавить единицу4. остановитьсяПопробуем записать этот алгоритм в автоматном видеОткуда взять состояния?Четыре пункта алгоритма — это, по большому счёту, четыре состояния:Iкаждый пункт точно описывает, что автомат долженпослать во внешнюю среду (то есть в операционныйавтомат )Iкаждый пункт может быть сделан за один такт времениАвтоматы1. записать в себя ноль2.

прибавить единицу3. прибавить единицу4. остановитьсяПопробуем записать этот алгоритм в автоматном видеКак соединить между собой эти состояния?По цепочке от предыдущего к следующему, не обращая внимания на то, что происходит во внешней средеАвтоматы1. записать в себя ноль2. прибавить единицу3. прибавить единицу4. остановитьсяПопробуем записать этот алгоритм в автоматном видеЧто когда выдавать на выход?При переходе ничего не нужно делать (в более сложных случаяхможет понадобиться, но не тут )В каждом состоянии достаточно выставить нужные сигналы навходах load и reset регистра:Iвыставляем reset = 0 — регистр сбрасывается(немедленно)Iвыставляем load = 0 — значение в регистреувеличивается (по переднему фронту CLOCK_50 )Автоматы1. записать в себя ноль2.

прибавить единицу3. прибавить единицу4. остановитьсяПопробуем записать этот алгоритм в автоматном видеДиаграмма автомата (диаграмма Мура?) автомата, описывающего алгоритм:resetloadload—Взаимодействие операционного иуправляющего автоматовИ как это всё будет выглядеть “в железе”?Чтобы всё заработало, достаточно заиметь и верно соединить:IIоперационный автомат: коробочку, в которой всё работаетоднозначно, кроме сигналов load, reset, clockуправляющий автомат:IIIдля нормальной работы требуется дискретное время(clock) и инициализация (reset)основное назначение — в нужное время в нужном порядкевыставлять сигналы load, resetтактовый генератор CLOCK_50resetclockУпр.Авт.CLOCK_50loadresetclockОп.Авт.Решение задачкиРегистр:inWidthloadresetclockregisterWidthoutmodule r e g i s t e r#(parameter Width = 8 )( i n p u t [ Width − 1 : 0 ] i n ,output reg [ Width − 1 : 0 ] out ,input load , r e s e t , c l o c k);always @( posedge c l o c k , negedge r e s e t )i f (~ r e s e t ) o u t <= 0 ;e l s e i f (~ l o a d ) o u t <= i n ;endmoduleРешение задачкиСумматор:yxWidthWidthadderWidthomodule a d d e r#(parameter Width = 8 )( i n p u t [ Width − 1 : 0 ] x ,i n p u t [ Width − 1 : 0 ] y ,output [ Width − 1 : 0 ] o);assign o = x + y ;endmoduleРешение задачкиОперационный автомат (с выводом значения регистра в LED):loadresetclockcounter8xmodule c o u n t e r ( i n p u t l o a d , r e s e t , c l o c k ,output [ 7 : 0 ] x ) ;parameter Width = 8 ;w i r e [ Width − 1 : 0 ] i n , o u t ;r e g i s t e r r ( .

i n ( i n ) , . out ( out ) , . load ( load ) ,. reset ( reset ) , . clock ( clock ));a d d e r a ( . x ( o u t ) , . y ( 8 ’ b00000001 ) , . o ( i n ) ) ;assign x = out ;endmoduleРешение задачкиУправляющий автомат:resetclockfsmloado_resetmodule fsm ( i n p u t c l o c k , r e s e t ,output reg l o a d , o _ r e s e t ) ;reg [ 1 : 0 ] c _ s t a t e , n _ s t a t e ;always @( c _ s t a t e )case ( c _ s t a t e )2 ’ b00 :beginload = 1;o_reset = 0;n _ s t a t e = 2 ’ b01 ;endРешение задачкиУправляющий автомат:resetclock2 ’ b01 :beginload = 0;o_reset =n_state =end2 ’ b10 :beginload = 0;o_reset =n_state =endfsm1;2 ’ b10 ;1;2 ’ b11 ;loado_resetРешение задачкиУправляющий автомат:resetclockfsmloado_reset2 ’ b11 :beginload = 1;o_reset = 1;n _ s t a t e = 2 ’ b11 ;endendcasealways @( posedge c l o c k , negedge r e s e t )i f (~ r e s e t ) c _ s t a t e <= 0 ;e l s e c _ s t a t e <= n _ s t a t e ;endmoduleРешение задачкиГлавный модуль (reset выведен на KEY[1], и мы, нажимая наKEY[0], генерируем тактовые импульсы):module t o p ( SW, KEY , LED , CLOCK_50 ) ;i n p u t wi re [ 3 : 0 ] SW;i n p u t wi re [ 1 : 0 ] KEY ;output [ 7 : 0 ] LED ;i n p u t wi re CLOCK_50 ;wire load , r e s e t ;c o u n t e r op_aut ( .

l o a d ( l o a d ) , . r e s e t ( r e s e t ) ,. c l o c k (KEY [ 0 ] ) , . x (LED ) ) ;fsm c_aut ( . c l o c k (KEY [ 0 ] ) , . r e s e t (KEY [ 1 ] ) ,. load ( load ) , . o_reset ( r e s e t ) ) ;endmoduleА теперь задачка посложнееХочу, чтобы счётчик работал так:I выключателями SW составляю двоичную четырёхбитнуюзапись числаI кнопкой KEY[1] запускаю алгоритмI счётчик отсчитывает с ноля до составленного числа,прибавляет единицу и останавливаетсяВ чём здесь сложности?1.

Диаграмма Мура нелинейна (есть циклы)2. Управляющий автомат, чтобы знать, что делать, долженанализировать информацию из внешнего мира3. Передавать данные в управляющий автомат — плохо(управляющий автомат должен управлять,а не вычислять)4. Значит, нужно добавить в операционный автомат схему,работающую с данными (проверяющую, досчитал лирегистр до конца) и передающую результат работы вуправляющий автоматКак изменится операционный автоматБыло:8loadresetclockregister81+Как изменится операционный автоматСтало:8loadresetclockregister8num8≤1+ltnumIДобавился блок сравненияIДобавилась входная шина numIДобавился выходной сигнал ltnum — он будетпересылаться управляющему автоматуКак будет выглядеть управляющий автоматltnumclearload—∼ltnum—module fsm ( i n p u t c l o c k , r e s e t , ltnum ,output reg l o a d , o _ r e s e t ) ;...Как будет выглядеть управляющий автоматltnumclearload...2 ’ b00 :begino_reset = 0;load = 1;n _ s t a t e = 2 ’ b01 ;end...—∼ltnum—Как будет выглядеть управляющий автоматltnumclearload...2 ’ b01 :begino_reset = 1;load = 0;n _ s t a t e = 2 ’ b10 ;end...—∼ltnum—Как будет выглядеть управляющий автоматltnumclearload—∼ltnum...2 ’ b10 :begino_reset = 1;load = 1;i f ( ltnum ) n _ s t a t e = 2 ’ b01 ;e l s e n _ s t a t e = 2 ’ b11 ;end...—Как будет выглядеть управляющий автоматltnumclearload...2 ’ b11 :begino_reset = 1;load = 1;n _ s t a t e = 2 ’ b11 ;end...—∼ltnum—Как будет выглядеть взаимодействиеуправляющего и операционного автоматовSW4’b00004 4num8resetclockУпр.Авт.ltnumloadresetclockCLOCK_50А остальную часть решения додумайте самиОп.Авт.Конец лекции 1.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5184
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее