Corrected behavioral view in order to be simulated with Asimut.
This commit is contained in:
parent
a025203d40
commit
8a4b6d3e9d
|
@ -1,20 +1,49 @@
|
||||||
ENTITY ram_mem_data IS
|
entity RAM_MEM_DATA is
|
||||||
PORT (
|
|
||||||
selxi : in BIT;
|
|
||||||
bit0 : in BIT;
|
|
||||||
nbit0 : in BIT;
|
|
||||||
bit1 : in BIT;
|
|
||||||
nbit1 : in BIT;
|
|
||||||
vdd : in BIT;
|
|
||||||
vss : in BIT
|
|
||||||
);
|
|
||||||
END ram_mem_data;
|
|
||||||
|
|
||||||
ARCHITECTURE VBE OF ram_mem_data IS
|
port
|
||||||
|
(
|
||||||
|
SELXI : in bit ;
|
||||||
|
BIT0 : inout wor_bit bus;
|
||||||
|
NBIT0 : inout wor_bit bus;
|
||||||
|
BIT1 : inout wor_bit bus;
|
||||||
|
NBIT1 : inout wor_bit bus;
|
||||||
|
VDD : in bit ;
|
||||||
|
VSS : in bit
|
||||||
|
);
|
||||||
|
|
||||||
BEGIN
|
end RAM_MEM_DATA;
|
||||||
ASSERT (vdd and not (vss))
|
|
||||||
REPORT "power supply is missing on ram_mem_data"
|
architecture vbe of RAM_MEM_DATA is
|
||||||
SEVERITY WARNING;
|
|
||||||
|
signal LATCH0 : reg_bit register;
|
||||||
|
signal LATCH1 : reg_bit register;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
assert (VDD ='1' and VSS = '0')
|
||||||
|
report "power supply is missing on ram_mem_data"
|
||||||
|
severity WARNING;
|
||||||
|
|
||||||
|
WRITE_0 : BLOCK ((SELXI and (BIT0 xor NBIT0)) = '1')
|
||||||
|
begin
|
||||||
|
LATCH0 <= guarded BIT0;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
WRITE_1 : BLOCK ((SELXI and (BIT1 xor NBIT1)) = '1')
|
||||||
|
begin
|
||||||
|
LATCH1 <= guarded BIT1;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
READ_0 : BLOCK ((SELXI and not SELXI'STABLE) = '1')
|
||||||
|
begin
|
||||||
|
BIT0 <= guarded LATCH0;
|
||||||
|
NBIT0 <= guarded not LATCH0;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
READ_1 : BLOCK ((SELXI and not SELXI'STABLE) = '1')
|
||||||
|
begin
|
||||||
|
BIT1 <= guarded LATCH1;
|
||||||
|
NBIT1 <= guarded not LATCH1;
|
||||||
|
end block;
|
||||||
|
|
||||||
END;
|
END;
|
||||||
|
|
|
@ -1,27 +1,70 @@
|
||||||
ENTITY ram_sense_data IS
|
entity RAM_SENSE_DATA is
|
||||||
PORT (
|
|
||||||
bit0 : in BIT;
|
|
||||||
nbit0 : in BIT;
|
|
||||||
bit1 : in BIT;
|
|
||||||
nbit1 : in BIT;
|
|
||||||
ad0x : in BIT;
|
|
||||||
nad0x : in BIT;
|
|
||||||
sensex : in BIT;
|
|
||||||
nsensex : in BIT;
|
|
||||||
prechx : in BIT;
|
|
||||||
writex : in BIT;
|
|
||||||
din : in BIT;
|
|
||||||
dout : out BIT;
|
|
||||||
vdd : in BIT;
|
|
||||||
vss : in BIT
|
|
||||||
);
|
|
||||||
END ram_sense_data;
|
|
||||||
|
|
||||||
ARCHITECTURE VBE OF ram_sense_data IS
|
port
|
||||||
|
(
|
||||||
|
bit0 : inout wor_bit bus;
|
||||||
|
Nbit0 : inout wor_bit bus;
|
||||||
|
bit1 : inout wor_bit bus;
|
||||||
|
Nbit1 : inout wor_bit bus;
|
||||||
|
AD0X : in bit ;
|
||||||
|
NAD0X : in bit ;
|
||||||
|
SENSEX : in bit ;
|
||||||
|
NSENSEX : in bit ;
|
||||||
|
PRECHX : in bit ;
|
||||||
|
WRITEX : in bit ;
|
||||||
|
DIN : in bit ;
|
||||||
|
DOUT : out mux_bit bus;
|
||||||
|
VDD : in bit ;
|
||||||
|
VSS : in bit
|
||||||
|
);
|
||||||
|
|
||||||
BEGIN
|
end RAM_SENSE_DATA;
|
||||||
ASSERT (vdd and not (vss))
|
|
||||||
REPORT "power supply is missing on ram_sense_data"
|
|
||||||
SEVERITY WARNING;
|
|
||||||
|
|
||||||
END;
|
architecture vbe of RAM_SENSE_DATA is
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
assert (VDD = '1' and VSS = '0')
|
||||||
|
report "power supply is missing on ram_sense_data"
|
||||||
|
severity WARNING;
|
||||||
|
|
||||||
|
assert ((AD0X xor NAD0X ) = '1')
|
||||||
|
report "conflicting ad0x / nad0x in ram_sense_data"
|
||||||
|
severity WARNING;
|
||||||
|
|
||||||
|
assert ((SENSEX xor NSENSEX) = '1')
|
||||||
|
report "conflicting sensex / nsensex in ram_sense_data"
|
||||||
|
severity WARNING;
|
||||||
|
|
||||||
|
WRITE_0 : block (NAD0X = '1' and WRITEX = '1')
|
||||||
|
begin
|
||||||
|
BIT0 <= guarded DIN;
|
||||||
|
NBIT0 <= guarded not DIN;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
WRITE_1 : block (AD0X = '1' and WRITEX = '1')
|
||||||
|
begin
|
||||||
|
BIT1 <= guarded DIN;
|
||||||
|
NBIT1 <= guarded not DIN;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
SENSE_0 : block (PRECHX = '0' and WRITEX = '0' and (BIT0 xor NBIT0) = '1')
|
||||||
|
begin
|
||||||
|
BIT0 <= guarded BIT0 ;
|
||||||
|
NBIT0 <= guarded NBIT0;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
SENSE_1 : block (PRECHX = '0' and WRITEX = '0' and (BIT1 xor NBIT1) = '1')
|
||||||
|
begin
|
||||||
|
BIT1 <= guarded BIT1 ;
|
||||||
|
NBIT1 <= guarded NBIT1;
|
||||||
|
end block;
|
||||||
|
|
||||||
|
DATA_OUT : block (SENSEX = '1')
|
||||||
|
begin
|
||||||
|
with AD0X select
|
||||||
|
DOUT <= guarded bit0 when '0',
|
||||||
|
bit1 when '1';
|
||||||
|
end block;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
Loading…
Reference in New Issue