聚光科技实习笔记(2015.7.13 - 2015.7.17)

2015-07-17  本文已影响0人  曌曌曌

开发笔记

2015.7.13 - 2015.7.17

简述

本周是我真正开始接触verilog开发的一周,
本周我主要是完成了一个小型的计数平均器的开发。

细节

设计目的和预期

时钟

晶振时钟使用的是50 Mhz,而经过PLL之后倍频为系统时钟 100Mhz

功能

先采集每10ms输入脉冲的数量,再对10个采样值取平均数

设计图和verilog代码的实现

设计上分为三个模块

remarque

verilog代码的编写有很大自由,但是综合软件特别笨,往往无法综合代码。
以下是写出可综合代码需要注意的点:

modelsim的仿真

modelsim是一款强大的仿真软件,此次用于功能性仿真。需要注意的是modelsim可以理解所有verilog语言,所以testbench的自由度比较高,但是仿真结束后未必意味着可以综合。
推荐在仿真之后使用tool> Netlist Viewer > technology Map Viewer和RTL Viewer来确认。 technology Map Viewer 可以看出代码是否真的可以被综合,而RTL Viewer可以看到是否逻辑正确

引脚分配

使用tcl脚本分配引脚,语句模板是
set_location_assignment PIN_30 -to i_clk

signalTap ii的仿真

这是本项目的关键,通过逐个模块信号的仿真,可以最终得到符合要求的最终项目版本。
另外,生成的.sof文件位于output_file文件夹里

remarque

时钟的设置是关键,推荐使用最高频率的时钟或者系统时钟。
此处我们使用的是PLL产生的四倍频时钟

实验中使用的采样和仿真结果

50Mhz ->每次取样10ms脉冲数为500 0x1F4

50MHZ.png

25Mhz ->每次取样10ms脉冲数为250 0xFA

25MHZ.png

12.5Mhz ->每次取样10ms脉冲数为125 0x7D

12.5MHZ.png

总结

通过这个项目,我初次接触了完整的开发流程,并且试验了modelsim的使用,为之后项目开发做了准备。

上一篇 下一篇

猜你喜欢

热点阅读