Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/135: Рейтинг темы: голосов - 135, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811

[Verilog] Обработка команд по формату Intel(D0-D7, WR, CS)

10.09.2012, 23:29. Показов 26231. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разбираюсь с Verilog

Где можно посмотреть как осуществлять обработку команд подаваемых на D0-D7 по сигналам управления WR и CS

Мне нужно обрабатывать двубайтовые команды,
то есть по задумке первый байт подается на D0-D7 потом WR и CS - для записи
потом WR и CS снимаются и на D0-D7 подается второй байт, с WR и CS для записи команды.

так вот, интересует как это обрабатывать ?

однобайтовую команду я в принципе понял как обрабатывать... а вот как ПРАВИЛЬНО организовывать ожидание второго байта для его последующей обработки ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2012, 23:29
Ответы с готовыми решениями:

Icarus Verilog. GNU GPL компилятор под Verilog
...представляет собой свободную и компактную реализацию компилятора для IEEE-1364 Verilog языка описания аппаратуры. Основан на GTKWave...

Структура команд assembler для Intel
Везде написано что стандартная структура команды оператор приемник, источник. Но встретил обратную запись и не могу найти объяснение ...

Система команд микропроцессоров семейства INTEL MCS-51
Задача следующая: Используя систему команд процессора 8051, составьте алгоритм и напишите программу циклического перебора значения от 99...

37
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
12.09.2012, 13:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Леанид Ивинавич
Можно взять синхронную SROM.
смотрю.. правда пока попадатся монстры в BGA и на 2-4-8 мб с 36-72 битами ШД
самое паябельное среди таких HY57V651620B

а вот где бы найти попроще микруху ? мегабайт на 128-256 .... ?

а что за предупреждение:
Warning: Found pins functioning as undefined clocks omd/or memory enables
Info: Assuming node "clk" is an undefined clock

со вторым уже подсказали.. а это осталось...
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
12.09.2012, 14:06
always @(cs) // при изменении cs
опять же, я не спец, но мне кажется это не будет работать как вы планируете. оно НЕ будет срабатывать при любом фронте.

помнится, в квартусе можно было смотреть RTL-вид скомпиленного кода, попробуйте на простых примерах посмотреть, во что вырождаются разные конструкции - многое станет понятно.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
12.09.2012, 14:18
[QUOTE="Ymk"][QUOTE="Цитата:[/QUOTE]
always @(cs) // при изменении cs
опять же, я не спец, но мне кажется это не будет работать как вы планируете. оно НЕ будет срабатывать при любом фронте.

я уже переписал код на работу с (posedge clk)
`define SIT_L8 3b001 // установка мл. 8 бит адреса
`define SIT_M8 3b010 // установка ср. 8 бит адреса
`define SIT_H8 3b011 // установка ст. 8 бит адреса
`define ROM_STEP 3b100 // шаг адреса при чтении
//`define ADC_SYNC 3b101 // вид синхронизации захвата
//`define ADC_START 3b110 // запуск преобразования

module EPM240T100C5(clk,wr,cs,regadr,data8,ram_ adr,ram_wr,ram_oe);

input wire clk; // тактовый сигнал

// +--------------------------------------------------+
// | Интерфейс подключения к управляющему контроллеру |
// +--------------------------------------------------+
input wire cs; // строб операции
input wire wr; // сигнал выбора операции записи\чтения
input wire [2:0] regadr; // адрес регистра для операции
input wire [7:0] data8; // шина данных плис

// +-----------------------------------------+
// | Интерфейс подключения к микросхеме SROM |
// +-----------------------------------------+
output reg [17:0] ram_adr; // шина адреса для ram
output reg ram_wr; // сигнал записи для ram
output reg ram_oe; // сигнал строба для ram

reg[17:0] adr_value; // внутренний регистр адреса ROM для операций
reg[7:0] adr_step; // шаг приращения адреса для чтения

// инициализация сигналов управления
initial
begin
ram_wr=1; // управляющие сигналы SROM
ram_oe=1; //
end

always @(posedge clk) // при изменении cs
begin
if (cs==1) // есть обращение к ПЛИС
begin
if (wr==1) // Запись значения в регистр
begin
case (regadr) // разбор записываемого значения
`SIT_L8: begin
adr_value[7:0]<=data8[7:0];
end
`SIT_M8: begin
adr_value[15:8]<=data8[7:0];
end
`SIT_H8: begin
adr_value[17:16]<=data8[1:0];
end
`ROM_STEP: begin
adr_step<=data8[0];
end
endcase
end else // операция чтения из ПЛИС
begin
ram_adr<=adr_value; // выдали адрес
ram_wr<=1; // сигнал на чтение
ram_oe<=0; // строб операции
end
end else // cs=0, нет обращения к ПЛИС
begin
// прекращение чтение SROM
ram_wr<=1; // прекращение операции SROM
ram_oe<=1; //
adr_value<=adr_value+adr_step;
end
end
endmodule
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
12.09.2012, 20:41
Цитата Сообщение от ВитГа
смотрю.. правда пока попадатся монстры в BGA
Практически у любого производителя такая память есть, кроме BGA чаще всего бывает 100-pin TQFP, например, IS61LPS51218A-200TQI. Разрядность чаще всего 18 или 36 бит, это хорошо, сразу два канала писать можно.

Цитата Сообщение от ВитГа
а что за предупреждение:
Warning: Found pins functioning as undefined clocks omd/or memory enables
Info: Assuming node "clk" is an undefined clock
Для нормальной работы временного анализатора все тактовые сигналы должны быть описаны, в Вашем случае нужно описать сигнал "clk". Заходите Assyknments/Settings, Category -> Timing Requirements & Options, Clock Settings -> Settings for individual clock syknals, Clocks... -> New -> New Clock Settings, вводим любое имя, Relationship to other clock settings -> Independent to other clock settings, вписываем цепь clk (или через Node Finder находим нужную цепь тактового сигнала), в Relationship to other clock settings вводим частоту и скважность. Жмем OK, при следующей перекомпиляции предупреждения быть не должно.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
12.09.2012, 20:47
про SSROM: гм.. ничего себе цена.. на элитане минимум 600 руб без доставки :-(

по поводу сообщения - да, уже нашел, предупреждение ушло..
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
12.09.2012, 20:50
Я смотрю пока все таки на 10нс память.. (у меня в заказанной для тестов плате 50 мгц кварц стоит :-)
вернее не на память, а на диаграммы сигналов для записи\чтения:

а как на плис реализуются задержки ?
в примерах написано типа #<значение> - а вот как значение считать, и как оно реализуется не понятно :-(
может быть где то есть пример ?
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
13.09.2012, 03:45
Цитата Сообщение от ВитГа
Я смотрю пока все таки на 10нс память..
Вообще, синхронная статическая память применялась на древних материнках в качестве кеша. Найти можно бесплатно.

Цитата Сообщение от ВитГа
а как на плис реализуются задержки ?
В виде счетчиков, и только на целое число периодов clk.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
13.09.2012, 08:17
то есть написание #10 - означает 10 тиков тактового сигнала который подан на специальную ножку ПЛИС ? (pin12 или pin62 для epm249t100)
или по 10 тикам сигнала имя которого упоминается в блоке always @(posedge clk) ?
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
13.09.2012, 13:26
имхо, для схемы это ничего не означает, только для симулятора - тестбенч создавать (могу жестоко ошибаться, но думаю, что вряд ли).
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
13.09.2012, 13:35
Я про Verilog ничего не знаю, подобные проекты пишу на AHDL.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
15.09.2012, 00:25
Вы думаете я от вас отстал, но вы ошибаетесь, просто немного был занят :-)

Все таки думаю использовать ассинхронную память,

в связи с этим нарисовал схему генерации сигналов для SROM http://vg.ucoz.ru/ossytt/diagrammy_syknalov.xlsx

для снижения требований к SROM предполагаю использовать память с 16ти битной шиной данных. так же с 10 нс доступом

вопросы:

1. память допускает подачу одновременно сигналов WR и СE и данных (D15-D0) (это строка 5 и 6 схемы)?

2. Возможно ли по приходу синхроимпульса захватывать значение с входа ADC_D и тут же (!) выдать эти данные на выход ROM_DATA (строки 3 и 6) ?

3. можно ли как то организовать последовательную выдачу сигналов из плис, с любой пусть даже минимальной задержкой, в порядке: ROM_DATA(6 строка), ROM_CE, ROM_WR (5 строка) ? (в принципе если последние 2 сигнала можно выдавать одновременно, то значит в 2 этапа: сначала ROM_DATA, потом ROM_WR и одновременно ROM_CE)

ссылка на даташит SROM CY7C1021D http://www.cypress.com/?docID=34936

скажите что нить хорошее, или плохое, но главное чтобы правду! :-)
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
17.09.2012, 23:44
всем снова привет!

небольшой отчет о ходе работ:

начинаю раскуривать плис - оказалось очень интересным процессом !

сейчас уже могу осуществлять захват сигнала по диаграммам которые я приводил, рабочая частота 150 мгц (по симуляции до 180 мгц)

сейчас делаю интерфейс управления плис от контроллера

хочу спросить: как правильно объявляется и управляется двунаправленная шина ?

у меня 8 битная шина данных, я хочу с нее читать и на нее записывать в зависимости от сигнала wr (со стробом по cs)..

как примерно это делается ? может быть кто то делал что-то подобное?

конструкцию активно обсуждаю здесь http://vg.ucoz.ru/forum/8-20-1 (to_admin: если размещение ссылок на другие форумы запрещено, то прошу ее удалить)
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
18.09.2012, 00:04
"если размещение ссылок на другие форумы запрещено, то прошу ее удалить"
Да откуда вы такие напуганные приходите? :))

Вот кстати хотел спросить - кто нибудь знает хороший курс по Verilog? Так чтоб от самого простого до чего-то интересного
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
18.09.2012, 00:13
Цитата Сообщение от dsodir
"если размещение ссылок на другие форумы запрещено, то прошу ее удалить"
Да откуда вы такие напуганные приходите? :))
да на многих сайтах за это как минимум предупреждение..
на радиокоте например..
это же ссылка мой личный форум - типа раскрутка своего..
ну и в общемто "в чужой огород со своим уставом не ходят" - так что спорить бестолку (потому свой сайт и затеял - где не ставлю вообще никаких правил кроме может быть общих правил приличия, но в принципе это пока особо и не нужно - у меня форум считай для узкого круга лиц - никто кроме своих на него не ходит и меня это устраивает)

Цитата Сообщение от dsodir
Вот кстати хотел спросить - кто нибудь знает хороший курс по Verilog? Так чтоб от самого простого до чего-то интересного
я тоже ищу..
но пока не нашел..

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

Verilog или другие языки скрадывают логические элементы, но писать нужно учитывая это..- первые дня 4 было совсем плохо (я фактически писал процессы), но потом чтото щелкнуло в голове и стало намного легче :-))) (может с ума сошел ? :-)))

мне Verilog понравился тем что на паскаль чем то похож (те же begin endы)
0
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
18.09.2012, 00:48
А точно не путаете Verilog c VHDL ???? На паскаль как раз похож VHDL ! А Verilog похож на С.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
18.09.2012, 00:51
Цитата Сообщение от botu_dork
А точно не путаете Verilog c VHDL ???? На паскаль как раз похож VHDL ! А Verilog похож на С.
Ну тут наверное на вкус и цвет..

вот из моего проекта кусок.. на что он больше похож ? для меня си это когда скобки вместо бегинендов:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
always @(posedge clk)   // процесс захвата значений ADC и записи их в память -------------------------------------
begin
case (clk_ph)        // действие в зависимости от фазы сигнала
 
0: begin
if (adc_capt_en==1)    // если захват разрешен - то будет дальнейшее исполнение, иначе будем стоять здесь
begin
clk_ph[2:0]<=1;       // следующая фаза захват данных с АЦП
adc_enc<=1;           // подадим сигнал на захват для АЦП
ram_wr<=0;          // запишем данные которые уже на шинах
end
else ram_adr_write<=0; // если мы не в режиме захвата - установим адрес записи в ноль
end
 
1: begin
adc_enc<=0;                       // снимем команду на захват данных с АЦП
 
adc_val[7:0]<=port_adc_val[7:0];     // возьмем данные с АЦП
 
clk_ph[2:0]<=2;                    // следующая фаза команда на захват новых данных с АЦП
end
 
2: begin
adc_enc<=1;         // подадим сигнал на захват для АЦП
 
ram_wr<=1;             // режим чтения для SROM
 
clk_ph[2:0]<=3;      // следующая фаза - захват второго байта с АЦП
 
ram_adr_write<=ram_adr_write+1;        // увеличим адрес на 1 (перейдем к следующей ячейки для след. записи)
 
end
 
3: begin
adc_enc<=0;                  // снимем команду на захват данных с АЦП
 
ram_dataH[7:0]=adc_val[7:0];      // возьмем данные с АЦП
ram_dataL[7:0]=port_adc_val[7:0];  // выдадим данные для записи в SROM
 
clk_ph[2:0]<=0;               // переходим к фазе "0"
 
end
endcase
 
end
и вот VHDL
со всякими объявлениями библиотек, хотя.. тоже похож на паскаль :-)) особенно в части присваивания
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
library ieee;
use ieee.std_logic_1164.all;
.......
-- Дальше можно делать объявления std_logic
syknal a, b : std_logic;
syknal c : std_logic_vector(7 downto 0);
shared variable d : std_logic_vector(7 downto 0):="01010101";
 
-- Использование операторов loop, next, exit, if, присваивание
-- Несинтезируемый фрагмент VHDL-кода подсчитывает кол-во несовпадающих бит в двух массивах
neq := 0;
L1 : for i in 0 to 31 loop
next L1 when mem1(i) = mem2(i);
for j in 7 downto 0 loop
crash := 1;
exit L1 when (mem1(i)(j) = X or mem2(i)(j) = X);
crash := 0;
if (mem1(i)(j) /= mem2(i)(j)) then neq := neq+1;
end loop;
end loop L1;
0
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
18.09.2012, 03:12
http://ru.wikipedia.org/wiki/Verilog
Verilog 2001Дополнения к языку Verilog-95 были приняты как IEEE 1364—2001 (или Verilog-2001).

Verilog-2001 является значительно обновленным по сравнению с Verilog-95. Во-первых, он добавил поддержку знаковых переменных (в формате дополнительного кода). Прежде авторам кода приходилось реализовывать знаковые операции с использованием большого количества битовых логических операций. Та же функциональность на Verilog-2001 описывается встроенными операторами языка: +, -, /, *, >>> Был улучшен файловый ввод-вывод. Для улучшения читаемости кодов был немного изменен синтаксис, например always @*, переопределение именованных параметров, объявление заголовков функций, задач и модулей в стиле Си.
http://ru.wikipedia.org/wiki/VHDL
Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.
И еще множество других источников( в том числе - конференций), скажут вам - что вы не правы.
0
1 / 1 / 0
Регистрация: 26.10.2011
Сообщений: 811
18.09.2012, 06:49
я согласен со всеми источниками :-)

но по мне verilog похож на паскаль.. :-) я же указал что у меня ассоциации с паскалем вызывают begin\end..
в принципе не так важно на что он похож главное ведь чтобы понятен был !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2012, 06:49

Программная реализация дизассемблирования арифметических команд intel 8086
Здравствуйте,вот такая тема для курсовой работы - программная реализация дизассемблирования арифметических команд intel 8086. Знаю, что...

Нужен справочник по системе команд процессора intel core 2 duo
Помогите пожалуйста найти справочник по системе команд процессора intel core 2 duo(гугль молчит)

Почему в ассемблере intel x86 нет логических команд xnor, nand, nor?
Хотя микросхемы такой логики используются довольно часто. А если скажем можно и без них обойтись, то и NOT не нужна, ведь есть XOR.

Обработка команд джойстика
Доброго времени суток уважаемые! 8-) Имеется джостик, подключенный к COM - порту. Который передает и принимает сигналы в 8-ой системе...

Обработка команд (\comand)
Подскажите как можно сделать обработку команд с обратным слешом.. Например \name Tofers Нужно для консольного чата


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru