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

    

quato_a

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

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

Информация

  • Город
    Зеленоград

Посетители профиля

2 817 просмотров профиля
  1. Вам нужно понять суть формирования и демодуляции сигналов частотной/фазовой модуляции. dsplib.ru Сформируйте простыми функциями самостоятельно сигнал без всяких встроенных высокоуровневых функций матлаба. Иначе не поймете чего у них там под капотом крутится. Выглядеть будет не особо красиво, но доберетесь до сути. в настоящем случае вам нужна частотная синхра, восстановление несущей (хоть та же петля Костаса). Изучите петлевые фильтры.
  2. process(...) variable sel_v : std_logic_vector(1 downto 0); ... begin sel_v := vADDR(6) & vADDR(1); ... case sel_v is when ... ... end case; ... end process;
  3. Рассинхронизация OFDM

    Возможно поможет https://drive.google.com/open?id=1RtX0YkIqA33LXi4q6hg__dJ02HTPL02U MIMO-OFDM Wireless Communications with Matlab стр.178 п.5.5.2
  4. https : //electronix . ru / - у меня не открывается http : //electronix . ru / - открывается сайт
  5. - есть один ведущий по проекту, остальные разработчики - на основе ТЗ должны четко определиться что и как делать, разделить ответственность по функциональным блокам. осуждение до тех пор, пока все не станет прозрачно и ясно (стремиться к этому) - четкое определение протоколов / времянок / интерфейсов / сигналов взаимодействия между блоками - работа в разных ветках svn/git, потом слитие в главную ветку. либо работа в одной, но без пересечений - проверка / верификация блоков после написания, перед слитием в главную ветку - должны быть тестовые стенды на каждые функциональные блоки, покрывающие максимальное кол-во возможных режимов работы блоков - крайне желательно, выработать единый стиль написания кода как то так :laughing: обсуждение :biggrin: хотя осуждение тоже подходит
  6. У меня выражение лица сейчас, как на аватарке Flip-fl0p. :wacko: FIFO один из самых распространенных функциональных узлов на ПЛИС. https://drive.google.com/open?id=1wyWqPKKIC...VzMEuKcOAJDaHJ9 Пример записи в FIFO 7 байт пачкой и чтения из него побайтно. Можно делать и наоборот: записывать побайтно, а читать непрерывной пачкой. Можно вообще почти как угодно. Потренируйтесь на простых блоках, посимулеруйте разные варианты записи и чтения FIFO и ясность появится.
  7. Up! Есть ли у кого схемотехника отладочной платы DLP® LightCrafter™ 6500 Evaluation Module?
  8. Сразу видно, что шум и дребезг возникает при установке в лог. '0'. Да, посмотрите подтяжки к земле на приемной стороне. Усиление, думаю, не подойдет, поскольку видно, что уровени лог. '1' на выходе передатчика и входе приемника на одном уровне.
  9. синхронизатор шин данных между частотными регионами library ieee; use ieee.std_logic_1164.all; entity indpClkDataBufferStd is generic( DW : natural := 32; RST_ACTIVE_SRC : std_logic := '1'; RST_ACTIVE_DEST : std_logic := '1' ); port( clk_src : in std_logic; clk_dest : in std_logic; rst_src : in std_logic; rst_dest : in std_logic; src_rdy_i : in std_logic; src_data_i : in std_logic_vector(DW - 1 downto 0); dest_rdy_o : out std_logic; src_rdy_o : out std_logic; dest_data_o : out std_logic_vector(DW - 1 downto 0) ); end indpClkDataBufferStd; architecture rtl of indpClkDataBufferStd is type state_src_t is (IDLE, WAIT_ACK, ACK); signal state_src : state_src_t; signal ack_b : std_logic; -- trigger for latching signal from dest_ctrl signal ack_b2 : std_logic; -- trigger for latching signal from dest_ctrl type state_dest_t is (IDLE, ACK); signal state_dest : state_dest_t; signal req_b : std_logic; -- trigger for latch signal from src_ctrl signal req_b2 : std_logic; -- trigger for latch signal from src_ctrl signal ack_dest_src : std_logic; signal req_src_dest : std_logic; signal data_src_dest : std_logic_vector(DW - 1 downto 0); begin src_ctrl_proc : process(clk_src, rst_src) begin if rst_src = RST_ACTIVE_SRC then data_src_dest <= (others => '0'); req_src_dest <= '0'; src_rdy_o <= '0'; state_src <= IDLE; ack_b <= '0'; elsif rising_edge(clk_src) then ack_b <= ack_dest_src; -- base synchronize ack_b2 <= ack_b; case state_src is when IDLE => src_rdy_o <= '0'; if (src_rdy_i = '1') then state_src <= WAIT_ACK; data_src_dest <= src_data_i; -- latching data bus from source to dest_ctrl req_src_dest <= '1'; end if; when WAIT_ACK => if (ack_b2 = '1') then -- when dest_ctrl get data, req_o = '0' req_src_dest <= '0'; state_src <= ACK; end if; when ACK => if (ack_b2 = '0') then -- when dest_ctrl ack='0' go to IDLE state_src <= IDLE; src_rdy_o <= '1'; end if; end case; end if; end process; dest_ctrl_proc : process(clk_dest, rst_dest) begin if rst_dest = RST_ACTIVE_DEST then ack_dest_src <= '0'; dest_data_o <= (others => '0'); state_dest <= IDLE; req_b <= '0'; req_b2 <= '0'; dest_rdy_o <= '0'; elsif rising_edge(clk_dest) then req_b <= req_src_dest; req_b2 <= req_b; case state_dest is when IDLE => if (req_b2 = '1') then -- when request from src_cotrol, latch data bus, form acknowledge dest_data_o <= data_src_dest; dest_rdy_o <= '1'; ack_dest_src <= '1'; state_dest <= ACK; end if; when ACK => dest_rdy_o <= '0'; if (req_b2 = '0') then -- when req from src_ctrl is '0', ack_0 = '0', go to IDLE ack_dest_src <= '0'; state_dest <= IDLE; end if; end case; end if; end process; end rtl; синхронизатор стробов между частотными регионами LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; entity IndpClkStb is generic( RST_ACTIVE_SRC : std_logic := '1'; RST_ACTIVE_DEST : std_logic := '1' ); port( clk_src : in std_logic; rst_src : in std_logic; data_i : in std_logic; clk_dest : in std_logic; rst_dest : in std_logic; data_o : out std_logic ); end entity IndpClkStb; architecture RTL of IndpClkStb is type state_src_t is (IDLE, WAIT_ACK, ACK); signal state_src : state_src_t; type state_dest_t is (IDLE, ACK); signal state_dest : state_dest_t; signal hardshake_req : std_logic; signal req_z : std_logic; signal req_z2 : std_logic; signal handshake_ack : std_logic; signal ack_z : std_logic; signal ack_z2 : std_logic; begin --================================================================================ ==================================== --=========== автомат состояний входа --================================================================================ ==================================== proc_scr_ctrl : process(clk_src, rst_src) begin if (rst_src = RST_ACTIVE_SRC) then hardshake_req <= '0'; state_src <= IDLE; elsif rising_edge(clk_src) then ack_z <= handshake_ack; ack_z2 <= ack_z; case state_src is when IDLE => if (data_i = '1') then state_src <= WAIT_ACK; hardshake_req <= '1'; end if; when WAIT_ACK => if (ack_z2 = '1') then hardshake_req <= '0'; state_src <= ACK; end if; when ACK => if (ack_z2 = '0') then state_src <= IDLE; end if; end case; end if; end process; --================================================================================ ==================================== --=========== автомат состояний выхода --================================================================================ ==================================== proc_dest_ctrl : process(clk_dest, rst_dest) begin if (rst_dest = RST_ACTIVE_DEST) then handshake_ack <= '0'; state_dest <= IDLE; data_o <= '0'; elsif rising_edge(clk_dest) then req_z <= hardshake_req; req_z2 <= req_z; case state_dest is when IDLE => if (req_z2 = '1') then data_o <= '1'; handshake_ack <= '1'; state_dest <= ACK; end if; when ACK => data_o <= '0'; if (req_z2 = '0') then handshake_ack <= '0'; state_dest <= IDLE; end if; end case; end if; end process; end architecture RTL;
  10. Выдайте из RAM 13 байт и запишите их в 13 байтных регистров, затем защелкните эти 13 регистров на шину шириной 104 бита с сигналом валидности. Вообще, у производителя должны быть FIFO с настраиваемыми разными размерностями входных и выходных шин (вход - байтный, выход 13-ти байтный). По крайней мере, у Xilinx есть.
  11. Напишите свой контроллер поверх FIFO, который будет определять последовательное заполнение FIFO по 13 байт (пачкой) и выдавать их на выход непрерывной пачкой. В RAM эти 13 байт лежат один словом (word) шириной 104 бита или 13-тью байтными словами? Если одним словом, то не вижу проблем паралельной выгрузки этой пачки на шину. Если 13-тью словами, то нужен перевод из последовательного формата в параллельный (serdes).
  12. Ставьте через 2 регистра, либо через разноклоковое FIFO, либо рукопожатиями (handshake).
  13. https://www.xilinx.com/support/documentatio...xilinx_prom.htm