Как определить тактовый вход в Xilinx - PullRequest
2 голосов
/ 03 мая 2010

Эй, у меня почти нет опыта работы с Xilinx. У меня есть групповой проект для курса Digital Logic, который должен быть в скором времени, и мой партнер, который должен был позаботиться о симуляции Xilinx, решил взять меня под залог. Вот и я пытаюсь выяснить это в последнюю минуту.

Я разработал синхронный счетчик с использованием нескольких JK-триггеров, и мне нужно определить вход CLK для FJKC.

Я составил правильную схему, но не могу понять, как определить тактовый вход.

Любая помощь приветствуется, и да, это домашнее задание. Я просто не могу найти какую-либо базовую документацию / руководства по xilinx в Интернете, и, честно говоря, у меня нет времени, чтобы изучить всю среду IDE.

Я использую VHDL

Ответы [ 2 ]

2 голосов
/ 20 мая 2010

Представьте, что у вас есть пример устройства следующим образом:

ENTITY SampleDevice IS 
    PORT 
    ( 
        CLK : IN std_logic
    );
END SampleDevice;

Чтобы подключить сигнал CLK к входу реального времени в вашей FPGA, вы должны установить его как Top Module и создать файл UCF с записью:

NET "CLK"  LOC = "P38";

P38 - это тактовый вход в Xilinx Spartan 3 XC3S200.

2 голосов
/ 03 мая 2010

Проверьте этот пример.

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;    -- for the unsigned type

entity counter_example is
generic ( WIDTH : integer := 32);
port (
  CLK, RESET, LOAD : in std_logic;
  DATA : in  unsigned(WIDTH-1 downto 0);  
  Q    : out unsigned(WIDTH-1 downto 0));
end entity counter_example;

architecture counter_example_a of counter_example is
signal cnt : unsigned(WIDTH-1 downto 0);
begin
  process(RESET, CLK) is
  begin
    if RESET = '1' then
      cnt <= (others => '0');
    elsif rising_edge(CLK) then
      if LOAD = '1' then
        cnt <= DATA;
      else
        cnt <= cnt + 1;
      end if;
    end if;
  end process;

  Q <= cnt;

end architecture counter_example_a;

Источник

...