📄 wash.vho
字号:
-- VHDL netlist for yuanli
-- Date: Sat Apr 19 19:02:18 2008
-- Copyright (c) Lattice Semiconductor Corporation
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGAND4_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A3 : IN std_logic;
A2 : IN std_logic;
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGAND4_yuanli;
ARCHITECTURE behav OF PGAND4_yuanli IS
BEGIN
PROCESS (A3, A2, A1, A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A3 AND A2 AND A1 AND
A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGAND2_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGAND2_yuanli;
ARCHITECTURE behav OF PGAND2_yuanli IS
BEGIN
PROCESS (A1, A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A1 AND A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGAND3_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A2 : IN std_logic;
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGAND3_yuanli;
ARCHITECTURE behav OF PGAND3_yuanli IS
BEGIN
PROCESS (A2, A1, A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A2 AND A1 AND A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGBUFI_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGBUFI_yuanli;
ARCHITECTURE behav OF PGBUFI_yuanli IS
BEGIN
PROCESS (A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGORF76_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A5 : IN std_logic;
A4 : IN std_logic;
A3 : IN std_logic;
A2 : IN std_logic;
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGORF76_yuanli;
ARCHITECTURE behav OF PGORF76_yuanli IS
BEGIN
PROCESS (A5, A4, A3, A2,
A1, A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A5 OR A4 OR A3 OR
A2 OR A1 OR A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGORF75_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A4 : IN std_logic;
A3 : IN std_logic;
A2 : IN std_logic;
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGORF75_yuanli;
ARCHITECTURE behav OF PGORF75_yuanli IS
BEGIN
PROCESS (A4, A3, A2, A1,
A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A4 OR A3 OR A2 OR
A1 OR A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGXOR2_yuanli IS
GENERIC (
TRISE : TIME := 1 ns;
TFALL : TIME := 1 ns
);
PORT (
A1 : IN std_logic;
A0 : IN std_logic;
Z0 : OUT std_logic
);
END PGXOR2_yuanli;
ARCHITECTURE behav OF PGXOR2_yuanli IS
BEGIN
PROCESS (A1, A0)
VARIABLE ZDF : std_logic;
BEGIN
ZDF := A1 XOR A0;
if ZDF ='1' then
Z0 <= transport ZDF after TRISE;
elsif ZDF ='0' then
Z0 <= transport ZDF after TFALL;
else
Z0 <= transport ZDF;
end if;
END PROCESS;
END behav;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY PGDFFR_yuanli IS
GENERIC (
HLCQ : TIME := 1 ns;
LHCQ : TIME := 1 ns;
HLRQ : TIME := 1 ns;
SUD0 : TIME := 0 ns;
SUD1 : TIME := 0 ns;
HOLDD0 : TIME := 0 ns;
HOLDD1 : TIME := 0 ns;
POSC1 : TIME := 0 ns;
POSC0 : TIME := 0 ns;
NEGC1 : TIME := 0 ns;
NEGC0 : TIME := 0 ns;
RECRC : TIME := 0 ns;
HOLDRC : TIME := 0 ns
);
PORT (
RNESET : IN std_logic;
CD : IN std_logic;
CLK : IN std_logic;
D0 : IN std_logic;
Q0 : OUT std_logic
);
END PGDFFR_yuanli;
ARCHITECTURE behav OF PGDFFR_yuanli IS
BEGIN
PROCESS (RNESET, CD, CLK, D0)
variable iQ0 : std_logic;
variable pQ0 : std_logic;
begin
if (CD OR NOT (RNESET)) = '1' then
if NOT (iQ0='0') then
iQ0 := '0';
Q0 <= transport iQ0 after HLRQ;
end if;
elsif (CD OR NOT (RNESET)) = '0' AND CLK= '1' AND CLK'EVENT then
pQ0 := iQ0;
if (D0'EVENT) then
iQ0 := D0'LAST_VALUE;
elsif NOT (D0'EVENT) then
iQ0 := D0;
end if;
if pQ0 = iQ0 then
Q0 <= transport iQ0;
elsif iQ0 = '1' then Q0 <= transport iQ0 after LHCQ;
elsif iQ0 = '0' then Q0 <= transport iQ0 after HLCQ;
else
Q0 <= transport iQ0;
end if;
end if;
END PROCESS;
process(CLK, CD)
begin
if CD'EVENT AND CD='0' AND CLK='1' then
assert (CLK'LAST_EVENT >= HOLDRC)
report("HOLD TIME VIOLAION ON CD (HOLDRC) ")
severity WARNING;
end if;
if CLK'EVENT AND CLK ='1' AND CD ='0' then
assert ( CD'LAST_EVENT >= RECRC)
report("RECOVERY TIME VIOLATION on CD(RECRC) ")
severity WARNING;
end if;
end process;
process(CLK,RNESET)
begin
if RNESET'EVENT AND NOT(RNESET)='0' AND CLK='1' then
assert (CLK'LAST_EVENT >= HOLDRC)
report("HOLD TIME VIOLAION ON RNESET (HOLDRC) ")
severity WARNING;
end if;
if CLK'EVENT AND CLK ='1' AND NOT(RNESET) ='0' then
assert ( RNESET'LAST_EVENT >= RECRC)
report("RECOVERY TIME VIOLATION on RNESET(RECRC) ")
severity WARNING;
end if;
end process;
process(D0, CLK)
variable R_EDGE1 : TIME := 0 ns;
variable R_EDGE0 : TIME := 0 ns;
variable F_EDGE1 : TIME := 0 ns;
variable F_EDGE0 : TIME := 0 ns;
begin
if CLK='1' AND CLK'LAST_VALUE='0' AND NOT(D0'EVENT) then
if D0='1' then
R_EDGE1 := NOW;
assert((R_EDGE1-F_EDGE1) >= NEGC1)
report("NEGATIVE PULSE WIDTH VIOLATION (NEGC1) ON CLK at ")
severity WARNING;
elsif D0='0' then
R_EDGE0 := NOW;
assert((R_EDGE0-F_EDGE0) >= NEGC0)
report("NEGATIVE PULSE WIDTH VIOLATION (NEGC0) ON CLK at ")
severity WARNING;
end if;
end if;
if CLK ='0' AND CLK'LAST_VALUE = '1' AND NOT(D0'EVENT) then
if D0='1' then
F_EDGE1 := NOW;
assert ((F_EDGE1-R_EDGE1) >= POSC1)
report("POSITIVE PULSE WIDTH VIOLATION (POSC1) ON CLK at ")
severity WARNING;
elsif D0='0' then
F_EDGE0 := NOW;
assert ((F_EDGE0-R_EDGE0) >= POSC0)
report("POSITIVE PULSE WIDTH VIOLATION (POSC0) ON CLK at ")
severity WARNING;
end if;
end if;
end process;
process(D0, CLK)
begin
if CLK = '1' AND CLK'EVENT then
if D0='1' then
assert(D0'LAST_EVENT >= SUD1)
report("DATA SET-UP VIOLATION (SUD1) ")
severity WARNING;
elsif D0='0' then
assert(D0'LAST_EVENT >= SUD0)
report("DATA SET-UP VIOLATION (SUD0) ")
severity WARNING;
end if;
end if;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -