|
ModelSim, вопросы новичка |
|
|
|
 |
Ответов
|
May 22 2018, 08:40
|

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

|
С учетом замечаний Marat Zuev переписал модуль, получилось компактнее! Код 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 [15:0]data_out[15:0]; wire [16:0]s; genvar i; generate for(i = 0; i < 16; i = i + 1) begin : ram_generation assign s[i] = addr[i] & wr; ram ram_inst(.data(data), .wren(s[i]), .address(1'b1), .clock(clk), .q(data_out[i])); end endgenerate
assign data_1 = data_out[0]; assign data_2 = data_out[1]; assign data_3 = data_out[2]; assign data_4 = data_out[3]; assign data_5 = data_out[4]; assign data_6 = data_out[5]; assign data_7 = data_out[6]; assign data_8 = data_out[7]; assign data_9 = data_out[8]; assign data_10 = data_out[9]; assign data_11 = data_out[10]; assign data_12 = data_out[11]; assign data_13 = data_out[12]; assign data_14 = data_out[13]; assign data_15 = data_out[14]; assign data_16 = data_out[15]; endmodule nice_vladi по поводу использования AND2-примитива согласен с Вами, сделал через & и assign, но вот DFF так и не нашел в библиотеке, пришлось описывать вручную: Код wire w_cs reg dff_out; always @(posedge clk) begin dff_out <= cs; end assign w_cs = dff_out; Неудобно немного получается, но с этим можно мириться. Проект скомпилил в Modelsim 6.5, симуляция собралась с варнингами: Код # ** Warning: (vsim-3009) [TSCALE] - Module 'ram_blocks' does not have a `timescale directive in effect, but previous modules do. # Region: /tb/main_inst_tb/mem_block1/ram_blocks1 # Loading work.decoder # ** Warning: (vsim-3009) [TSCALE] - Module 'decoder' does not have a `timescale directive in effect, but previous modules do. # Region: /tb/main_inst_tb/mem_block1/decoder1 Как-то можно от них избавиться? Объявлять `timescale в каждом файле?
|
|
|
|
|
May 22 2018, 09:20
|

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

|
Цитата(Sprite @ May 22 2018, 11:40)  А если надо 1024 разряда ? Вы вроде хотите научиться делать правильно. Тут Вам могут помочь, и обязательно помогут. Но от вас требуется правильно сформулировать задачу ! Я так и не понял толком, что Вы хотите сделать. Похоже на некое подобие памяти. Но где такое может пригодиться я ума не приложу ! P.S. Спускаться на уровень описания взаимодействия триггеров между собой необходимо лишь в том случае, когда требуется выжать из чипа каждый мегагерц. Но без правильного файла констрейнов, и атрибутов синтеза - грош цена такому описанию... Один фиг, синтезатор разложит по-своему. Да и не стоит недоверять синтезатору. Синтезатор умный. Если правильно описана схема на поведенческом уровне , то синтезатор её сам прекрасно разместит в ячейках FPGA. Почти всегда синтезатор делает это лучше, чем разработчик.
|
|
|
|
|
May 22 2018, 09:46
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Flip-fl0p @ May 22 2018, 12:20)  Но от вас требуется правильно сформулировать задачу ! Я так и не понял толком, что Вы хотите сделать. Похоже на некое подобие памяти. Но где такое может пригодиться я ума не приложу ! Я тоже не понял. Ведь адрес-то только один, а значит одновременно все блоки памяти считываться и записываться не будут. А тогда почему надо много мелких блоков, а не один, в который все и поместится? И вот это: assign s[i] = addr[i] & wr; ram ram_inst(.data(data), .wren(s[i]), .address(1'b1), .clock(clk), .q(data_out[i])); совершенно криво, можно даже сказать, что уродливо...  Короче, проект методически начат не верно, отсюда и все вопросы...
--------------------
www.iosifk.narod.ru
|
|
|
|
Сообщений в этой теме
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 Flip-fl0p Я бы ещё не применял имена модулей - названия прим... May 21 2018, 12:47 Sprite Цитата(Flip-fl0p @ May 21 2018, 19:4... May 21 2018, 13:16  Flip-fl0p Поскольку полного кода я не вижу, я предположил, ч... May 21 2018, 13:17   Sprite Цитата(Flip-fl0p @ May 21 2018, 20:1... May 21 2018, 13:32    Marat Zuev Цитата(Sprite @ May 21 2018, 13:32) Вот к... May 21 2018, 18:29    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 Спасибо всем за критику)
Задачу в двух словах опи... 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|