D-Luxe
Свой-
Постов
334 -
Зарегистрирован
-
Посещение
Весь контент D-Luxe
-
Bit файл Altera
D-Luxe опубликовал тема в Среды разработки - обсуждаем САПРы
Какое расширение имеет файл прошивки ПЛИС в среде Quartus II ??? У Xilinx файл прошивки имеет расширение - *.bit. -
Как в оптике передавать 3 потока данных
D-Luxe опубликовал тема в Форумы по интерфейсам
Как в оптике передавать 3 потока данных: 1) TDM трафик 2) ETHERNET трафик 3) асинхронный канал UART ? Каким способом осуществляется передача ? Как делают умные люди ? Сильно не пинайте. -
Uart Altera
D-Luxe опубликовал тема в Работаем с ПЛИС, области применения, выбор
Есть ли Ip Core для работы по Uart'у в плисах фирмы Altera ??? -
Работа по SFP Altera
D-Luxe опубликовал тема в Работаем с ПЛИС, области применения, выбор
Как осуществляется работа по SFP ( оптическим приемопередатчикам ) в ПЛИСах фирмы Altera ??? Есть ли IP Core для работы по SFP ??? -
Где можно скачать сам IP core Triple Speed Ethernet ??? В интернете не нашел.
-
Поднять Ethernet на ПЛИС Altera
D-Luxe опубликовал тема в Работаем с ПЛИС, области применения, выбор
Подскажите пожалуйста как быстро и эффективно поднять Ethernet на ПЛИС Altera Cyclone 5. Есть ли альтеровские ip core ? Заранее спасибо! -
Компиляция XilinxCoreLib
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Компилирую библиотеки Xilinx Core Lib с помощью утилиты Сompxlib командой . Утилита ругается: В чем может быть дело ? -
Двухчастотное FIFO
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Подскажите реализацию двухчастотного FIFO на VHDL. Заранее спасибо! -
Делитель частоты
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Требуется получить из частоты 33,333,333 Гц - частоту 5 МГц. Подскажите реализацию на VHDL делителя частоты. Заранее спасибо! -
XilinxCoreLib для Aldec
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Подскажите где можно найти последнюю версию XilinxCoreLib для Aldec Active HDL ??? Заранее спасибо! -
Работа по двум фронтам
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Подскажите как правильно реализовать нижеописанную схему. Отказывается работать нормально. Проблема в том что внутри процесса два условия: if( Clk='1' and Clk'event ) then и if ( x2_clk='0' and x2_clk'event ) then . По сути двухфронтовая схема. Как такая схема будет вести себя ??? Моделироваться правильно отказывается. process( Clk ) begin if( Clk='1' and Clk'event ) then case ReceiveSReg is when WaitStartBit => if( x16_clk='1' ) then if( RX='0' and StartBitCntEnable='0' and StartBitFound='0' ) then StartBitCntEnable <= '1'; StartBitCnt <= StartBitCnt + '1'; end if; if( RX='1' and StartBitCntEnable='1' ) then StartBitCntEnable <= '0'; StartBitCnt <= ( others => '0' ); end if; if( RX='0' and (StartBitCntEnable='1' or StartBitFound='1') ) then StartBitCnt <= StartBitCnt + '1'; -- Считаем такты x16 end if; if( RX='0' and StartBitCntEnable='1' and StartBitCnt > "1000" ) then -- Нашли 8 бит нулевых StartBitCntEnable <= '0'; StartBitFound <= '1'; end if; if( StartBitCnt = "1111" ) then StartBitFound <= '0'; ReceiveSReg <= DataReceive; end if; end if; when DataReceive => if ( x2_clk='0' and x2_clk'event ) then -- По спадающему фронту Counter <= Counter + '1'; end if; if( x2_clk='1' and x2_clk'event ) then -- По нарастающему защелкиваем данные RX_DataIn(CONV_INTEGER( Counter )) <= RX; end if; if( Counter="111" and x2_clk='0' and x2_clk'event ) then -- 8 бит сосчитано ReceiveSReg <= ParityBitReceive; end if; when ParityBitReceive => if ( x2_clk='0' and x2_clk'event ) then ReceiveSReg <= StopBitReceive; end if; when StopBitReceive => if ( x2_clk='0' and x2_clk'event ) then ReceiveSReg <= WaitStartBit; end if; when others => ReceiveSReg <= WaitStartBit; end case; end if; end process; Заранее спасибо!! -
Перевод бит / сек в Герцы
D-Luxe опубликовал тема в В помощь начинающему
Подскажите как перевести частоту передачи данных, выраженную в битах в секунду в Герцы ??? ( бит/сек - Гц ) Заранее спасибо! -
Вопрос в алдеке 6.3 подключаю либу proccommon 3.0 не хочет подключаться. # Error: COMP96_0059: muxf_struct_f.vhd : (134, 1): Library "proc_common_v3_00_a" not found. # Error: COMP96_0078: muxf_struct_f.vhd : (135, 9): Unknown identifier "proc_common_v3_00_a". # Error: COMP96_0055: muxf_struct_f.vhd : (135, 9): Cannot find referenced context element. # Error: COMP96_0078: muxf_struct_f.vhd : (136, 9): Unknown identifier "proc_common_v3_00_a". # Error: COMP96_0055: muxf_struct_f.vhd : (136, 9): Cannot find referenced context element. В чем дело ?
-
Спасибо помогло. Вот еще вопросик. ERROR:NgdBuild:604 - logical block
-
Proc common 3.0 problem
D-Luxe опубликовал тема в Работаем с ПЛИС, области применения, выбор
Работаю в среде ISE 14.1. Подключаю файлик dynshreg_f.vhd. Error the next: Хотя proc_common_pkg имеется в либах. В чем фишка ? В среде ISE 14.1 никак не фигурирует. -
Требуется критика проекта ( Uart )
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Поставлена задача реализовать Uart. library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library UNISIM; use UNISIM.VCOMPONENTS.all; entity Uart is generic ( C_SPLB_CLK_FREQ_HZ :integer := 125000000; C_BAUDRATE :integer := 115200; C_DATA_WIDTH :integer := 8; C_PARITY_WIDTH :integer := 1; C_REMAINDER_X1 : integer := 1085; C_REMAINDER_X16 : integer := 18 ); port ( sys_clk_in_p : in std_logic; -- 33 333 333 Hz sys_clk_in_n : in std_logic; -- 33 333 333 Hz fpga_0_RS232_Uart_1_RX_pin : in std_logic; fpga_0_RS232_Uart_1_TX_pin : out std_logic; debug1 : out std_logic; debug2 : out std_logic; debug3 : out std_logic; debug4 : out std_logic; debug5 : out std_logic; debug6 : out std_logic ); end Uart; architecture Behavioral of Uart is signal x16_clk : std_logic; signal x1_clk : std_logic; signal DataEmpty : std_logic; component UartReceiver is port ( sys_clk : in std_logic; x16_clk : in std_logic; x1_clk : in std_logic; fpga_0_RS232_Uart_1_RX_pin : in std_logic; DataOut : out std_logic_vector(7 downto 0); DataWr : out std_logic; debug1 : out std_logic; debug2 : out std_logic; debug3 : out std_logic; debug4 : out std_logic; debug5 : out std_logic ); end component; component UartTransmitter is port ( sys_clk : in std_logic; -- 33 333 333 Hz x1_clk : in std_logic; -- 115200 Kbit / sec DataIn : in std_logic_vector(7 downto 0); DataWr : in std_logic; DataEmpty : out std_logic; fpga_0_RS232_Uart_1_TX_pin : out std_logic; debug1 : out std_logic; debug2 : out std_logic; debug3 : out std_logic; debug4 : out std_logic; debug5 : out std_logic ); end component; component baudrate is generic ( C_RATIO : integer ); port ( Clk : in std_logic; ClkEnable : in std_logic; EN_16x_Baud : out std_logic ); end component; component UartReceiverOld is port ( sys_clk : in std_logic; x16_clk : in std_logic; fpga_0_RS232_Uart_1_RX_pin : in std_logic; Fifo_din : out std_logic_vector(7 downto 0); Fifo_wr_en : out std_logic; DEBUG_Pin_1 : out std_logic; DEBUG_Pin_2 : out std_logic; DEBUG_Pin_3 : out std_logic; DEBUG_Pin_4 : out std_logic; DEBUG_Pin_5 : out std_logic; DEBUG_Pin_6 : out std_logic ); end component; signal DataOut : std_logic_vector(0 to C_DATA_WIDTH - 1); signal DataWr : std_logic; signal Counter : std_logic_vector(C_DATA_WIDTH-1 downto 0); signal sys_clk : std_logic; signal Fifo_wr_en_i : std_logic; signal debug1_pin : std_logic; signal debug2_pin : std_logic; signal debug3_pin : std_logic; signal debug4_pin : std_logic; signal debug5_pin : std_logic; signal debug_pin1 : std_logic; signal debug_pin2 : std_logic; signal debug_pin3 : std_logic; signal debug_pin4 : std_logic; signal debug_pin5 : std_logic; signal debugpin1 : std_logic; signal debugpin2 : std_logic; signal debugpin3 : std_logic; signal debugpin4 : std_logic; signal debugpin5 : std_logic; signal debugpin6 : std_logic; signal DEBUG_Pin_1 : std_logic; signal DEBUG_Pin_2 : std_logic; signal DEBUG_Pin_3 : std_logic; signal DEBUG_Pin_4 : std_logic; signal DEBUG_Pin_5 : std_logic; signal DEBUG_Pin_6 : std_logic; signal x1_clk_enable : std_logic; signal x1_clk_en : std_logic; signal Uart_1_TX_pin : std_logic; signal Fifo_din : std_logic_vector(7 downto 0); signal Fifo_wr_en : std_logic; begin debug1 <= fpga_0_RS232_Uart_1_RX_pin; debug2 <= DEBUG_Pin_2; debug3 <= DEBUG_Pin_3; debug4 <= DEBUG_Pin_4; debug5 <= DEBUG_Pin_5; debug6 <= DEBUG_Pin_6; -- debug1 <= '1' when ( ReceiveSReg=StartBitReceive ) else '0'; -- debug2 <= '1' when ( ReceiveSReg=DataReceive ) else '0'; -- debug3 <= '1' when ( ReceiveSReg=ParityBitReceive ) else '0'; -- debug4 <= ShiftReg( CONV_INTEGER( Counter ) ); SZD_IBUFDS_inst : IBUFDS generic map ( DIFF_TERM => TRUE, -- Differential Termination IBUF_DELAY_VALUE => "0", -- Specify the amount of added input delay for buffer, -- "0"-"12" IFD_DELAY_VALUE => "AUTO", -- Specify the amount of added delay for input register, -- "AUTO", "0"-"6" IOSTANDARD => "DEFAULT" ) port map ( O => sys_clk, -- Buffer output I => sys_clk_in_p, -- Diff_p buffer input (connect directly to top-level port) IB => sys_clk_in_n -- Diff_n buffer input (connect directly to top-level port) ); -- 8670 us ( 115200 ) BAUD_TRASNMIT_X1_RATE_I : baudrate generic map ( C_RATIO => C_REMAINDER_X1 ) port map ( Clk => sys_clk, ClkEnable => '1', EN_16x_Baud => x1_clk ); -- 540 us ( 1 843 200 ) BAUD_X16_RATE_I : baudrate generic map ( C_RATIO => C_REMAINDER_X16 ) port map ( Clk => sys_clk, ClkEnable => '1', EN_16x_Baud => x16_clk ); UartReceiverOld_i : UartReceiverOld port map ( sys_clk => sys_clk, x16_clk => x16_clk, fpga_0_RS232_Uart_1_RX_pin => fpga_0_RS232_Uart_1_RX_pin, Fifo_wr_en => Fifo_wr_en, Fifo_din => Fifo_din, DEBUG_Pin_1 => DEBUG_Pin_1, DEBUG_Pin_2 => DEBUG_Pin_2, DEBUG_Pin_3 => DEBUG_Pin_3, DEBUG_Pin_4 => DEBUG_Pin_4, DEBUG_Pin_5 => DEBUG_Pin_5, DEBUG_Pin_6 => DEBUG_Pin_6 ); -- process( ) -- begin -- -- end process; -- process( sys_clk, x1_clk ) -- begin -- if( sys_clk='1' and sys_clk'event and x1_clk='1' ) then -- if( DataEmpty='1' ) then -- DataWr <= '1'; -- Counter <= Counter + '1'; -- elsif( DataEmpty='0' ) then -- DataWr <= '0'; -- Counter <= Counter; -- end if; -- end if; -- end process; -- UART_TRANSMIT : UartTransmitter -- Сигнал записи port map ( sys_clk => sys_clk, x1_clk => x1_clk, DataIn => Fifo_din, DataWr => Fifo_wr_en, -- фича DataEmpty => DataEmpty, fpga_0_RS232_Uart_1_TX_pin => Uart_1_TX_pin, debug1 => debug1_pin, debug2 => debug2_pin, debug3 => debug3_pin, debug4 => debug4_pin, debug5 => debug5_pin ); fpga_0_RS232_Uart_1_TX_pin <= Uart_1_TX_pin; -- fpga_0_RS232_Uart_1_TX_pin <= Uart_1_TX_pin; end Behavioral; library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity UartReceiver is port ( sys_clk : in std_logic; -- 33 333 333 Hz x16_clk : in std_logic; x1_clk : in std_logic; fpga_0_RS232_Uart_1_RX_pin : in std_logic; DataOut : out std_logic_vector(7 downto 0); DataWr : out std_logic; debug1 : out std_logic; debug2 : out std_logic; debug3 : out std_logic; debug4 : out std_logic; debug5 : out std_logic; debug6 : out std_logic ); end UartReceiver; library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library UNISIM; use UNISIM.VCOMPONENTS.all; entity UartReceiverOld is generic ( -- 8640 us ( 115200 Kbit / sec ) C_X1_DIVIDER_RATE : integer := 1085; -- 540 us ( 7200 Kbit / sec ) C_X16_DIVIDER_RATE : integer := 18 ); port ( sys_clk : in std_logic; x16_clk : in std_logic; fpga_0_RS232_Uart_1_RX_pin : in std_logic; Fifo_wr_en : out std_logic; Fifo_din : out std_logic_vector(7 downto 0); DEBUG_Pin_1 : out std_logic; DEBUG_Pin_2 : out std_logic; DEBUG_Pin_3 : out std_logic; DEBUG_Pin_4 : out std_logic; DEBUG_Pin_5 : out std_logic; DEBUG_Pin_6 : out std_logic ); end UartReceiverOld; architecture UartReceiverOld of UartReceiverOld is type ReceiveStates is (StartBitReceive, DataReceive, ParityBitReceive, StopBitReceive); signal ReceiveSReg: ReceiveStates; component baudrate is generic ( C_RATIO : integer ); port ( Clk : in std_logic; ClkEnable : in std_logic; EN_16x_Baud : out std_logic ); end component; signal Counter : std_logic_vector(2 downto 0) := "000"; signal find_first_byte_cnt : std_logic_vector(3 downto 0) := ( others => '0' ); signal ShiftReg : std_logic_vector(7 downto 0) := X"00"; signal x1_clk : std_logic; signal DataOut : std_logic_vector(7 downto 0) := ( others => '0' ); signal DataWr : std_logic := '0'; signal x1_clk_enable : std_logic; --signal Fifo_din : std_logic_vector(7 downto 0); --signal Fifo_wr_en : std_logic; signal StartBitFound : std_logic; begin BAUD_X1_RATE_I : baudrate generic map ( C_RATIO => C_X1_DIVIDER_RATE ) port map ( Clk => sys_clk, ClkEnable => x1_clk_enable, EN_16x_Baud => x1_clk ); StartBitFound <= not( fpga_0_RS232_Uart_1_RX_pin ); process( sys_clk ) begin if( sys_clk='1' and sys_clk'event ) then case ReceiveSReg is when StartBitReceive => if( x16_clk='1' and StartBitFound='1' and find_first_byte_cnt < "1111" ) then find_first_byte_cnt <= find_first_byte_cnt + '1'; elsif( x16_clk='1' and StartBitFound='1' and find_first_byte_cnt = "1111" ) then Counter <= "000"; ShiftReg <= X"00"; x1_clk_enable <= '1'; ReceiveSReg <= DataReceive; end if; when DataReceive => if( x1_clk='1' ) then if( Counter = "111" ) then ShiftReg( CONV_INTEGER( Counter ) ) <= fpga_0_RS232_Uart_1_RX_pin; ReceiveSReg <= ParityBitReceive; elsif ( Counter < "111" ) then ShiftReg( CONV_INTEGER( Counter ) ) <= fpga_0_RS232_Uart_1_RX_pin; Counter <= Counter + '1'; end if; end if; when ParityBitReceive => if( x1_clk='1' ) then Fifo_din <= ShiftReg; Fifo_wr_en <= '1'; ReceiveSReg <= StopBitReceive; end if; when StopBitReceive => if( x1_clk='1' ) then Fifo_wr_en <= '0'; x1_clk_enable <= '0'; find_first_byte_cnt <= ( others => '0' ); ReceiveSReg <= StartBitReceive; end if; when others => ReceiveSReg <= StartBitReceive; end case; end if; end process; DEBUG_Pin_1 <= fpga_0_RS232_Uart_1_RX_pin; DEBUG_Pin_2 <= x1_clk_enable; DEBUG_Pin_3 <= '1' when ( ReceiveSReg=StartBitReceive ) else '0'; DEBUG_Pin_4 <= '1' when ( ReceiveSReg=DataReceive ) else '0'; DEBUG_Pin_5 <= '1' when ( ReceiveSReg=ParityBitReceive ) else '0'; DEBUG_Pin_6 <= '1' when ( ReceiveSReg=StopBitReceive ) else '0'; end UartReceiverOld; library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity UartTransmitter is port ( sys_clk : in std_logic; -- 33 333 333 Hz x1_clk : in std_logic; -- 115200 Kbit / sec DataIn : in std_logic_vector(7 downto 0); DataWr : in std_logic; DataEmpty : out std_logic; fpga_0_RS232_Uart_1_TX_pin : out std_logic; DEBUG1 : out std_logic; DEBUG2 : out std_logic; DEBUG3 : out std_logic; DEBUG4 : out std_logic; DEBUG5 : out std_logic ); end UartTransmitter; architecture UartTransmitter of UartTransmitter is component baudrate is generic ( C_RATIO : integer ); port ( Clk : in std_logic; EN_16x_Baud : out std_logic ); end component; type TransmitStates is (StartBitTransmit, DataTransmit, ParityBitTransmit, StopBitTransmit); signal TransmitSReg: TransmitStates; signal DataCounter : std_logic_vector(7 downto 0); signal Counter : std_logic_vector(2 downto 0) := "000"; signal ShiftReg : std_logic_vector(7 downto 0); begin DEBUG1 <= '1' when ( TransmitSReg=StartBitTransmit ) else '0'; DEBUG2 <= '1' when ( TransmitSReg=DataTransmit ) else '0'; DEBUG3 <= '1' when ( TransmitSReg=ParityBitTransmit ) else '0'; DEBUG4 <= '1' when ( TransmitSReg=StopBitTransmit ) else '0'; DEBUG5 <= '1'; DataEmpty <= '1' when ( TransmitSReg=StopBitTransmit ) else '0'; -- 11 cycles process( sys_clk, x1_clk ) begin if( sys_clk='1' and sys_clk'event and x1_clk='1' ) then case TransmitSReg is when StartBitTransmit => ShiftReg <= DataIn; TransmitSReg <= DataTransmit; when DataTransmit => Counter <= Counter + '1'; if( Counter="111" ) then TransmitSReg <= ParityBitTransmit; end if; when ParityBitTransmit => TransmitSReg <= StopBitTransmit; when StopBitTransmit => if( DataWr='1' ) then TransmitSReg <= StartBitTransmit; end if; -- when others => -- TransmitSReg <= WaitData; end case; end if; end process; fpga_0_RS232_Uart_1_TX_pin <= '0' when ( TransmitSReg = StartBitTransmit ) else ShiftReg( CONV_INTEGER( Counter ) ) when ( TransmitSReg = DataTransmit ) else '1' when ( TransmitSReg = ParityBitTransmit ) else '1' when ( TransmitSReg = StopBitTransmit ) else '1'; end UartTransmitter; Требуется критика со стороны. В проекте есть ошибка данные защелкиваются некорректно. Конкретно вот в этом кусе кода есть ошибка, поэтому данные защелкиваются некорректно. if( x1_clk='1' ) then if( Counter = "111" ) then ShiftReg( CONV_INTEGER( Counter ) ) <= fpga_0_RS232_Uart_1_RX_pin; ReceiveSReg <= ParityBitReceive; elsif ( Counter < "111" ) then ShiftReg( CONV_INTEGER( Counter ) ) <= fpga_0_RS232_Uart_1_RX_pin; Counter <= Counter + '1'; end if; -
Uart Реализация
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Поставлена задача реализовать UART. Вопрос в том, как принять входные данные. Один из вариантов - считать стартовый бит до 8 тактов 16 кратной частотой, после этого защелкивать данные по однократной частоте. Правильно ли эта реализация ? -
XilinxCoreLib fifo_generator_62
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Добрый день! С помощью Coregen 7.2 генерирую fifo_generator_62. Генерация Fifo проходит успешно. Затык в том, что оно не моделируется в среде Aldec 6.3. Варнинг следующий - Unknown Identifirer fifo_generator_62. При компиляции Compile All команды Aldec вываливается варнинг. В чем может быть дело ? XilinxCoreLib продключено. -
Моргание светодиодом на VHDL
D-Luxe опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Приведите идеи моргания светодиодом на языке VHDL. -
MSB first.
-
В бин файле байты не перевернуты. Так написано в даташите.
-
Еще непонятно почему размер bin файла - 905,328. Хотя из данных в Virtex-4 Guide, должно быть - 905,280. 2dsmv Подскажите вы bin файл используете, сгенерированный EDK?
-
Схема передатчика С1-ФЛ-БИ
D-Luxe ответил D-Luxe тема в Форумы по интерфейсам
Желательно принципиальную. В общем буду благодарен за любые схемы .. -
Схема передатчика С1-ФЛ-БИ
D-Luxe опубликовал тема в Форумы по интерфейсам
Нужна схема передатчика стыка С1-ФЛ-БИ (стуктурная и принципиальная). Подскажите где можно взять?