Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to insert delay on a Bidirectional bus in VHDL?

Status
Not open for further replies.

ashlesha_vc

Newbie level 1
Joined
Jun 14, 2007
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,291
vhdl bidirectional delay

I need to insert some user defined delay on a bidirectional bus in VHDL. Ho wcan I do this?
I am using a delay inserting module as follows:

library IEEE;
use IEEE.Std_Logic_1164.all;

entity WireDelay is
generic (Delay_g : time);
port
(A : inout Std_Logic;
B : inout Std_Logic
);
end WireDelay;


architecture WireDelay_a of WireDelay is
begin
ABC0_Lbl: process
variable ThenTime_v : time;
begin
wait on A'transaction, B'transaction
until ThenTime_v /= now;
-- Break
wait for Delay_g; -- wire delay
ThenTime_v := now;
A <= 'Z';
B <= 'Z';
wait for 0 ns;

-- Make
A <= B;
B <= A;
end process ABC0_Lbl;
end WireDelay_a;


I am using above module for bidirectional as unidirectional buses also. It doesn't work out. For unidirectional signal suppose connected to port A, it doesn't get transfered properly on port B. Shows some 'Z' on port B at output for a delta delay.
How can I resolve this problem?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top