Leka 1 28 октября, 2010 Опубликовано 28 октября, 2010 · Жалоба А практический смысл в чем. Пример - многопортовый регистровый файл на распределенной памяти (с несколькими портами записи). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 29 октября, 2010 Опубликовано 29 октября, 2010 · Жалоба ДаНу это «навеяно фланктером». Когда-то хоть и работал с альтерой, но xilinx-овский сайт тоже изучал. Тю, у них был ещё html-ный вариант с нормальными картинками-схемами. А сейчас только pdf-ка с плохими. Надо порыться в тогдашних архивах, может, где-то рядом с AHDL-кусочками и страничка с сайта сохранена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 29 октября, 2010 Опубликовано 29 октября, 2010 · Жалоба Пример - многопортовый регистровый файл на распределенной памяти (с несколькими портами записи). а двупортовая память чем не устраивала? В чем разница в использовании? PS Ее (память) ж можно реализовать как на распределенной логике так и с ипользованием блочной памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 29 октября, 2010 Опубликовано 29 октября, 2010 (изменено) · Жалоба вариант с нормальными картинками-схемами http://www.floobydust.com/flancter/Flancter_App_Note.pdf - нагуглил(про фланктер - не знал). а двупортовая память чем не устраивала? В чем разница в использовании? Попробуйте описать асинхронную память с двумя портами чтения и записи (чтение - асинхронно, запись - по клоку) - на блочной не реализуется, на распределенной - только если самому хитро описать, в лоб - софт соберет на триггерах, а не на ЛУТ-ах (давно делал, на новом софте не проверял). Изменено 29 октября, 2010 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 29 октября, 2010 Опубликовано 29 октября, 2010 · Жалоба http://www.floobydust.com/flancter/Flancter_App_Note.pdfТут ещё и информации больше, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Задачка: описать 2х-портовый триггер на синтезируемом HDL, поведение при "совпадении фронтов" - произвольное (выбирайте сами). Картинка не полностью описывает поведение триггера. Что должно быть внутри блока с Q (оно будет не только при совпадении фронтов) - &, 1, =1? После этого можно сделать (один из вариантов уже показали). На мой взгляд, сама задумка неправильная с точки зрения гонок, метастабильных состояний. Зачем два тактовых сигнала? И вообще, для этого нужно было создать отдельную тему в будущем разделе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Картинка не полностью описывает поведение триггера. По аналогии с 2х-портовой памятью. Что должно быть внутри блока с Q always @(posedge c0) q <= d0; always @(posedge c1) q <= d1; - моделируется, но не синтезируется. На мой взгляд, сама задумка неправильная с точки зрения гонок, метастабильных состояний. Частный случай этой "задумки" - Flancter. Еще пример использования "многопортового триггера". always @( posedge c1 or posedge c2 ) if ( c1 ) q <= d1; else q <= d2; - поведение синтезируемой схемы не будет совпадать с моделированием, задача - синтезировать схему, полностью соответствующую верилоговской модели. Вариант решения: (на другом форуме за эти "издевательства" над Верилогом - забанили на несколько суток). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexFok 0 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Картинка не полностью описывает поведение триггера. Что должно быть внутри блока с Q (оно будет не только при совпадении фронтов)При совпадении (± зона переходных процессов) понятно что бардак, а так, на мой взгляд, всё понятно — в зону входов для CLK1 входит только D1, поэтому по фронту CLK1 в Q должно записаться значение D1 без никакой связи со значением на D0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Частный случай этой "задумки" - Flancter. (на другом форуме за эти "издевательства" над Верилогом - забанили на несколько суток). Про бан не понятно. А в Flancter увидел свой вариант. Работа по разным фронтам клока. И отработка событий как по одному плечу, так и по другому. Ничего не теряя. Конвеер событий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Ooopss!!!! Сообщение выше как бы от Alex1961 — было от меня. Что-то крепко на форуме с куками и запоминанием входа глюкнуло. Ща жаловаться буду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба Flancter: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 30 октября, 2010 Опубликовано 30 октября, 2010 · Жалоба +1 Именно от этой точки («а, ну так это нужен такой триггер, из которого таким вот образом получится фланктер») обратным ходом от фланктера и был получен приведеный код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба всем привет! это конечно не трюки, но наверное кому-нибудь пригодится: есть у меня склад всяких разных элементов вычислительных на которых я когда-то в стародавние времена учился Верилогу. я их тогда вроде верифицировал, но может быть что-то и не доглядел, так что "доверяй, но проверяй". сейчас перепроверять уже не хочется. единственное, что я подправлю, так это переделаю чуть-чуть шапки на манер SV ANSI и комментарии в заголовках вставлю, чтобы было юзабельно. выкладывать буду по мере. кто чего будет доделывать-переделывать не забывайте добавлять свои имена и какой-нить лог о переделках. первый релиз-кандидат целочисленный последовательный знаковый/беззнаковый делитель с коррекцией остатка при операндах 32 на 32 бита синтезица в Ксайлинкс В2Про 2VP2fg256 грэйд -6 примерно на 140 МГц жрамши 277 слайсов 16х16 бит на xc2vp70 -6 примерно 150 МГц при 131 из 33088 слайсах описание: sequential integer divider with reminder correction takes in 2 arguments of adjustable width (parameters op_A_width, op_B_width) and divide the first one by the second treating them either signed or unsigned depending on op-type input which takes op_A_width+1 clock cycles + 1 cycle for reminder correction, provided that stall_n signal is deasserted rdy_n output indicates completion of operation with result(rez) and reminder containing valid results the unit provides additionally an overflow and division by zero exception flags div_signed_unsigned.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба а для того чтобы не ждать так долго каждое деление был сделан массив из таких делителей(кол-во ктых зависит от ширины делимого) с вращающимся по кругу раздатчиком операндов /сборщиком результатов синтез для 16х16 на xc2vp70 -6 даёт примерное 130МГц при 2889 из 33088 (8%) 32 на 32 даже страшно проверять (кому не страшно может сам попробовать) ЗЫЖ внимание, сборщик не защёлкивает результаты в регистры на выходе div_pipelined.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 15 ноября, 2010 Опубликовано 15 ноября, 2010 · Жалоба конвеерный пирамидальный умножитель знаковых/беззнаковых чисел 16 х 16 на xc2vp70 -6 примерно 180 МГц при 564 из 33088 слайсах описание: pipelined integer multiplier takes in 2 arguments of adjustable width (parameters op_A_width, op_B_width) and multiply the first one by the second treating them either signed or unsigned depending on op_type input with op_B_width clock cycles of initial latency, provided that stall_n signal is deasserted mul.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться