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

Maverick_

Модератор
  • Постов

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

Весь контент Maverick_


  1. Вы может поделитесь циклограммой(описанием) работы для ПИД регулятора?
  2. Да читал эту информацию, но там описана архитектура и все IP core, но как написать программу и привязать к какому-то конкретному выходу например подать/принять их на/по UART/SPI. Язык С/С++ я знаю для написания программ под Windows( Борланд С, Вижуал С++ ), но есть же разница писать под Windows и для микропроцессора, правда? (т.е. не нужно слов типа учи Си/С++ и будет тебе счастье и ссылки на стандарты Си/С++) Организовывать архитектуру микропроцессора и подсоеденить к нему IP core (переферию) прочитав мануалы(и тот который Вы предлагаете) я разобрался и делаю. Но что далее ... Уверен многие начинали с каких-то простых программ, например как принять байт и передать его обратно прибавив единицу, к полученному байту(слову) по UART, или что-то подобное. Где-то Вы читали как это делать или кто-то Вам рассказал и показал... ПОДЕЛИТЕСЬ ИНФОРМАЦИЕЙ ПОЖАЛУЙСТА!!! МНОГИЕ НА ФОРУМЕ РАБОТАЮТ С ПРОЦЕССОРОМ MicroBlaze ДАВНО - ПОДЕЛИТЕСЬ СВОИМИ ЗНАНИЯМИ, ПОЖАЛУЙСТА!!!
  3. :rolleyes: Требуется любая информация(примеры написания листингов программ, обучающая литература и т.д.) по написанию программ на С/С++ для данного процессора. ЗЫ Необходим быстрый начальный старт. :1111493779:
  4. синтезатор синтезирует то, что ВЫ ему дали на съедение... Мегавизар - генерирует в соответствии с Вашими параметрами(всякие галочки, ввод/выбор различных цифр), которые Вы установили. Ему все равно, что Вы там поставили...(единственно за чем Мегавизард следит так это чтобы не было перебора с ресурсами ПЛИС) Значит Вы некорректно задаете вопрос или не полностью делитесь проблемой !!!почитай Вам будет интересно!!! ЗЫ прежде чем говорить что либо, подумай говорят помогает.
  5. а можете дать ссылку или привести пример ЗЫ желательно на VHDL :rolleyes:
  6. RHnd, посмотрите надеюсь поможет эту информацию Удачи!!
  7. Диаграмма. Блок-схема соединений устройств по SPI Вы должны детектировать задний фронт сигнала SS. Как только изменение произошло соответственно загружать в сдвиговый регистр новые данные. Детектирование производите на частоте на которой работает вся Ваша схема - откуда и куда поступают данные с блока SPI.
  8. Есть вариант проверки в "железе": Подсоедините к Вашему процессору например UART для того чтобы была двунаправленная связь с ПК, и также неплохо бы подсоединить к процессору внешнюю оперативную память (SRAM или DDR или DDR2). Напишите программу для своего процессора, а результаты обработки выдавайте на ПК. Желательно написать несколько таких программ, которые охватывали б различные комбинации команд (чем больше, тем лучше) для процессора. Напишите программу для ПК которая будет верифицировать приходящие данные с Вашего процессора и выдавать команды для Вашего процессора. Например задачами для Вашего процессора могут быть: - сортировка(различные ее варианты) N(исходя из размера оперативной памяти) значений; - математический расчет (например нахождение минимума/максимума какой-то функции); - фурье/вейлет преобразование; Еще бы неплохо бы его зациклить - производить N раз вычислений - для проверки возможных зависаний и тому подобных вещей. Кроме того, неплохо бы проверить работу Вашего процессора на различных тактовых частотах, для нахождения максимальной частоты, на которой Ваш процессор устойчиво работает (правильно производит все вычисления). ЗЫ Если программа для Вашего процессора пишется на ассемблере - желательно написать компилятор для языка верхнего уровння (С, С++). ЗЫ ЗЫ Это только мое субъективное видение. Как Ваш процессор программируется?
  9. Вход SI - последовательный вход данных (на подобии RX в UART'e) Операция конкатенции " & " применяется со всеми одномерными регулярными типами или с их элементами. С помощью этой операции векторы - операнды объединяются в более длинные векторы. Например, выражение "101" & '1' & "10" даст результат "101110". источник Здесь можете почитать что такое SPI
  10. ??? entity shift is port(C, SI, ALOAD : in std_logic; D : in std_logic_vector(7 downto 0); SO : out std_logic); end shift; здесь написано, что вход параллельный (внутри ПЛИС - для соединения с другими блоками), а выход последовательный(идет наружу из ПЛИС)
  11. если внимательно посмотреть, то можно найти 8-bit Shift-Left Register with Positive-Edge Clock, Asynchronous Parallel Load, Serial In, and Serial Out Note For this example XST will not infer SRL16; therefore, the concatenation operator can be used. --VHDL Code --Following is the VHDL code for an 8-bit shift-left register with a positive-edge clock, asynchronous parallel load, serial in, and --serial out. library ieee; use ieee.std_logic_1164.all; entity shift is port(C, SI, ALOAD : in std_logic; D : in std_logic_vector(7 downto 0); SO : out std_logic); end shift; architecture archi of shift is signal tmp: std_logic_vector(7 downto 0); begin process (C, ALOAD, D) begin if (ALOAD='1') then tmp = D; elsif (C'event and C='1') then tmp = tmp(6 downto 0) & SI; end if; end process; SO = tmp(7); end archi; Verilog Code Following is the Verilog code for an 8-bit shift-left register with a positive-edge clock, asynchronous parallel load, serial in, and serial out. module shift (C, ALOAD, SI, D, SO); input C,SI,ALOAD; input [7:0] D; output SO; reg [7:0] tmp; always @(posedge C or posedge ALOAD) begin if (ALOAD) tmp = D; else begin tmp = {tmp[6:0], SI}; end end assign SO = tmp[7]; endmodule
  12. а данные передаются и принимаются параллельно-последовательным регистром и последовательно-параллельным регистром соответственно описание данных регистров можешь взять здесь Это описано управляющая логика.
  13. Попробуйте так: ---------------------------------------------------------------------- -- SPI_CONTROLLER ---------------------------------------------------------------------- -- This entity passes device driver data to and from the SPI_PHY. It -- also initializes the clock to synchronize transmission on the bus. ---------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity SPI_Controller is generic ( data_width : positive := 8 ); port ( clock : in std_logic; -- Device Driver Interface Signals ready : in std_logic; load, done : out std_logic; driver_tx_data : in std_logic_vector(data_width-1 downto 0); driver_rx_data : out std_logic_vector(data_width-1 downto 0); -- SPI Bus Control Signals SCLK : out std_logic; bus_tx_data : out std_logic_vector(data_width-1 downto 0); bus_rx_data : in std_logic_vector(data_width-1 downto 0) -- SS : out std_logic_vector(num_devices-1 downto 0) ); end entity SPI_Controller; architecture mixed of SPI_Controller is TYPE STATE_TYPE IS (wait_for_ready, set_SCLK_high, set_SCLK_low, finished); SIGNAL state, next_cycle: STATE_TYPE; begin bus_tx_data <= driver_tx_data; driver_rx_data <= bus_rx_data; Process_Transmission : process(clock) is variable count : integer; begin IF ready = '0' THEN load <= '1'; SCLK <= '0'; done <= '0'; state <= wait_for_ready; ELSIF rising_edge(clock) THEN CASE state IS -- Load Shift Registers and Prepare for Transmission WHEN wait_for_ready => count := 0; state <= set_SCLK_high; -- Initialize Clock (one extra clock added for loading data) WHEN set_SCLK_high => SCLK <= '1'; -- Check if all data bits have been sent IF count = data_width THEN next_cycle <= finished; -- If data bits remain send the next bit ELSE count := count + 1; next_cycle <= set_SCLK_high; END IF; state <= set_SCLK_low; -- Inform Controller Transmission is complete WHEN finished => done <= '1'; -- Pull SCLK Low to Complete Clock Cycle WHEN set_SCLK_low => SCLK <= '0'; load <= '0'; state <= next_cycle; END CASE; END IF; end process; end architecture mixed; Удачи!
  14. попробуйте подойти к задаче с другой стороны: В школе все мы проходили деление в столбик и по сути что такое деление - вычитание, которое производиться до тех пор пока результат разности делимого и делителя не будет меньше нуля. Другими словами реализуй цифровой автомат, который производит N раз вычитание и проверяет результат вычитания. На выходе получаем результат(частное) деления и остаток от деления. ЗЫ Если не требуется реализации деления за один такт.
  15. Регистрация просто ужас - интересно, как проверяют на реальность вводимых данных. Ничего нет привлекательного.
  16. кажется лучше выкладывать здесь как вложения или как код. ЗЫ тогда нет никаких ограничений для людей, которые могут/хотят Вам помочь
  17. может выложи(напиши) задачу которую нужно Вам реализовать на FPGA. А тут посоветуют с чего начать и как поступить ЗЫ просто совет
  18. При передаче некоторой последовательности данных (около 2 МБ) у нас пропадали данные (около 3%), но чаще всего передача происходила на ура. Предварительный разбор полета показал, что это может быть связано эти данные являются служебными для данного контролера.
  19. посмотрите это и это может поможет
×
×
  • Создать...