2023-10-09 12:49:11 +02:00
|
|
|
v {xschem version=3.4.4 file_version=1.2
|
|
|
|
|
*
|
|
|
|
|
* This file is part of XSCHEM,
|
|
|
|
|
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
|
|
|
|
|
* simulation.
|
|
|
|
|
* Copyright (C) 1998-2023 Stefan Frederik Schippers
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
}
|
2020-08-08 15:47:34 +02:00
|
|
|
G {
|
|
|
|
|
process(CK, RESET) begin
|
|
|
|
|
if RESET = '1' then
|
|
|
|
|
D <= (others => '0');
|
|
|
|
|
elsif CK'event and CK = '1' and LOAD = '1' then
|
|
|
|
|
D <= DATA_IN;
|
|
|
|
|
end if;
|
|
|
|
|
end process;
|
|
|
|
|
|
|
|
|
|
DATA_OUT <= D after delay;
|
|
|
|
|
}
|
|
|
|
|
V {reg [width-1:0] D;
|
|
|
|
|
|
|
|
|
|
always @(posedge CK or posedge RESET) begin
|
|
|
|
|
if(RESET) begin
|
|
|
|
|
D <= 0;
|
|
|
|
|
end
|
|
|
|
|
else begin
|
|
|
|
|
if(LOAD) begin
|
|
|
|
|
D <= DATA_IN;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
assign #del DATA_OUT=D;
|
|
|
|
|
}
|
|
|
|
|
S {}
|
|
|
|
|
E {}
|
|
|
|
|
C {opin.sym} 440 -230 0 0 {name=p3 lab=DATA_OUT[width-1:0] verilog_type=wire}
|
|
|
|
|
C {ipin.sym} 280 -210 0 0 {name=p2 lab=CK}
|
|
|
|
|
C {ipin.sym} 280 -190 0 0 {name=p4 lab=RESET}
|
|
|
|
|
C {ipin.sym} 280 -250 0 0 {name=p7 lab=DATA_IN[width-1:0]}
|
|
|
|
|
C {ipin.sym} 280 -230 0 0 {name=p1 lab=LOAD}
|
|
|
|
|
C {verilog_timescale.sym} 360 -577.5 0 0 {name=s1 timestep="1ps" precision="1ps" }
|
|
|
|
|
C {title.sym} 160 -30 0 0 {name=l2}
|
|
|
|
|
C {arch_declarations.sym} 360 -350 0 0 { signal d : std_logic_vector(width-1 downto 0);
|
|
|
|
|
}
|
|
|
|
|
C {use.sym} 360 -460 0 0 {------------------------------------------------
|
|
|
|
|
library ieee;
|
|
|
|
|
use ieee.std_logic_1164.all;
|
|
|
|
|
use ieee.numeric_std.all;}
|