FPGA 时钟分频 笔记

 1.时钟分频本身是很简单的功能,但是,课程引出了时钟域的概念,说明了时钟域太多会造成clk严重的时序问题。解决方案就是引出 flag 标志。flag属于内部变量,这样敏感列表就不需要包含额外时钟,只有clk,只有1个时钟域clk.避免时序出问题。

2.课内练习总结
1秒,是10^9NS,50MHZ,周期是20ns,所以需要计数cnt=10^9NS/20ns=50000000次。
3.下面两条语句,为什么会报错??
parameter CNTBIT = 25;
cnt <= CNTBIT'd0;
4.ise工程里面添加约束步骤:
4.1添加*.v源文件之后,添加IO管脚约束:fpga型号右键: new Source...---->implementation constraints file------->使用sumline编辑ucf约束文件---->找语法(菜单栏灯泡点击)------->ucf(fpga--placement----spartan 6--Absolute Location----I/O)----->NET "<clk>" LOC=<p24>;
4.2:添加IO电压约束:fpga--I/O---->Single-Ended---->Spartan 6 ---->InputAtttibutes(),格式参考:
NET <input_port_name> LOC=<pin_location> | IOSTANDARD=<io_standard_name> | IN_TERM=<NONE/UNTUNED_SPLIT_25/UNTUNED_SPLIT_50/UNTUNED_SPLIT_75>;
最终:注意去掉<>
NET "clk" LOC=p24 | IOSTANDARD=LVCMOS33;
4.3在ISE界面左侧界面下方,分别右键点击“RUN”,在 Synthesize -XST, Implement Design, 其实点击一项Generate Promming File.就可以自动执行上面2项。
首次测试失败,因为rst电平不对,故意搞错。不得不重新来一次!
5.工程编译和下载到设备
5.1在Generate Promming File下方,双击 (iMPACT).出现新界面,点击左侧上 Boundary Scan ,出现提示框,点击 :否;Identify Successed,双击 右侧赛思灵图标,会出现框选中 要烧录的**.bit文件。,点击左侧progrom烧录。然后就可以看到板子上面的现象了!
我的代码是led4闪烁。key1复位!
Xilinx ISE 编译时,place & route 很慢:
右键,stop,重新run,一般多试几次,会很快完毕!

 

posted @ 2020-02-15 09:07  leida_3669  阅读(920)  评论(0编辑  收藏  举报