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

seldim

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Частый гость
    Частый гость
  • День рождения 25.12.1978

Информация

  • Город
    Array
  1. Нужна помощь. Пытаюсь создать однопортовую память на VHDL в квартусе 9 версии для аналога ПЛИС 5576ХС1Т FLEX10K50RI. Изначально проект был под циклон с 2-х портовой памятью и в флексе он не прижился, переделал под однопортовую, Но квартус упорно не хочет использовать память, а компилирует на тригерах. В мегавизарде память создает нормально и использует блоки памяти, а из VHDL никак. Память описывал из квартусовского примера. Кто знает как заставить квартус использовать блоки памяти? -- Quartus II VHDL Template -- Single port RAM with single read/write address library ieee; use ieee.std_logic_1164.all; entity single_port_ram is port ( clk : in std_logic; addr : in natural range 0 to 31; data : in std_logic_vector(7 downto 0); we : in std_logic := '1'; q : out std_logic_vector(7 downto 0) ); end entity; architecture rtl of single_port_ram is -- Build a 2-D array type for the RAM subtype word_t is std_logic_vector(7 downto 0); type memory_t is array(256 downto 0) of word_t; -- Declare the RAM signal. signal ram : memory_t; -- Register to hold the address signal addr_reg : natural range 0 to 256; begin process(clk, we) begin if(rising_edge(clk)) then if(we = '1') then ram(addr) <= data; end if; addr_reg <= addr; end if; end process; q <= ram(addr_reg); end rtl;
  2. Огромное спасибо. Завод вообще не хочет общаться. Кто нибудь может поделиться такой же информацией информацией на ХС1Т.
  3. Спасибо, но эта информация у меня есть, нашел и на ХС1Т на форуме, но только непонятно как пины соотносить с FLEX. В квартусе привязка идет к номеру ножки флекса и как привязывать проект к нашим микросхемам не понятно.
  4. Кто нибудь может поделиться информацией по Воронежским ПЛИСам. Хотябы цоколевки и соответствие выводов альтеровским аналогам?
  5. Тогда получается не удобно. Придется каждый раз порты описывать, а хотелось бы обращаться к внешнему модулю как к функции.
  6. Здравствуйте уважаемые форумчане. Решил немного причесать код с применением функций (VHDL). Создал дополнительный файл (делал через package) в который запихнул пробную функию возвращающую входной сигнал. В основном файле обращаюсь к функции и все работает. Теперь хочу встроить в функию Альтеровский целочисленный делитель, но не понимаю как правильно его ввести в функцию. Кто может подсказать как подключить внешний модуль в функцию.
  7. Мне до просто верификаторов далеко неговоря уже о крутых :-) Модель cycloneive_lcell_comb тоже генерится но там при просмотре крякозябры. На счет задержек пытался ставить и мин и макс В данной симуляции смысл был один - попробовать. Это не проект. Появилось время и решил попробовать этот тип симуляции. И в очередной раз наткнулся на стену. Уверен что проблема решается какой нибудь галочкой в Квесте, которую чтобы найти придется потратить массу времени. Тоже самое было когда пытался сделать RTL модель первый раз. Тогда я долго воевал с "дружественным интерфейсом" Менторской Квесты :-)
  8. Вот файл исходный и тестовый на VHDL, нетлист и задержки. И вопрос зачем среда UVM? Изначально было желание разабраться со стандартными средствами в Квартусе с привязаной Квестой На счет разобраться в нетлисте - если бы в коде была функция суммирования двух векторов то цепи можно было бы отследить. А при делении 20 разрядного вектора на комбинационной логике пытаться отследить связи задача беполезная. proba_div.vhd proba_div_tb.vhd DIV.ZIP
  9. Я симулирую то, что Квартус передает в Квестасим совмесно с тестовым файлом VHDL, который формирует клок и входные данные. И что вы понимаете под нет листом? RTL? Нетлист при запуске симулятора через квартус передается в Квесту автоматически если Вы имеете в виду VHO файл и с ним производится симуляция. Нетлист приводить не имеет смысла он огромен. И думаю что он правильный.
  10. Уберал коменты и зацепил непосредственно деление. data_div <= (Data1 / Data2); Не понимаю где должны быть задержки. Это исходный код. Квартус производит компиляцию и предлагает два вида симуляции RTL и Gate. Я откуда могу знать через сколько вентилей он протаскивает сигналы и какая задежка там будет? Я понял что все задержки описываются в в SDO файле который подключается в Квесте при симуляции в разделе SDF. SDO файл генерит сам Квартус. И что это за Verilog модель где ее взять?
  11. Код делителя следующий library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; ENTITY div IS PORT ( data_in1 : IN STD_LOGIC_VECTOR (19 downto 0); data_in2 : IN STD_LOGIC_VECTOR (15 downto 0); clk : In STD_LOGIC; data_div_50 : out STD_LOGIC_VECTOR (19 downto 0) ); END div; ARCHITECTURE arhitektura OF div IS signal data1 : integer range 0 to 1048575; signal data2 : integer range 0 to 65535; signal data_div : integer range 0 to 1048575; BEGIN process (clk) begin if clk' event and clk = '0' then data1 <= conv_integer (data_in1(19 downto 0)); data2 <= conv_integer (data_in2(15 downto 0)); end if; end process; Data_div_50 <= CONV_STD_LOGIC_VECTOR(data_div, 20); END arhitektura; Код теста : USE cycloneive.cycloneive_components.all ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_textio.all ; USE ieee.std_logic_unsigned.all ; USE std.textio.all ; ENTITY proba_div_tb IS END; ARCHITECTURE proba_div_tb_arch OF proba_div_tb IS SIGNAL \Out\ : std_logic_vector (19 downto 0) ; SIGNAL d2 : std_logic_vector (15 downto 0) := X"0000"; SIGNAL CLK : STD_LOGIC :='0'; SIGNAL \in\ : std_logic_vector (19 downto 0) := X"00000"; COMPONENT divider PORT ( \Out\ : out std_logic_vector (19 downto 0); d2 : in std_logic_vector (15 downto 0); CLK : in STD_LOGIC; \in\ : in std_logic_vector (19 downto 0) ); END COMPONENT; BEGIN DUT : divider PORT MAP ( \Out\ => \Out\ , d2 => d2 , CLK => CLK , \in\ => \in\ ); clk <= not clk after 500 ns; d2 <= X"0248" after 1200 ns; \in\ <= X"5aaaa" after 1200 ns; END; Автоматически делитель реализован скорей всего на огромной комбинационной логике и задердки должны быть несколько наносекунд. Но задержки упорно не подключаются.
  12. Задержки в SDO не нулевые (CELL (CELLTYPE "cycloneive_lcell_comb") (INSTANCE \\inst\|Div0\|auto_generated\|divider\|divider\|add_sub_2_result_int\[0\]\~0\\) (DELAY (ABSOLUTE (PORT dataa (220:220:220) (292:292:292)) (PORT datab (1133:1133:1133) (1142:1142:1142)) (IOPATH dataa combout (300:300:300) (323:323:323)) (IOPATH dataa cout (376:376:376) (275:275:275)) (IOPATH datab combout (309:309:309) (328:328:328)) (IOPATH datab cout (385:385:385) (280:280:280)) (IOPATH datad combout (119:119:119) (106:106:106)) ) ) ) Отчет Квесты # Loading instances from D:/Arhive/PLIS/DIV/simulation/modelsim/div_6_1200mv_85c_vhd_slow.sdo # Loading timing data from D:/Arhive/PLIS/DIV/simulation/modelsim/div_6_1200mv_85c_vhd_slow.sdo # ** Note: (vsim-3587) SDF Backannotation Successfully Completed. # Time: 0 ps Iteration: 0 Instance: /divider File: D:/Arhive/PLIS/DIV/simulation/modelsim/div_min_1200mv_0c_fast.vho Результат тот же задержек нет
  13. Вроде бы получилось подключить через Start simulation когда в Design Unit указал и файл проекта и тестовый файл. Написал что SDF Backannotation Successfully Completed но времянка осталась тойже задержек нет
  14. Подключил sdo файл в закладке sdf Start simulation (в Квесте), но кнопка ОК остается неактивной и подключенный файл не сохраняется. Как еще можно подключить sdo файл? У меня ощущение что я вообще что то не так делаю.
  15. Здравствуйте. Пытался посмотреть задержки схемы в Questa sim. Проект постейший сделан в Квартусе. Делю два вектора один на другой (а/в) штатными средствами. Входные данные захлопываю в регистр и пытаюсь посмотреть через сколько родится результат деления на выходе. Скомпелировал проект в Квартусе, запустил Gate Level simulation, скомпилировал в Квесте тестовый vhdl файлик, запустил симуляцию. Но на графиках абсолютно нет задержек (результат полностью повторяет RTL симуляцию). Результат деления появляется сразу после записи входных векторов хотя сигналы проходят через огромный каскад комбинационной логики. Как заставить Questa sim учитывать задержки плис если это возможно?
×
×
  • Создать...