Jump to content

    

RUNVoVaN

Участник
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Случаем никто не пробовал запустить реализацию? У меня ругается на строчку main: process (Rst,Clk)\
  2. Спасибо, буду пробовать разобраться. Если у кого есть что нибудь по MIMO декодеру, выложите пожалуйста. Вот такую реализацию деления нашел: entity intdvd is Port ( Clk: in std_logic ; Rst: in std_logic ; we: in std_logic ; divident : in STD_LOGIC_VECTOR (23 downto 0) ; divisor : in STD_LOGIC_VECTOR (11 downto 0) ; result : out STD_LOGIC_VECTOR (11 downto 0) ); end intdvd; architecture Behavioral of intdvd is signal cur_divident: std_logic_vector(23 downto 0) ; signal cur_divisor: std_logic_vector(23 downto 0) ; signal bit_count: integer range 12 downto 0 ; begin main: process (Rst,Clk)\ begin if Rst='1' then cur_divident<="000000" ; cur_divisor<="000000" ; bit_count <= 0 ; elsif rising_edge(Clk) then if we='1' then cur_divident<= divident ; cur_divisor<= divisor ; bit_count = 12 ; else if bit_count>0 then if cur_divident>cur_divisor then cur_divident <= cur_divident-cur_divisor ; result(bit_count-1)<='1' ; else result(bit_count-1)<='0' ; end if ; for i in 0 to 10 loop cur_divident(i) <= cur_divident(i+1) ; end loop ; end if ; end if ; end process main; end Behavioral; Но как ее использовать у себя, вот это вопрос.
  3. В самом лучьшем случае нужно написать MIMO декодер Пишу, заодно знакомлюсь с языком
  4. В идеале мне надо сделать следующие процедуры: - комплексное деление - беззнаковое деление с фиксированной точкой - знаковое деление с фиксированной точкой - модуль работы с комплексными числами. У кого есть какие нибудь конкретные примеры, желательно в виде кода? спасибо
  5. Помогите пожалуйста Пытаюсь подсчитать обратную матрицу, не могу организовать деление, как я понел это проблема с разрядами. Подскажите метод небольшим кусочком исходинка, либо мой подправте. Спасибо P.S. Язык только начал изучать. entity mimo is Port ( Clk: in std_logic; h00 : in STD_LOGIC_VECTOR (11 downto 0); h01 : in STD_LOGIC_VECTOR (11 downto 0); h10 : in STD_LOGIC_VECTOR (11 downto 0); h11 : in STD_LOGIC_VECTOR (11 downto 0); x0 : in STD_LOGIC_VECTOR (11 downto 0); x1 : in STD_LOGIC_VECTOR (11 downto 0); y0 : out STD_LOGIC_VECTOR (11 downto 0); y1 : out STD_LOGIC_VECTOR (11 downto 0); det : inout STD_LOGIC_VECTOR (23 downto 0); hh1 : out STD_LOGIC_VECTOR (23 downto 0); hh2 : out STD_LOGIC_VECTOR (11 downto 0); hh3 : out STD_LOGIC_VECTOR (11 downto 0); hh4 : out STD_LOGIC_VECTOR (11 downto 0) ); end mimo; architecture Behavioral of mimo is signal hh1_int: integer range 0 to 1000 ; signal h11_48: std_logic_vector(47 downto 0) ; begin y_solver:process(Clk) begin if (rising_edge(Clk)) then det<=h00*h11-h01*h10; --hh1_int<= CONV_INTEGER(h11) / CONV_INTEGER(det); --det <= CONV_STD_LOGIC_VECTOR(hh1_int,1000); end if ; end process y_solver; end Behavioral;