w11 - vhd 0.794
W11 CPU core and support modules
Loading...
Searching...
No Matches
dcm_sfs_unisim_s3.vhd
Go to the documentation of this file.
1-- $Id: dcm_sfs_unisim_s3.vhd 1181 2019-07-08 17:00:50Z mueller $
2-- SPDX-License-Identifier: GPL-3.0-or-later
3-- Copyright 2010-2011 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4--
5------------------------------------------------------------------------------
6-- Module Name: dcm_sfs - syn
7-- Description: DCM for simple frequency synthesis; SPARTAN-3 version
8-- Direct instantiation of Xilinx UNISIM primitives
9--
10-- Dependencies: -
11-- Test bench: -
12-- Target Devices: generic Spartan-3A,-3E
13-- Tool versions: xst 12.1-14.7; ghdl 0.29-0.31
14--
15-- Revision History:
16-- Date Rev Version Comment
17-- 2011-11-17 426 1.0.3 rename dcm_sp_sfs -> dcm_sfs, SPARTAN-3 version
18-- 2011-11-10 423 1.0.2 add FAMILY generic, SPARTAN-3 support
19-- 2010-11-12 338 1.0.1 drop SB_CLK generic; allow DIV=1,MUL=1 without DCM
20-- 2010-11-07 337 1.0 Initial version
21------------------------------------------------------------------------------
22
23library ieee;
24use ieee.std_logic_1164.all;
25
26library unisim;
27use unisim.vcomponents.ALL;
28
29use work.slvtypes.all;
30
31entity dcm_sfs is -- DCM for simple frequency synthesis
32 generic (
33 CLKFX_DIVIDE : positive := 1; -- FX clock divide (1-32)
34 CLKFX_MULTIPLY : positive := 1; -- FX clock multiply (2-32) (1->no DCM)
35 CLKIN_PERIOD : real := 20.0); -- CLKIN period (def is 20.0 ns)
36 port (
37 CLKIN : in slbit; -- clock input
38 CLKFX : out slbit; -- clock output (synthesized freq.)
39 LOCKED : out slbit -- dcm locked
40 );
41end dcm_sfs;
42
43
44architecture syn of dcm_sfs is
45
46begin
47
48 assert (CLKFX_DIVIDE=1 and CLKFX_MULTIPLY=1) or CLKFX_MULTIPLY>=2
49 report "assert((FX_DIV=1 and FX_MULT)=1 or FX_MULT>=2"
50 severity failure;
51
52 DCM0: if CLKFX_DIVIDE=1 and CLKFX_MULTIPLY=1 generate
53 CLKFX <= CLKIN;
54 LOCKED <= '1';
55 end generate DCM0;
56
57 DCM1: if CLKFX_MULTIPLY>=2 generate
58
59 DCM : dcm
60 generic map (
61 CLK_FEEDBACK => "NONE",
62 CLKFX_DIVIDE => CLKFX_DIVIDE,
63 CLKFX_MULTIPLY => CLKFX_MULTIPLY,
64 CLKIN_DIVIDE_BY_2 => false,
65 CLKIN_PERIOD => CLKIN_PERIOD,
66 CLKOUT_PHASE_SHIFT => "NONE",
67 DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS",
68 DSS_MODE => "NONE")
69 port map (
70 CLKIN => CLKIN,
71 CLKFX => CLKFX,
72 LOCKED => LOCKED
73 );
74
75 end generate DCM1;
76
77end syn;
CLKFX_DIVIDE positive := 1
in CLKIN slbit
CLKFX_MULTIPLY positive := 1
out LOCKED slbit
CLKIN_PERIOD real := 20.0
out CLKFX slbit
std_logic slbit
Definition: slvtypes.vhd:30