як синхронізувати кілька операцій на вектор (сигнал)

S

s3034585

Guest
привіт хлопці
У мене є dought про те, як виконати декілька операцій на вектор, який оголошений як сигнал в архітектурі.

надати уявлення код наступним чином;

якщо (clk'event і CLK = '1 '), то
якщо (навантаження = '0 'і load_r = '1'), то
R3 (22) <= r1 (1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Прохолодно" border="0" />

XOR R2 (21) XOR ref_vec (63);
R3 <= R3 (21 downto 0) і '0 ';
ELSIF (С3 = c1) або (С3 = С2), то
R3 (22) <= r1 (1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Прохолодно" border="0" />

XOR R2 (21) XOR ref_vec (63);
R3 <= R3 (21 downto 0) і '0 ';
R3 (2) <= х Хог у;
кінець, якщо;

Я знаю, що не будуть працювати належним чином, тому що я маю на увазі нове значення в сигнал ще до його оновлення, так як це сигнал.Я хочу, щоб ці операції perfrom один такт, так що це кращий спосіб зробити це.becaues Є 2 лівій регістри зсуву та які оновлюються разом з R3 в тому ж такті.а тепер деякі Крім операцій повинно бути зроблено на R3 як я встиг зробити в той же цикл, так що в синхронізації з іншими регістрами ....якщо потрібно додаткове роз'яснення, будь ласка, дайте мені знати.

заранее спасибо за вашу допомогу.
тама

 
Ви робите твердження:
R3 (22) <= r1 (1 XOR R2 (21) XOR ref_vec (63);
R3 <= R3 (21 downto 0) і '0 ';

якщо К3 22 .. 0

то потрібно робити

R3 (22) <= r1 (1 XOR R2 (21) XOR ref_vec (63);
R3 (21 downto 0) <= Г3 (22 downto 1);
carry_out <= R3 (0); - якщо вам це потрібно.
- І ось у вас є правильний шлях регістр зсуву

 
Або просто зробити це в один рядок:
Код:

R3 <= r1 (1 XOR R2 (21) XOR ref_vec (63) і R3 (22 downto 1);

 
Ви можете також використовувати допоміжні сигнали тримати його по частинах.

Код:

значення1 <= R3 (21 downto 0) і '0 ';

значеніе2 <= (r1 (18) XOR R2 (21) XOR ref_vec (63)) і значення1 (21 downto 0);

value3 <= значеніе2 (22 downto 3) і (х Хог у) і значеніе2 (1 downto 0);процес (CLK)

починати

якщо (clk'event і CLK = '1 '), то

якщо (навантаження = '0 'і load_r = '1'), то

R3 <= value2;

ELSIF (С3 = c1) або (С3 = С2), то

R3 <= value3;

кінець, якщо;

кінець, якщо;

закінчення процесу;

 

Welcome to EDABoard.com

Sponsor

Back
Top