Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
SPEC7
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
5
Issues
5
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
SPEC7
Commits
71b16f5b
Commit
71b16f5b
authored
Jan 18, 2022
by
Peter Jansweijer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use ODIV2 instead of a separate div2 FF
parent
bba65ed6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
143 additions
and
149 deletions
+143
-149
xwrc_board_spec7.vhd
hdl/board/xwrc_board_spec7.vhd
+127
-133
spec7_wr_hpsec_top.xdc
hdl/top/spec7_ref_design/spec7_wr_hpsec_top.xdc
+8
-8
spec7_wr_ref_top.xdc
hdl/top/spec7_ref_design/spec7_wr_ref_top.xdc
+8
-8
No files found.
hdl/board/xwrc_board_spec7.vhd
View file @
71b16f5b
This diff is collapsed.
Click to expand it.
hdl/top/spec7_ref_design/spec7_wr_hpsec_top.xdc
View file @
71b16f5b
...
...
@@ -23,7 +23,7 @@ create_clock -period 8.000 -name clk_125m_dmtd -waveform {0.000 4.000} [get_port
create_generated_clock -name clk_125m_dmtd_div2 -source [get_ports clk_125m_dmtd_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/clk_dmtd_reg/Q]
# Set divide by 2 property for generated clk_ref (former platform xilinx: g_phy_lpcalib = TRUE)
create_generated_clock -name clk_ref_62m5_div2 -source [get_ports clk_125m_gtx_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/cmp_clk_ref62m5_buf/O
]
#create_generated_clock -name clk_ref_62m5_div2 -source [get_ports clk_125m_gtx_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/cmp_gtx_dedicated_clk/ODIV2
]
# Set 10 -> 62.5 MHz (*25 /4) generated clk_ext_mul (former platform xilinx: g_direct_dmtd = TRUE)
#create_generated_clock -name clk_ext_mul -source [get_pins cmp_xwrc_board_spec7/clk_ext_10m] -multiply 25 -divide 4 [get_pins cmp_xwrc_board_spec7/gen_ext_ref_pll.mmcm_adv_inst/CLKOUT0]
...
...
@@ -40,7 +40,7 @@ create_clock -period 100.000 -name be_clk_ext_10m -waveform {0.000 50.000} [get_
set_clock_groups -asynchronous \
-group clk_125m_gtx \
-group clk_
ref_62m5_
div2 \
-group clk_
125m_gtx_o
div2 \
-group clk_125m_dmtd \
-group clk_125m_dmtd_div2 \
-group RXOUTCLK \
...
...
@@ -49,15 +49,15 @@ set_clock_groups -asynchronous \
-group be_clk_ext_10m \
-group clk_ext_mul
# clk_
ref_62m5_
div2 = 16 ns = 8 clock periods of clk_500m which has 2 ns period
# clk_
125m_gtx_o
div2 = 16 ns = 8 clock periods of clk_500m which has 2 ns period
# Setup requirement at edge 8, hold requirement at edge 7
# See also:
# https://www.xilinx.com/video/hardware/timing-exception-multicycle-path-constraints.html
# See: "Multicycle Path and Positive phase shift" (due to the clk_
ref_62m5_
div2 to clk_500 delay through MMCME2_ADV)
set_multicycle_path 2 -setup -from [get_clocks clk_
ref_62m5_
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 1 -hold -from [get_clocks clk_
ref_62m5_
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 3 -setup -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
ref_62m5_
div2]
set_multicycle_path 2 -hold -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
ref_62m5_
div2]
# See: "Multicycle Path and Positive phase shift" (due to the clk_
125m_gtx_o
div2 to clk_500 delay through MMCME2_ADV)
set_multicycle_path 2 -setup -from [get_clocks clk_
125m_gtx_o
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 1 -hold -from [get_clocks clk_
125m_gtx_o
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 3 -setup -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
125m_gtx_o
div2]
set_multicycle_path 2 -hold -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
125m_gtx_o
div2]
# Set BMM_INFO_DESIGN property to avoid ERROR during "Write Bitstream"
set_property BMM_INFO_DESIGN spec7_wr_ref_top.bmm [current_design]
...
...
hdl/top/spec7_ref_design/spec7_wr_ref_top.xdc
View file @
71b16f5b
...
...
@@ -23,7 +23,7 @@ create_clock -period 8.000 -name clk_125m_dmtd -waveform {0.000 4.000} [get_port
create_generated_clock -name clk_125m_dmtd_div2 -source [get_ports clk_125m_dmtd_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/clk_dmtd_reg/Q]
# Set divide by 2 property for generated clk_ref (former platform xilinx: g_phy_lpcalib = TRUE)
create_generated_clock -name clk_ref_62m5_div2 -source [get_ports clk_125m_gtx_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/cmp_clk_ref62m5_buf/O
]
#create_generated_clock -name clk_ref_62m5_div2 -source [get_ports clk_125m_gtx_p_i] -divide_by 2 [get_pins cmp_xwrc_board_spec7/cmp_gtx_dedicated_clk/ODIV2
]
# Set 10 -> 62.5 MHz (*25 /4) generated clk_ext_mul (former platform xilinx: g_direct_dmtd = TRUE)
#create_generated_clock -name clk_ext_mul -source [get_pins cmp_xwrc_board_spec7/clk_ext_10m] -multiply 25 -divide 4 [get_pins cmp_xwrc_board_spec7/gen_ext_ref_pll.mmcm_adv_inst/CLKOUT0]
...
...
@@ -40,7 +40,7 @@ create_clock -period 100.000 -name be_clk_ext_10m -waveform {0.000 50.000} [get_
set_clock_groups -asynchronous \
-group clk_125m_gtx \
-group clk_
ref_62m5_
div2 \
-group clk_
125m_gtx_o
div2 \
-group clk_125m_dmtd \
-group clk_125m_dmtd_div2 \
-group RXOUTCLK \
...
...
@@ -49,15 +49,15 @@ set_clock_groups -asynchronous \
-group be_clk_ext_10m \
-group clk_ext_mul
# clk_
ref_62m5_
div2 = 16 ns = 8 clock periods of clk_500m which has 2 ns period
# clk_
125m_gtx_o
div2 = 16 ns = 8 clock periods of clk_500m which has 2 ns period
# Setup requirement at edge 8, hold requirement at edge 7
# See also:
# https://www.xilinx.com/video/hardware/timing-exception-multicycle-path-constraints.html
# See: "Multicycle Path and Positive phase shift" (due to the clk_
ref_62m5_
div2 to clk_500 delay through MMCME2_ADV)
set_multicycle_path 2 -setup -from [get_clocks clk_
ref_62m5_
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 1 -hold -from [get_clocks clk_
ref_62m5_
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 3 -setup -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
ref_62m5_
div2]
set_multicycle_path 2 -hold -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
ref_62m5_
div2]
# See: "Multicycle Path and Positive phase shift" (due to the clk_
125m_gtx_o
div2 to clk_500 delay through MMCME2_ADV)
set_multicycle_path 2 -setup -from [get_clocks clk_
125m_gtx_o
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 1 -hold -from [get_clocks clk_
125m_gtx_o
div2] -to [get_clocks "*clk_500m*"]
set_multicycle_path 3 -setup -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
125m_gtx_o
div2]
set_multicycle_path 2 -hold -start -from [get_clocks "*clk_500m*"] -to [get_clocks clk_
125m_gtx_o
div2]
# Set BMM_INFO_DESIGN property to avoid ERROR during "Write Bitstream"
set_property BMM_INFO_DESIGN spec7_wr_ref_top.bmm [current_design]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment