mery 0 23 сентября, 2008 Опубликовано 23 сентября, 2008 · Жалоба Добрый день! Помогите решить следующую проблему. Есть код на vhdl, синтезируется, есть тестовое воздействие на vhdl, при запуске которого симулятор выдает ошибку: # Fatal error at an unknown location # while elaborating region: /func_tst_vhd/uut # Fatal error at func_tst.vhd line 60 # while elaborating region: /func_tst_vhd # Load interrupted # Error loading design # Error: Error loading design library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity func is generic( WIDTH : natural := 16; PIPEID : natural := 1 ); port( clk : in std_logic; ena : in std_logic; Xi : in signed(WIDTH -1 downto 0) ); end func; architecture Behavioral of func is signal dX, Xresult : signed(WIDTH -1 downto 0); signal Zneg, Zpos : std_logic; begin line 60: dX<=Xi; end Behavioral; Помогите, пожалуйста решить проблему с запуском симулятора. ISE 7.1, ModelSim 6.0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 23 сентября, 2008 Опубликовано 23 сентября, 2008 · Жалоба Пожалуйста, используйте тег code или codebox для оформления кода. В приведённом куске коде криминала не вижу. Ошибка, видимо, в другом месте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mery 0 23 сентября, 2008 Опубликовано 23 сентября, 2008 (изменено) · Жалоба >Пожалуйста, используйте тег code или codebox для оформления кода. сорри учту на будущее. я тоже не вижу, но когда я подключаю библиотеку use ieee.std_logic_arith.all; в тестовый файл, то modelsim выбрасывает следующую ошибку: # ** Error: func_tst.vhd(34): Aggregate expression cannot be scalar type (error). # ** Error: func_tst.vhd(35): (vcom-1137) Identifier 'signed' is not visible. Making two objects with the name 'signed' directly visible via use clauses results in a conflict; neither object is made directly visible. (LRM Section 10.4) чтобы не было сомнений, что ошибки в коде нет, прикладываю файлы Изменено 23 сентября, 2008 пользователем mery Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 23 сентября, 2008 Опубликовано 23 сентября, 2008 · Жалоба >Пожалуйста, используйте тег code или codebox для оформления кода. сорри учту на будущее. я тоже не вижу, но когда я подключаю библиотеку use ieee.std_logic_arith.all; в тестовый файл, то modelsim выбрасывает следующую ошибку: # ** Error: func_tst.vhd(34): Aggregate expression cannot be scalar type (error). # ** Error: func_tst.vhd(35): (vcom-1137) Identifier 'signed' is not visible. Making two objects with the name 'signed' directly visible via use clauses results in a conflict; neither object is made directly visible. (LRM Section 10.4) чтобы не было сомнений, что ошибки в коде нет, прикладываю файлы не надо подключать _одновременно_ arith и unsigned. собственно второй еррор об этом недвусмысленно намекает. ( Error: func_tst.vhd(35): (vcom-1137) Identifier 'signed' is not visible. Making two objects with the name 'signed' directly visible via use clauses results in a conflict; neither object is made directly visible) а вообще выкиньте arith нафик,используйте numeric_std-это стандарт Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 23 сентября, 2008 Опубликовано 23 сентября, 2008 · Жалоба Точно используйте только numeric_std, вот вам подсказка по преобразованию типов: http://dz.ee.ethz.ch/support/ic/hdl/vhdlsources.en.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mery 0 23 сентября, 2008 Опубликовано 23 сентября, 2008 · Жалоба после подключения numeric_std получилось. Большое спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mery 0 24 сентября, 2008 Опубликовано 24 сентября, 2008 · Жалоба numeric_std - это хорошо, а он же не поддерживает операцию conv_signed(arg,size), а его поддерживает std_logic_arith и что делать? Симулятор по прежнему выдает ошибку: # ** Error: p2r_cordicpipe.vhd(19): (vcom-1137) Identifier 'signed' is not visible. Making two objects with the name 'signed' directly visible via use clauses results in a conflict; neither object is made directly visible. (LRM Section 10.4) # Definitions included from: # ieee.std_logic_arith.signed # ieee.numeric_std.signed Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 24 сентября, 2008 Опубликовано 24 сентября, 2008 · Жалоба numeric_std - это хорошо, а он же не поддерживает операцию conv_signed(arg,size), Функция to_signed устроит? а его поддерживает std_logic_arith и что делать? Не использовать пакет std_logic_arith и его производные и почитать что-нибудь по стандартной библиотеке VHDL. Например, исходники пакета numeric_std. Там всё достаточно ясно. Ищите в каталоге ModelSim. Cимулятор по прежнему выдает ошибку: # ** Error: p2r_cordicpipe.vhd(19): (vcom-1137) Identifier 'signed' is not visible. Making two objects with the name 'signed' directly visible via use clauses results in a conflict; neither object is made directly visible. (LRM Section 10.4) # Definitions included from: # ieee.std_logic_arith.signed # ieee.numeric_std.signed Он не знает, какой из двух конфликтующих типов signed (numeric_std.signed или std_logic_arith.signed) надо использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mery 0 24 сентября, 2008 Опубликовано 24 сентября, 2008 · Жалоба Получилось!!! Спасибо . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться