Jump to content
    

misyachniy

Свой
  • Posts

    886
  • Joined

  • Last visited

Reputation

0 Обычный

About misyachniy

  • Rank
    Знающий
    Знающий
  • Birthday 10/14/1966

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

5,582 profile views
  1. Вопрос решен unsigned int mem_SDGCTL = SCTLE | CL_3 | TRAS_6 | TRP_3 | TRCD_3 | TWR_2 | PSS | FBBRW | 0x80000000; 0x80000000 - это бит который переводит EBIU в режим 16 бит. Когда он сброшен - 32 бита. В HW reference он описан как "X16DE" В хидерах - отсутствует.
  2. Использовали плату BF561 с одним модулем памяти на 64 мегабайта 16 бит. Для нее был написан простенький тест памяти. Сейчас плату переразвели на 2 микросхемы памяти. В результате получили те же 64 мегабайта, но шина данных 32 бита. Залил старую программу - ростейший тест с бекущей "1" по шине данных не идет. Заполняет память как на картинке. Взял документ EE-326 "Blackfin® Processor and SDRAM Technology" Перепроверил схему на соответствие рекомендациям - все соответствует. Поискал информацию, как переключить шину 16 на 32 - не нашел. Есть рекомендации по настройке линкера, при размещении данных в SDRAM. Но в тестирующей программе размещение данных/кода в SDRAM не используется. Вот функция инициализации SDRAM контроллера void sdram_config() { unsigned int mem_SDRRC; unsigned int mem_SDGCTL = SCTLE | CL_3 | TRAS_6 | TRP_3 | TRCD_3 | TWR_2 | PSS | FBBRW | 0x80000000; // calculating EBIU_SDRRC double t_ref = 64 * 1e-3; double sclk = ((double) get_sclk()); // Hz unsigned int row_number = 13; unsigned short t_ras = (mem_SDGCTL >> 6) & 0xF; unsigned short t_rp = (mem_SDGCTL >> 11) & 0x7; mem_SDRRC = (sclk * t_ref) / (1 << row_number) - (t_ras + t_rp); // disable SDRAM Bank0 *pEBIU_SDGCTL &= 0xFFFFFFFE; *pEBIU_SDRRC = mem_SDRRC; *pEBIU_SDBCTL = EB0_E | EB0_SZ_64 | EB0_CAW_10; *pEBIU_SDGCTL = mem_SDGCTL; } Ну и извечных два вопроса: Кто виноват, что делать?
  3. Нужно описать, что происходит. Светится светодиод или нет? Как пересылаете числа в порт? К тому же при нажатии "2" в порт передается ASCII код 50 а не 2. https://www.ibm.com/docs/ru/sdse/6.4.0?topic=configuration-ascii-characters-from-33-126 Лучше использовать Serial.read() https://www.arduino.cc/reference/en/language/functions/communication/serial/read/
  4. Схему можно нагуглить В любом случае ток будет пилообразный. Если считать, что пила идеальная, то наверное нужно измерять ток в двух точках при открытых ключах. Также нужно учитывать скважность. В любом случае тыкнуть осциллографом в датчик не мешало бы. Может там еще иголки от мотора прут.
  5. У каждого свой метод чтения. Я такие конструкции сведу в один абзац и все будет читаемо. 9'd70 - адрес переменной переменной, UV_Z - наименование переменной, все что в средине базовый адрес и сигналы разрешения и так понятны. Могу скопировать массив строк в программу процессора и сравнить с текстом программы if (((Adress_Config == (9'd70 + 9'd256)) & ack_config & Debug) UV_Z <= Data_Config[13:1]; По поводу "достаточно открыть сгенерированный нетлист. " - ничего не могу сказать.
  6. Перебираю чужой проект. Подчищаю и "переписываю под себя". Для проверки сравниваю sof файлы "старый" и "новый." Есть вот такая конструкция always @ (posedge clk) begin begin if(Adress_Config == (9'd70 + 9'd256)) begin if(ack_config == 1'b1 && Debug == 1'b1) begin UV_Z <= Data_Config[13:1]; end end end end Я убрал лишне if ((Adress_Config == (9'd70 + 9'd256)) && (ack_config == 1'b1 && Debug == 1'b1)) UV_Z <= Data_Config[13:1]; Сравнение файлов показывает различия. По школьным знаниям могу предположить, что в первом варианте реализуется "приоритетный шифратор", во втором - "дешифратор". На мой взгляд функционировать должно одинаково, но почему генерится другой файл? //----- Ну и чтобы два раза не вставать, встретил два таких оператора вместе if(RM_Rise == 1'b1) Dis_Foto <= 1'b1; if(Res_Dis_Foto == 1'b1) Dis_Foto <= 1'b0; Понятно что Dis_Foto присваивается 1 и 0 одновременно, но при сборке проекта никаких предупреждений не выводиться. Как работает такая конструкция?
  7. Точно. Только не user manual а reference manual нужно смотреть. Спасибо.
  8. Хочу вписать в do файл команды для закрытия не нужных мне окон. Названия окон есть в руководстве. Есть команда показать окно. Например : А закрыть нету. пробовал close, hide не помогает.
  9. Разобрался с именами файлов в ошибке # ** Warning: (vsim-3534) [FOFIR] - Failed to open file "./mem/mem_sin.mif" for reading. # No such file or directory. (errno = ENOENT) : E:/Quartus_91/modelsim_ase/win32aloem/../altera/verilog/src/altera_mf.v(191) # Time: 0 ps Iteration: 0 Instance: /tb_dec_to_pol/Dec_to_Pol_inst/b2v_inst61/altsyncram_component # ERROR: cannot read ./mem/mem_sin.mif. Путь "E:/Quartus_91/modelsim_ase/win32aloem/../altera/verilog/src/altera_mf.v" это "E:/Quartus_91/modelsim_ase/altera/verilog/src/altera_mf.v" В файле altera_mf.v в 191 строке действительно есть функция открытие файла. Путь этого файла ./mem/mem_sin.mif расположен относительно корня проекта. Файл создается(копируется) в папке ./simulation. Создал в папке "simulation" папку "mem" и перенес туда файл - ошибок нет. Всем спасибо.
  10. Убрал библиотеки с настроек, добавил файл тестбенч в список файла проекта - все запускается. Не находит файл для моделирования памяти # ** Warning: (vsim-3534) [FOFIR] - Failed to open file "./mem/mem_sin.mif" for reading. # No such file or directory. (errno = ENOENT) : E:/Quartus_91/modelsim_ase/win32aloem/../altera/verilog/src/altera_mf.v(191) # Time: 0 ps Iteration: 0 Instance: /tb_dec_to_pol/Dec_to_Pol_inst/b2v_inst61/altsyncram_component В инсталляции таких файлов 5 штук. Какой из них?
  11. Я довольно много работал с Xilinx+Modelsim. Сейчас нужно поднять/модернизировать проект Quartus II 9.1 service pack 1. Библиотеки уже скомпилированы и устанавливаются при инсталляции Quartus. Долго настраивал пути, пока не увидел, что путь обрезается. На данный момент запуск Modelsim происходит успешно, но не находит библиотеки. как я понял - это библиотеки "собственно моих" файлов. Есть не понятный пункт настройки "Design instance in test bench". Собственно ошибка выглядит так: tb_Dec_to_Pol.v - это и есть тест бенч файл.
  12. Хотел сказать что ремапа нет. Я отрицаю, вы утверждаете.
  13. Советский правовед, заслуженный юрист РСФСР, доктор юридических наук, профессор И. Б. Михайловская отмечает, что указания о том, на ком лежит бремя доказывания, встречаются ещё в римском праве: «доказывание лежит на том, кто утверждает, а не на том, кто отрицает, на отрицающем нет обязанности доказывать» (лат. ei incumbit probatio qui dicit, non qui negat; negantis nulla probatio est) https://ru.wikipedia.org/wiki/Бремя_доказывания
  14. Первый раз слышу о таком в STM32F103.
  15. Смешались в кучу кони люди... Я отвечал на вопрос "зачем два банка памяти с одновременным доступом"
×
×
  • Create New...