Запустите снова входные сигналы, когда rst = '1' - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь сбросить значения входов в цепи, когда начинается сигнал сброса.

Я пишу на Vivado от Xilinx в VHLD.

signal Xin : signed(4 downto 0) := (others => '0');

...

   stim_process: process
   begin
        Xin <= to_signed(1030,5); wait for clk_period;
        Xin <= to_signed(1050,5); wait for clk_period;
        Xin <= to_signed(1040,5); wait for clk_period;
        Xin <= to_signed(1080,5); wait for clk_period;
        Xin <= to_signed(1100,5); wait for clk_period;
        Xin <= to_signed(0,5);    wait until Rst= '1';
        Xin <= to_signed(1030,5); wait for clk_period;
        Xin <= to_signed(1050,5); wait for clk_period;
        Xin <= to_signed(1040,5); wait for clk_period;
        Xin <= to_signed(1080,5); wait for clk_period;
        Xin <= to_signed(1100,5); wait for clk_period;
        Xin <= to_signed(0,5);            
        wait;
   end process; 

Таким образом, отправляя сигнал сброса после того, как ВСЕ входы были назначены, я получаю желаемый результат.

Проблемы:

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

1 Ответ

0 голосов
/ 14 января 2019

Перепишите его, чтобы сохранить информацию о месте в последовательности в виде информации о состоянии, например:

process (rst, clk) is
begin
  if rst = '1' then
    State <= 0;
    Xin <= to_signed(1030,5);
  elsif rising_edge(clk) then
    case State is
      when 0      => Xin <= to_signed(1030,5);
      when 1      => Xin <= to_signed(1050,5);
      when 2      => Xin <= to_signed(1040,5);
      when 3      => Xin <= to_signed(1080,5);
      when 4      => Xin <= to_signed(1100,5);
      when others => Xin <= to_signed(0,5);
    end case;
    State <= State + 1;
  end if;
end process;

Сброс в rst может, таким образом, вступить в силу немедленно и повториться.

Могут потребоваться незначительные обновления вышеперечисленного в зависимости от того, какое время вы хотите, но код в соответствии с этим должен сделать эту работу.

Btw. to_signed преобразование значения 1030 в 5-битное Xin выглядит странным, поскольку для значения 1030 требуется не менее 12 бит для подписанного представления.

...