Выход VHDL LFSR через разъем платы FPGA SMA
Я недавно начал работать над проектом FPGA для школы, я никогда раньше не работал с VHDL, поэтому я изо всех сил старался собрать свою программу вместе. В целом, моя цель состоит в том, чтобы сделать prbs или LFSR для генерации случайным образом. Мой vhdl-код проверяется в программном обеспечении xilinx ISE и запускается в testbench нормально, но мне нужно прошить проект на плате и подключить осциллограф к одному из разъемов SMA на плате, мой вопрос в том, как я могу перенаправить свои выходы на один разъем SMA на Spartan 6 доска
library IEEE;
use IEEE.std_logic_1164.all;
entity LFSR is
port (
clock : std_logic;
reset : std_logic;
data_out : out std_logic_vector(9 downto 0)
);
end LFSR;
architecture Behavioral of LFSR is
signal lfsr_reg : std_logic_vector(9 downto 0);
begin
process (clock)
variable lfsr_tap : std_logic;
begin
if clock'EVENT and clock='1' then
if reset = '1' then
lfsr_reg <= (others => '1');
else
lfsr_tap := lfsr_reg(6) xor lfsr_reg(9);
lfsr_reg <= lfsr_reg(8 downto 0) & lfsr_tap;
end if;
end if;
end process;
data_out <= lfsr_reg;
end Behavioral;
Теперь я просто хочу переадресовать выход / выходы на разъем SMA, чтобы я мог получить результаты на осциллографе, любая помощь была бы отличной
2 ответа:
Вам просто нужно сопоставить ваш I / Os с фактическими контактами на вашем чипе FPGA. Это делается в файле ограничений (обычно
.ucf
), который вы можете либо редактировать вручную (это просто текст), либо позволить инструменту обрабатывать за вас.В новых инструментах ISE PlanAhead отвечает за это - вы можете открыть его из панели процессов ISE (выберите пользовательские ограничения -> планирование ввода - вывода Pin (PlanAhead)-пост-синтез).
Это открывает PlanAhead и дает вам список I / Os в вашем дизайне (ваш
clock
,reset
иdata_out
). Теперь вам просто нужно сопоставить их с правильными выводами FPGA. Посмотрите в документации по плате, чтобы найти расположение вашего тактового входа, кнопок (для сброса) и разъема SMA.PlanAhead должен создать файл
.ucf
для вас и добавить его в ваш проект. После этого вы можете отредактировать его в Редакторе ISE - это довольно само собой разумеющееся, как только у вас есть некоторое начальное содержание в нем.Кроме того, проверьте это руководство Xilinx (со страницы 100 и далее) для пошаговое руководство.
Ваш SMA-разъем может содержать только один выход, а не шину. Чтобы увидеть MSB вашего LFSR, просто добавьте следующие строки .файл ucf:
NET clock LOC = $PIN; NET reset LOC = $PIN; NET dataout<9> LOC = $PIN; # your SMA output NET dataout<8> LOC = $PIN; NET dataout<7> LOC = $PIN; NET dataout<6> LOC = $PIN; NET dataout<5> LOC = $PIN; NET dataout<4> LOC = $PIN; NET dataout<3> LOC = $PIN; NET dataout<2> LOC = $PIN; NET dataout<1> LOC = $PIN; NET dataout<0> LOC = $PIN;
Смотрите в документации по вашей плате (или схеме) для правильных контактов и добавьте правильные имена контактов в свой .файл ucf. Я предлагаю использовать некоторые светодиоды для остальных выходов dataout.