реклама на сайте
подробности

 
 
> ModelSim, вопросы новичка
Sprite
сообщение May 18 2018, 11:26
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Доброго всем времени суток!

Решил отложить стандартный квартус-симулятор и изучить ModelSim. Отлаживаю модуль SPI, но картинка не та, которую я вижу в квартус-симуляторе, сигналы addr, data, miso в неопределенном состоянии. В чем может быть дело? Не заданы начальные условия или код модуля кривой? Картинка такая:



Исходный файл и тестбенч к нему во вложении. Заранее спасибо.
Прикрепленный файл  SPI_slave2.v ( 4.49 килобайт ) Кол-во скачиваний: 31
Прикрепленный файл  SPI_slave2_tb.v ( 1.15 килобайт ) Кол-во скачиваний: 36


Сообщение отредактировал Sprite - May 18 2018, 11:27
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение May 21 2018, 12:47
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Я бы ещё не применял имена модулей - названия примитивов регистров. Например DFF - имя запрещенное. Очень странно что Quartus не ругался...
Go to the top of the page
 
+Quote Post
Sprite
сообщение May 21 2018, 13:16
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Цитата(Flip-fl0p @ May 21 2018, 19:47) *
Я бы ещё не применял имена модулей - названия примитивов регистров. Например DFF - имя запрещенное. Очень странно что Quartus не ругался...

Не совсем Вас понимаю. В проекте есть такая строчка:
Код
AND2     AND2_01(.IN1(addr[0]), .IN2(wr), .OUT(s1));

Что здесь запрещенного? Как по другому создать примитив AND2? Описывать конструкцию в виде assign q = in1 & in2 в отдельном файле? AND2 - примитив библиотеки, я и беру его из библиотеки, только какой пока не знаю, так же как и DFF. Остальные элементы вроде нашел, правда некрасиво как-то - в папку work компилируется все подряд( когда нужны всего пара элементов.

Вобщем психанул) Скомпилировал в проект все что было в C:\altera\15.0\modelsim_ase\altera\verilog\src
Проект увеличился на 1,2Гб)
Но элементы AND2 и DFF так и не найдены. Вывод - либо отсутствует нужная библиотека для cyclone III, либо Flip-fl0p прав и я что-то делаю не так.
Среда в которой разрабатывается проект - квартус 9.1, а ModelSim установлен в ModelSim-Altera Starter Edition 15.0.0.145, который не поддерживает cycloneIII. Может быть в этом дело?
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 21 2018, 13:17
Сообщение #4


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Поскольку полного кода я не вижу, я предположил, что вы создали свой модуль с именем DFF. А этого делать крайне нежелательно.

Цитата
Я и беру его из библиотеки, только какой пока не знаю, так же как и DFF

Это как ? wacko.gif
Вообще было бы неплохо, чтобы Вы полный текст проекта сюда выложили. Обычно для RTL симуляции библиотек надо минимум. И тип чипа вообще роли играть не должен !
Go to the top of the page
 
+Quote Post
Sprite
сообщение May 21 2018, 13:32
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414



Цитата(Flip-fl0p @ May 21 2018, 20:17) *
Поскольку полного кода я не вижу, я предположил, что вы создали свой модуль с именем DFF. А этого делать крайне нежелательно.
Это как ? wacko.gif
Вообще было бы неплохо, чтобы Вы полный текст проекта сюда выложили. Обычно для RTL симуляции библиотек надо минимум. И тип чипа вообще роли играть не должен !


Вот код одного из модулей:
CODE
module ram_blocks(
input clk,
input [15:0]addr,
input [15:0]data,
input wr,

output [15:0]data_1,
output [15:0]data_2,
output [15:0]data_3,
output [15:0]data_4,
output [15:0]data_5,
output [15:0]data_6,
output [15:0]data_7,
output [15:0]data_8,
output [15:0]data_9,
output [15:0]data_10,
output [15:0]data_11,
output [15:0]data_12,
output [15:0]data_13,
output [15:0]data_14,
output [15:0]data_15,
output [15:0]data_16);

wire s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16;
wire w_VCC;
assign w_VCC = 1'b1;

AND2 AND2_01(.IN1(addr[0]), .IN2(wr), .OUT(s1));
ram ram_01(.data(data), .wren(s1), .address(w_VCC), .clock(clk), .q(data_1));

AND2 AND2_02(.IN1(addr[1]), .IN2(wr), .OUT(s2));
ram ram_02(.data(data), .wren(s2), .address(1'b1), .clock(clk), .q(data_2));

AND2 AND2_03(.IN1(addr[2]), .IN2(wr), .OUT(s3));
ram ram_03(.data(data), .wren(s3), .address(1'b1), .clock(clk), .q(data_3));

AND2 AND2_04(.IN1(addr[3]), .IN2(wr), .OUT(s4));
ram ram_04(.data(data), .wren(s4), .address(1'b1), .clock(clk), .q(data_4));



AND2 AND2_05(.IN1(addr[4]), .IN2(wr), .OUT(s5));
ram ram_05(.data(data), .wren(s5), .address(1'b1), .clock(clk), .q(data_5));

AND2 AND2_06(.IN1(addr[5]), .IN2(wr), .OUT(s6));
ram ram_06(.data(data), .wren(s6), .address(1'b1), .clock(clk), .q(data_6));

AND2 AND2_07(.IN1(addr[6]), .IN2(wr), .OUT(s7));
ram ram_07(.data(data), .wren(s7), .address(1'b1), .clock(clk), .q(data_7));

AND2 AND2_08(.IN1(addr[7]), .IN2(wr), .OUT(s8));
ram ram_08(.data(data), .wren(s8), .address(1'b1), .clock(clk), .q(data_8));



AND2 AND2_09(.IN1(addr[8]), .IN2(wr), .OUT(s9));
ram ram_09(.data(data), .wren(s9), .address(1'b1), .clock(clk), .q(data_9));

AND2 AND2_10(.IN1(addr[9]), .IN2(wr), .OUT(s10));
ram ram_10(.data(data), .wren(s10), .address(1'b1), .clock(clk), .q(data_10));

AND2 AND2_11(.IN1(addr[10]), .IN2(wr), .OUT(s11));
ram ram_11(.data(data), .wren(s11), .address(1'b1), .clock(clk), .q(data_11));

AND2 AND2_12(.IN1(addr[11]), .IN2(wr), .OUT(s12));
ram ram_12(.data(data), .wren(s12), .address(1'b1), .clock(clk), .q(data_12));



AND2 AND2_13(.IN1(addr[12]), .IN2(wr), .OUT(s13));
ram ram_13(.data(data), .wren(s13), .address(1'b1), .clock(clk), .q(data_13));

AND2 AND2_14(.IN1(addr[13]), .IN2(wr), .OUT(s14));
ram ram_14(.data(data), .wren(s14), .address(1'b1), .clock(clk), .q(data_14));

AND2 AND2_15(.IN1(addr[14]), .IN2(wr), .OUT(s15));
ram ram_15(.data(data), .wren(s15), .address(1'b1), .clock(clk), .q(data_15));

AND2 AND2_16(.IN1(addr[15]), .IN2(wr), .OUT(s16));
ram ram_16(.data(data), .wren(s16), .address(1'b1), .clock(clk), .q(data_16));

endmodule

В модуле используется элемент AND2, экземпляры которого я создаю. Но элемент AND2 так же как и DFF не могу найти ни в одной из библиотек, подключал уже все файлы из папки C:\altera\15.0\modelsim_ase\altera\verilog\src
Я подозреваю, что это из за того, что проект разрабатывался в Quartus 9.1, а ModelSim используется от версии квартуса 15.0 где отсутствует библиотека для cyclone III. Как мне быть? Перейти на Quartus 13.1? Не очень бы хотелось - как показывает практика - чем выше версия квартуса - тем больше тормозов и времени на компиляцию.

Warning from admin:
Используйте codebox для длинных цитат программного кода!


Сообщение отредактировал makc - May 21 2018, 14:45
Причина редактирования: Замена code -> codebox
Go to the top of the page
 
+Quote Post
Marat Zuev
сообщение May 21 2018, 18:29
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 8-05-18
Пользователь №: 103 834



Цитата(Sprite @ May 21 2018, 13:32) *
Вот код одного из модулей:
Во-первых, используйте defin-ы для Ваших констант:
`define arr_dim 16
`define arr_rng [`arr_dim-1:0]
и тогда
output [15:0]data_4,
выливается в
output `arr_rng data_4,
далее
wire s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16;
пишется как
wire [16:1] s;
или снова как выше через defin-ы.
Далее
AND2 AND2_01(.IN1(addr[0]), .IN2(wr), .OUT(s1));
если не важно указание имени инстанциированного модуля, то его можно опустить:
AND2 (.IN1(addr[0]), .IN2(wr), .OUT(s1));
вообще, подозреваю, что такую последовательность Ваших примитивов можно описать через generate
Цитата(Sprite @ May 21 2018, 13:32) *
В модуле используется элемент AND2, экземпляры которого я создаю. Но элемент AND2 так же как и DFF не могу найти ни в одной из библиотек, подключал уже все файлы из папки C:\altera\15.0\modelsim_ase\altera\verilog\src
Я подозреваю, что это из за того, что проект разрабатывался в Quartus 9.1, а ModelSim используется от версии квартуса 15.0 где отсутствует библиотека для cyclone III. Как мне быть? Перейти на Quartus 13.1?
Либо использовать ModelSim-Altera(Starter)Edition от той версии Quartus-a, которая поддерживает интересующий чип, либо (здесь могу врать) скомпилить библиотеки для того ModelSima, который чип не поддерживает, но с которым хочется работать.

Сообщение отредактировал Marat Zuev - May 21 2018, 18:30


--------------------
--
С наилучшими пожеланиями, Marat.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sprite   ModelSim, вопросы новичка   May 18 2018, 11:26
- - Nieve   Здравствуйте! У вас в TestBench переменная ...   May 18 2018, 11:43
- - iosifk   Цитата(Sprite @ May 18 2018, 14:26) Добро...   May 18 2018, 11:45
|- - Sprite   Nieve, Иосиф Григорьевич, спасибо! Проглядел)...   May 18 2018, 12:15
|- - iosifk   Цитата(Sprite @ May 18 2018, 15:15) Nieve...   May 18 2018, 12:38
|- - AVR   Цитата(Sprite @ May 18 2018, 15:15) А мож...   May 18 2018, 12:56
|- - Stewart Little   Цитата(AVR @ May 18 2018, 15:56) Прошу пр...   May 18 2018, 15:59
- - Flip-fl0p   КодА можно как-нибудь автоматизировать посылку раз...   May 18 2018, 17:47
- - AnatolySh   Цитата(Sprite @ May 18 2018, 14:26) Решил...   May 18 2018, 18:03
- - R6L-025   Вроде как неплохо еще прогонять на случайных выбор...   May 18 2018, 19:02
|- - Flip-fl0p   Цитата(R6L-025 @ May 18 2018, 22:02)...   May 18 2018, 19:11
- - R6L-025   Можно создать *.qsys проект в который добавить нуж...   May 18 2018, 19:21
- - Marat Zuev   Цитата(Sprite @ May 18 2018, 12:26) Отлаж...   May 18 2018, 20:30
- - Sprite   Цитата(AnatolySh @ May 19 2018, 01:03) Не...   May 19 2018, 13:35
|- - Marat Zuev   Цитата(Sprite @ May 19 2018, 14:35) наткн...   May 19 2018, 13:52
|- - Sprite   Цитата(Marat Zuev @ May 19 2018, 20:52) В...   May 20 2018, 06:38
|- - Marat Zuev   Цитата(Sprite @ May 20 2018, 07:38) Как м...   May 20 2018, 07:09
- - R6L-025   А почему эту самую корку использовать нельзя? Если...   May 20 2018, 07:09
- - R6L-025   А, еще есть quartus templates. В выпадающем меню E...   May 20 2018, 07:12
|- - Sprite   Цитата(R6L-025 @ May 20 2018, 14:12)...   May 20 2018, 08:16
- - R6L-025   Ну тогда попробуйте поиграть с директивами. Quartu...   May 20 2018, 09:18
- - Sprite   Спасибо, попробую. Еще один вопрос: как описать эт...   May 20 2018, 09:29
|- - AVR   Цитата(Sprite @ May 20 2018, 12:29) Спаси...   May 22 2018, 05:27
- - R6L-025   Да, verilog, vhdl... Берете описание портов pll ко...   May 20 2018, 10:12
|- - Sprite   Цитата(R6L-025 @ May 20 2018, 17:12)...   May 20 2018, 10:27
- - Sprite   Всем добра! Перевел проект полностью на veril...   May 21 2018, 11:53
|- - Marat Zuev   Цитата(Sprite @ May 21 2018, 11:53) Если ...   May 21 2018, 12:42
|- - nice_vladi   Цитата(Sprite @ May 21 2018, 13:32) ... ...   May 22 2018, 05:28
- - Flip-fl0p   А какую цель Вы ставите перед собой ? Сделать прав...   May 21 2018, 14:30
|- - Sprite   Цитата(Flip-fl0p @ May 21 2018, 21:3...   May 21 2018, 14:48
- - Sprite   С учетом замечаний Marat Zuev переписал модуль, по...   May 22 2018, 08:40
|- - Flip-fl0p   Цитата(Sprite @ May 22 2018, 11:40) А ес...   May 22 2018, 09:20
|- - iosifk   Цитата(Flip-fl0p @ May 22 2018, 12:2...   May 22 2018, 09:46
- - Sprite   Спасибо всем за критику) Задачу в двух словах опи...   May 22 2018, 10:24
|- - iosifk   Цитата(Sprite @ May 22 2018, 13:24) Спаси...   May 22 2018, 12:20
|- - Sprite   Цитата(iosifk @ May 22 2018, 19:20) У Вас...   May 22 2018, 12:28
|- - iosifk   Цитата(Sprite @ May 22 2018, 15:28) Чтени...   May 22 2018, 12:35
|- - Sprite   Цитата(iosifk @ May 22 2018, 19:35) И в к...   May 22 2018, 15:54
|- - Flip-fl0p   Цитата(Sprite @ May 22 2018, 18:54) Конеч...   May 23 2018, 06:18
|- - iosifk   Цитата(Sprite @ May 22 2018, 18:54) Конеч...   May 23 2018, 07:10
- - Sprite   Довольный как слон Все получилось! Собрал пр...   May 22 2018, 12:04
- - Sprite   Flip-fl0p, Иосиф Григорьевич спасибо! Подумаю ...   May 23 2018, 11:49
|- - nice_vladi   Цитата(Sprite @ May 23 2018, 11:01) [b] К...   May 23 2018, 11:51
|- - OM-S   В tb.v поставьте начальное значение для регистра...   May 23 2018, 11:59
|- - Sprite   Цитата(OM-S @ May 23 2018, 18:59) В ...   May 23 2018, 12:24
|- - _Anatoliy   Что-то у вас входной клок дюже быстро клацает для ...   May 23 2018, 12:38
|- - Sprite   Цитата(_Anatoliy @ May 23 2018, 19:38) Чт...   May 23 2018, 13:20
- - Sprite   Добрый день всем! Еще один нубский вопрос: Реш...   May 25 2018, 13:34
|- - iosifk   Цитата(Sprite @ May 25 2018, 16:34) Добры...   May 25 2018, 14:19
|- - Flip-fl0p   Цитата(Sprite @ May 25 2018, 16:34) Что д...   May 25 2018, 15:50
- - Nieve   1. У вас в схеме нет сигнала "reset", ре...   May 25 2018, 15:14
|- - Sprite   Цитата(Nieve @ May 25 2018, 22:14) 1. У в...   May 25 2018, 16:41
|- - Flip-fl0p   Цитата(Sprite @ May 25 2018, 19:41) Ниче ...   May 25 2018, 18:19
|- - iosifk   Цитата(Sprite @ May 25 2018, 19:41) Иосиф...   May 25 2018, 18:35
|- - andrew_b   Цитата(iosifk @ May 25 2018, 21:35) Одног...   May 26 2018, 05:03
|- - iosifk   Цитата(andrew_b @ May 26 2018, 08:03) А ...   May 26 2018, 07:09
- - Nieve   1. В таком случае как быть если схема зависла и не...   May 25 2018, 17:01
- - Sprite   Flip-Flop, Иосиф Григорьевич - спасибо! Прочит...   May 26 2018, 14:23


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 21:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016