Jump to content

    

ShootNick

Участник
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. В ModelSim всё прекрасно работает, с ошибкой столкнулся в ISE. Исправил. Спасибо. outdata := to_integer(signed(car(N-1)(15 downto 8)));
  2. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.NUMERIC_STD.ALL; library std; use std.textio.all; entity FIR is Generic (N:natural:=12); Port ( X : in STD_LOGIC_VECTOR (7 downto 0); clk : in STD_LOGIC; start : in STD_LOGIC; Y : out STD_LOGIC_VECTOR (23 downto 0)); end FIR;
  3. signal car: carry := ( x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000", x"000000"); -- .... write_to_file: process(clk) variable outdata_line: line; variable outdata: integer :=0; file output_data_file: text open write_mode is "out_data.txt"; begin if rising_edge(clk) then --130: outdata := conv_integer(signed(car(N-1)(15 downto 8))); write(outdata_line, outdata); writeline(output_data_file,outdata_line); end if; end process line 130: Second argument of write must have a constant value. В чём проблема?
  4. спасибо, попробую этим методом. 1. насчитываю коэффициенты в стороннем софте (я пользую Матлаб, но тут выбор очень широкий). 2. форматирую получившийся файл (средствами Матлаба) в соответствии с синтаксисом verilog, например: 3. сохраняю в виде файла *.vh 4. в исходниках подключаю этот файл директивой include. Для VHDL думаю всё можно сделать аналогично.
  5. Нужно производить N умножений за один такт. А с ПЗУ прочитаю за один такт только одно значение.
  6. file_open(c_file_handle, "I:\\flash\\vhdl\\FIR_N\\coeff.txt", READ_MODE);
  7. Файл находится в указанном месте, пробовал и с "\". read_input: process (start) type char_file is file of character; file c_file_handle: char_file; variable C: character; variable char_count: integer := 0; begin file_open(c_file_handle, "I:\\flash\\vhdl\\FIR_N\\coeff.txt", READ_MODE); while not endfile(c_file_handle) loop read (c_file_handle, C) ; char_count := char_count + 1; -- Keep track of the number of characters end loop; file_close(c_file_handle); end process; ERROR:Xst:1914 - "I:/flash/vhdl/FIR_N/FIR.vhd" line 140: File <c_file_handle> does not exist. В общем нужно прочитать из файла 8-битовых коэффициентов КИХ-фильтра