Перейти к содержанию

OLD_SHURiK

Участник
  • Публикаций

    21
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о OLD_SHURiK

  • Звание
    Участник
  • День рождения 30.05.1959

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Беларусь, Минск

Старые поля

  • skype
    old-shurik
  1. Active-HDL

    первый вопрос signal pulse : std_logic := '0'; signal set_pulse : std_logic := '0'; signal reset_pulse : std_logic := '0'; signal count_pulse : std_logic := '0'; -- объявили сигналы -- а использовали только два "count_pulse" и "pulse" -- на неиспользованные сигналы QUARTUS выдает "варнинги" -- что переменная объявлена но нигде не применяется. -- в большом проекте набирается таких довольно моного :-(( -- ВОПРОС : можно ли Actve-HDL заставить сообщать об этом ? второй вопрос signal pulse : std_logic := '0'; signal a : std_logic := '0'; signal b : std_logic := '0'; signal c : std_logic := '0'; ..... .... ... a <= a_function; -- какая то функция b <= b_function; -- какая то функция -- а про "с" ЗАБЫЛИ !!!! pup : process(clock, a, b, c) begin if risin_edge(clcok) then if a = '1' then pulse <= p1_function; elsif b= '1' then pulse <= p2_function; elsif c = '1' then pulse <= p3_function; end if; end if; end process pup; -- всё компилится и не ругается !!! -- ВОПРОС : можно ли Active-HDL "заставить ругаться" на такое безобразие? -- что бы не тратить время на поиски "забывчивости".
  2. Active-HDL

    всем здравствуйте ! есть вопрос : можно ли заставить Active-HDL "ругаться" на пустые сигналы ? т. е. сигнал назначен, но нигде не применён. что бы потом QUARTUS не делал много warning-ов . заранее спасибо.
  3. Всем спасибо ! Ошибка была в том что память инициализировалась всё время при входе в процесс !
  4. Всем здравствуйте ! Подскажите что не так. Моделирую память в Actve-HDL на VHDL. На waveform после записи показывает старое (после инициализации) значение. В Memory Viem подсвечивает старое значение красным цветом. Нового записанного байта нигде не видно ?! Что делаю неправильно ? CODElibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all; use std.textio.all; entity RAM_DP is generic ( width :natural := 8; -- Width of data[] and q[] ports. widthad :natural := 8 -- Width of the address port. ); port ( clk : in std_logic := '0'; wren : in std_logic := '0'; rdaddress : in std_logic_vector(widthad-1 downto 0); wraddress : in std_logic_vector(widthad-1 downto 0); data : in std_logic_vector(width-1 downto 0); --- q : out std_logic_vector(width-1 downto 0) ); end RAM_DP; architecture TELESH of RAM_DP is -- signal rdaddress_reg : std_logic_vector(widthad-1 downto 0) := (others => '0'); signal wraddress_reg : std_logic_vector(widthad-1 downto 0) := (others => '0'); signal data_reg : std_logic_vector(width-1 downto 0) := (others => '0'); signal q_tmp : std_logic_vector(width-1 downto 0); signal wren_reg : std_logic := '1'; --type memory is array (((2**widthad) - 1) downto 0) of std_logic_vector(width-1 downto 0); --signal RAM : memory; begin input_register: process(clk) begin if (rising_edge(clk)) then rdaddress_reg <= rdaddress; wraddress_reg <= wraddress; data_reg <= data; wren_reg <= wren; end if; end process input_register; write_read: process(clk, wren_reg, data_reg, q_tmp) type memory is array (((2**widthad) - 1) downto 0) of std_logic_vector(width-1 downto 0); variable RAM : memory; variable i : integer :=0; begin -- initialize RAM for i in RAM'low to RAM'high loop RAM(i) := (conv_std_logic_vector(i,width)); -- RAM(i) <= (conv_std_logic_vector(i,width)); -- RAM(i) := (others => '0'); end loop; if wren_reg = '1' then if (rising_edge(clk)) then RAM(conv_integer(wraddress_reg)) := data_reg; -- RAM(conv_integer(wraddress_reg)) <= data_reg; end if; end if; if (rising_edge(clk)) then q_tmp <= RAM(conv_integer(rdaddress_reg)); end if; end process write_read; q <= q_tmp; end TELESH; --------------- ------------------------------------------------------------------------------- -- -- Title : Test Bench for ram_dp -- Design : UROK2 -- Author : SHUR!K -- Company : SI -- ------------------------------------------------------------------------------- -- -- File : $DSN\src\TestBench\ram_dp_TB.vhd -- Generated : 31.10.2017, 14:46 -- From : f:\ModelSimWork\UROK2\RAM_DP.vhd -- By : Active-HDL Built-in Test Bench Generator ver. 1.2s -- ------------------------------------------------------------------------------- -- -- Description : Automatically generated Test Bench for ram_dp_tb -- ------------------------------------------------------------------------------- library ieee; use std.textio.all; use ieee.numeric_std.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; -- Add your library and packages declaration here ... entity ram_dp_tb is -- Generic declarations of the tested unit generic( width : NATURAL := 8; widthad : NATURAL := 8 ); end ram_dp_tb; architecture TB_ARCHITECTURE of ram_dp_tb is -- Component declaration of the tested unit component ram_dp generic( width : NATURAL := 8; widthad : NATURAL := 8 ); port( clk : in std_logic; wren : in std_logic; rdaddress : in std_logic_vector((widthad-1) downto 0); wraddress : in std_logic_vector((widthad-1) downto 0); data : in std_logic_vector((width-1) downto 0); q : out std_logic_vector((width-1) downto 0) ); end component; -- Stimulus signals - signals mapped to the input and inout ports of tested entity signal clk : std_logic; signal wren : std_logic := '0'; signal rdaddress : std_logic_vector((widthad-1) downto 0) := "00000000"; signal wraddress : std_logic_vector((widthad-1) downto 0) := "00000000"; signal data : std_logic_vector((width-1) downto 0) := "00000000"; -- Observed signals - signals mapped to the output ports of tested entity signal q : std_logic_vector((width-1) downto 0); -- Add your code here ... begin -- Unit Under Test port map UUT : ram_dp generic map ( width => width, widthad => widthad ) port map ( clk => clk, wren => wren, rdaddress => rdaddress, wraddress => wraddress, data => data, q => q ); -- Add your stimulus here ... write: process begin wait for 500 ns; wren <= '1'; data <= "01101001"; wraddress <= "00001001"; wait for 200 ns; wren <= '0'; data <= "00000000"; wraddress <= "00000000"; wait for 200 ns; wren <= '1'; data <= "01101010"; wraddress <= "00001001"; wait for 200 ns; wren <= '0'; data <= "00000000"; wraddress <= "00000000"; wait for 400 ns; wren <= '0'; rdaddress <= "00001001"; wait; end process write ; clock: process begin clk <= '1'; wait for 100 ns; clk <= '0'; wait for 100 ns; end process clock ; end TB_ARCHITECTURE; configuration TESTBENCH_FOR_ram_dp of ram_dp_tb is for TB_ARCHITECTURE for UUT : ram_dp use entity work.ram_dp(telesh); end for; end for; end TESTBENCH_FOR_ram_dp;
  5. Quartus II v12.1

    Люди добрые ! Подскажите ! Так можно ли подружить графический редактор QII v12.1 c русским языком ?! Или нельзя ! С текстовым редактором разобрался. Неужели все пишут в тексте или комментарии на латинице ?! W7 проф., рус., (32)., официальная. Заранее благодарен !
  6. Quartus II v12.1

    Да вроде бы всё посмотрел. Видел только для текстового редактора , поменять ANSI в UTF-8. Это было для QII v11.1 Про графический редактор ничего не нашёл. Подскажите , что и как , а то есть много проектов в графическом редакторе !
  7. Quartus II v12.1

    Спасибо ! Помогло! Это ALTERA для CYCLONA сделала не назначенные пины как критическая ошибка ? А если это не конечный проект , а встраиваемый ?! зачем там назначать пины ?! что то они перемудрили !!!! Так как MAX3000A раскладывается с не назначенными пинами даже, при установленной галке "Promote critical warning messages to error messages"! И ещё вопрос в догонку ! Как подружить графический редактор (да и текстовый то же) QII v12.1 c русским языком , операционка W7 проф., рус., (32)., официальная. Есть много старых проектов в которых на схемах есть комментарии на русском языке. Причём , при вводе (в QII v12.1), символы отображаются правильно. А вот потом ...одни кракозябры !!!
  8. Quartus II v12.1

    Всем привет ! QII v12.1 Тупой пример input_clk делим на 2 и отправляем в output_clk Вопрос: Почему, если ножки не назначены на Pin Planner, не выполняется Fitter Если ножки назначить (от балды) , то Fitter выполняется Раньше такого не было. Может надо где-то птичку какую-то поставить? Не могу найти какую и где ? Подскажите плиз, что делать ? Вот сообщения Flow Status Flow Failed - Tue Jan 22 17:29:58 2013 Quartus II 32-bit Version 12.1 Build 177 11/07/2012 SJ Full Version Revision Name qii_121_test Top-level Entity Name qii_121_test Family Cyclone Device EP1C6Q240C8 Timing Models Final Total logic elements 2 / 5,980 ( < 1 % ) Total pins 2 / 185 ( 1 % ) Total virtual pins 0 Total memory bits 0 / 92,160 ( 0 % ) Total PLLs 0 / 2 ( 0 % ) Вот сообщения Fitter Info: ******************************************************************* Info: Running Quartus II 32-bit Fitter Info: Version 12.1 Build 177 11/07/2012 SJ Full Version Info: Processing started: Tue Jan 22 17:29:57 2013 Info: Command: quartus_fit --read_settings_files=off --write_settings_files=off qii_121_test -c qii_121_test Info (20030): Parallel compilation is enabled and will use 2 of the 2 processors detected Info (119006): Selected device EP1C6Q240C8 for design "qii_121_test" Info (171003): Fitter is performing an Auto Fit compilation, which may decrease Fitter effort to reduce compilation time Info (176444): Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices Info (176445): Device EP1C12Q240C8 is compatible Info (169124): Fitter converted 2 user pins into dedicated programming pins Info (169125): Pin ~nCSO~ is reserved at location 24 Info (169125): Pin ~ASDO~ is reserved at location 37 Error (169085): promoted from Critical Warning: No exact pin location assignment(s) for 2 pins of 2 total pins Info (169086): Pin do not assigned to an exact location on the device Info (169086): Pin di not assigned to an exact location on the device Error (332012): promoted from Critical Warning: Synopsys Design Constraints File file not found: 'qii_121_test.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design. Info (332144): No user constrained base clocks found in the design Info (332130): Timing requirements not specified -- quality metrics such as performance may be sacrificed to reduce compilation time. Info (186079): Completed User Assigned Global Signals Promotion Operation Info (186363): DQS I/O pins require 0 global routing resources Info (186079): Completed Auto Global Promotion Operation Info (176234): Starting register packing Info (186391): Fitter is using Normal packing mode for logic elements with Auto setting for Auto Packed Registers logic option Info (176243): Finished moving registers into I/O cells, LUTs, and RAM blocks Info (176235): Finished register packing Info (176214): Statistics of I/O pins that need to be placed that use the same VCCIO and VREF, before I/O pin placement Info (176211): Number of I/O pins in group: 2 (unused VREF, 3.3V VCCIO, 1 input, 1 output, 0 bidirectional) Info (176212): I/O standards used: 3.3-V LVTTL. Info (176212): I/O standards used: 3.3-V LVTTL. Info (176215): I/O bank details before I/O pin placement Info (176214): Statistics of I/O banks Info (176213): I/O bank number 1 does not use VREF pins and has undetermined VCCIO pins. 2 total pin(s) used -- 42 pins available Info (176213): I/O bank number 2 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 48 pins available Info (176213): I/O bank number 3 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 45 pins available Info (176213): I/O bank number 4 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 48 pins available Info (176213): I/O bank number 1 does not use VREF pins and has undetermined VCCIO pins. 2 total pin(s) used -- 42 pins available Info (176213): I/O bank number 2 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 48 pins available Info (176213): I/O bank number 3 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 45 pins available Info (176213): I/O bank number 4 does not use VREF pins and has undetermined VCCIO pins. 0 total pin(s) used -- 48 pins available Info (171121): Fitter preparation operations ending: elapsed time is 00:00:00 Error (171000): Can't fit design in device Warning (169174): The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'. Info (144001): Generated suppressed messages file D:/TEST_Model_Sim/Load_C/output_files/qii_121_test.fit.smsg Error: Quartus II 32-bit Fitter was unsuccessful. 3 errors, 1 warning Error: Peak virtual memory: 350 megabytes Error: Processing ended: Tue Jan 22 17:29:58 2013 Error: Elapsed time: 00:00:01 Error: Total CPU time (on all processors): 00:00:01
  9. ИКМ-15

    Цитата(cdg @ Aug 31 2006, 09:46) Цитата Теперь следующий вопрос, другие биты в нулевом тайм-слоте кодируются по XOR: мультифреймовая, сигнализация, резерв (кстати что туда вставлять, единицу?)? Кодируются. По поводу назначения бит в 0-м КИ: разное предназначение битов аварийной сигнализации и резерва у разных типов оборудования, именно этот вопрос я и поднимал при создании настоящей темы. ЦитатаИ ещё заодно подскажите чем заполнять биты сигнализации, если она не используется и мы полностью генерим нулевой тайм-слот? Могу сказать, что в старом оборудовании в основном используется сигнализация 1-ВСК, посмотрите в Гольдштейне пассивное(исходное) состояние ВСК. ЦитатаИ если фреймовая метка не кодируется, то первый бит первого таймслота по XOR какое состояние берет, то что было перед фреймовой меткой или какое-то фиксированное число? Фреймовая метка вставляется после кодирования, а на ее месте гонятся нули К вопросу по битикам в КИ0 для цикла 0: битики * "ИВА" * "КЕДР" 0(1) * сверхцикловой маркер * сверхцикловой маркер 1(2) * ошибка "цикловой" синхронизации * ошибка "цикловой" синхронизации 2(3) * повышенный коэфицент ошибок * повышенный коэфицент ошибок 3(4) * "1" * ошибка "сверхцикловой" синхронизации 4(5) * цифровой канал или "1" * цифровой канал или "1" 5(6) * "1" * "1" -это маркер 6(7) * "1" * "1" -это маркер 7(8) * "0" * "0" -это маркер извиняйте нет табуляции поэтому разделяем * битик 0(1) выдаётся первый !!! Кодируется всё кроме маркера это биты 5(6), 6(7), 7(8) !!! есть разные ячейки РПР которые запоминаю состояние кодера перед маркером и которые не запомирают. Поэтому нужно две управляемые реализации....(как напорешся на производителя).Ещё есть глююк с 6 и 13 каналом в некоторых системах они перепутаны..!!! Если есть вопросы спрашивайте. Проекты ИКМ15 работают давно и успешно.. Цитата(cdg @ Aug 31 2006, 09:46) Цитата Теперь следующий вопрос, другие биты в нулевом тайм-слоте кодируются по XOR: мультифреймовая, сигнализация, резерв (кстати что туда вставлять, единицу?)? Кодируются. По поводу назначения бит в 0-м КИ: разное предназначение битов аварийной сигнализации и резерва у разных типов оборудования, именно этот вопрос я и поднимал при создании настоящей темы. ЦитатаИ ещё заодно подскажите чем заполнять биты сигнализации, если она не используется и мы полностью генерим нулевой тайм-слот? Могу сказать, что в старом оборудовании в основном используется сигнализация 1-ВСК, посмотрите в Гольдштейне пассивное(исходное) состояние ВСК. ЦитатаИ если фреймовая метка не кодируется, то первый бит первого таймслота по XOR какое состояние берет, то что было перед фреймовой меткой или какое-то фиксированное число? Фреймовая метка вставляется после кодирования, а на ее месте гонятся нули К вопросу по битикам в КИ0 для цикла 0: битики * "ИВА" * "КЕДР" 0(1) * сверхцикловой маркер * сверхцикловой маркер 1(2) * ошибка "цикловой" синхронизации * ошибка "цикловой" синхронизации 2(3) * повышенный коэфицент ошибок * повышенный коэфицент ошибок 3(4) * "1" * ошибка "сверхцикловой" синхронизации 4(5) * цифровой канал или "1" * цифровой канал или "1" 5(6) * "1" * "1" -это маркер 6(7) * "1" * "1" -это маркер 7(8) * "0" * "0" -это маркер извиняйте нет табуляции поэтому разделяем * битик 0(1) выдаётся первый !!! Кодируется всё кроме маркера это биты 5(6), 6(7), 7(8) !!! есть разные ячейки РПР которые запоминаю состояние кодера перед маркером и которые не запомирают. Поэтому нужно две управляемые реализации....(как напорешся на производителя).Ещё есть глююк с 6 и 13 каналом в некоторых системах они перепутаны..!!! Если есть вопросы спрашивайте. Проекты ИКМ15 работают давно и успешно..
  10. Quartus II 5.1

    Сделал.!! Вроде Задышал !!! Больному стало легче Всем спасибо за помощь
  11. Quartus II 5.1

    Цитата(tocha @ Jan 10 2006, 20:28) HOSTID=DISK_SERIAL_NUM=xxxxxxx, xxxxxxx - hdd number 1. как License File, Generate by ROR Team указать чтоь надо генерить HOSTID=DISK_SERIAL_NUM=xxxxxxx, т.к. по умолчанию он делает HOSTID=хххххххххххх 2. или это надо ручками править готовый файл ?? (что маловероятно)
  12. Есть домашний комп. Без сетевой карты. Т.е. License File Generate by ROR Team но у него HOSTID=000000000000. Quartus на ето ругается и не хочет общаться. Может кто подскажет как ето вылечить... Заранее благодарен
  13. Цитата(Jcs @ Sep 13 2005, 14:42)Здравствуйте. Есть проект на квартусе для циклона 1. Как только пытаюсь добавить элемент, работающий с памятью (лпм), Partition Merge начитает орать, что для данного блока необходим порт А или порт В. Порывшись по свойствам проекта, ничего не нашел. Заранее спасибо. Встороенные блоки памяти в Cyclone работают ТОЛЬКО в синхронном режиме, это первое, а второе создайте свою память с помощбю MegaWizard Plug-In Manager и не трахайтесь с LPM функциями т.к. там очень много настроек и не наглядно....
  14. Цитата(Jcs @ Sep 13 2005, 14:42)Здравствуйте. Есть проект на квартусе для циклона 1. Как только пытаюсь добавить элемент, работающий с памятью (лпм), Partition Merge начитает орать, что для данного блока необходим порт А или порт В. Порывшись по свойствам проекта, ничего не нашел. Заранее спасибо. Встороенные блоки памяти в Cyclone работают ТОЛЬКО в синхронном режиме, это первое, а второе создайте свою память с помощбю MegaWizard Plug-In Manager и не трахайтесь с LPM функциями т.к. там очень много настроек и не наглядно....
  15. Цитата(Alexandr @ Mar 18 2005, 13:03)Необходимо: на вход элемента приходит фронт (передний или задний) сигнала. На выходе должен появиться импульс, длительностью ну пусть хотя бы в 4 такта синхросигнала. А вот ещё классическая синхронная схема выделния фронтов импулься, представлена в схематике, для Q50-SP1