# 约束文件模板
小麻雀处理器存在2个时钟域  
1. 系统主时钟域`clk`  
2. JTAG模块时钟域`jtag_clk`  

## 时钟约束
由于`clk`和`jtag_clk`是异步的，以下约束信息必不可少：  
```
create_clock -period 20.000 -name clk [get_ports clk]
create_clock -period 100.000 -name jtag_clk [get_ports JTAG_TCK]
set_clock_groups -asynchronous -group [get_clocks clk] -group [get_clocks {jtag_clk}]
```
第1行，`-period 20.000`中，`20`指的是系统主时钟的周期，请根据具体硬件平台作出调整。  
第2行，`-period 100.000`中，`100`指的是JTAG接口`TCK`的时钟周期，一般不会超过10MHz。  
第3行，声明`clk`和`jtag_clk`是异步的，不进行跨时钟域分析。  

若系统主时钟来源于PLL，时钟约束方式请自行探索。  

## 布局约束
对于Xilinx FPGA，如果`TCK`连接于普通IO管脚，需要加入以下约束，忽略布线错误：  
```
set_property CLOCK_DEDICATED_ROUTE FALSE [get_ports JTAG_TCK]
```
其他FPGA请自行探索  