差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
altera_5clk [2017/05/31 13:41] group002 创建 |
altera_5clk [2021/10/03 01:22] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====时钟分频===== | + | ## 时钟分频 |
在之前的实验中我们已经熟悉了小脚丫的各种外设,掌握了verilog的组合逻辑设计,接下来我们将学习时序逻辑的设计。 | 在之前的实验中我们已经熟悉了小脚丫的各种外设,掌握了verilog的组合逻辑设计,接下来我们将学习时序逻辑的设计。 | ||
\\ | \\ | ||
- | ====硬件说明==== | + | |
- | ------- | + | ### 1. 硬件说明 |
时钟信号的处理是FPGA的特色之一,因此分频器也是FPGA设计中使用频率非常高的基本设计之一。一般在FPGA中都有集成的锁相环可以实现各种时钟的分频和倍频设计,但是通过语言设计进行时钟分频是最基本的训练,在对时钟要求不高的设计时也能节省锁相环资源。在本实验中我们将实现任意整数的分频器,分频的时钟保持50%占空比。 | 时钟信号的处理是FPGA的特色之一,因此分频器也是FPGA设计中使用频率非常高的基本设计之一。一般在FPGA中都有集成的锁相环可以实现各种时钟的分频和倍频设计,但是通过语言设计进行时钟分频是最基本的训练,在对时钟要求不高的设计时也能节省锁相环资源。在本实验中我们将实现任意整数的分频器,分频的时钟保持50%占空比。 | ||
\\ | \\ | ||
行 17: | 行 18: | ||
\\ | \\ | ||
- | ====Verilog代码==== | + | ### 2. Verilog代码 |
- | ------ | + | |
<code verilog> | <code verilog> | ||
行 154: | 行 154: | ||
</code> | </code> | ||
- | ====引脚分配==== | + | ### 3. 引脚分配 |
- | ------- | + | |
小脚丫上的系统时钟连接到FPGA的C1脚,时钟为12MHz。你可以通过仿真波形观察分频时钟(注意仿真的时间是有限的,所以分频时钟频率需要较高)。如果我们想通过眼睛观察LED的闪烁,那么需要设置参数N和WIDTH得到一个频率较低的时钟(例如N=12000000,WIDTH=24,分频时钟周期为1秒)。 | 小脚丫上的系统时钟连接到FPGA的C1脚,时钟为12MHz。你可以通过仿真波形观察分频时钟(注意仿真的时间是有限的,所以分频时钟频率需要较高)。如果我们想通过眼睛观察LED的闪烁,那么需要设置参数N和WIDTH得到一个频率较低的时钟(例如N=12000000,WIDTH=24,分频时钟周期为1秒)。 | ||
\\ | \\ | ||
^信号 ^引脚 ^ | ^信号 ^引脚 ^ | ||
- | |clk |C1 ^ | + | | clk | J5 ^ |
- | |rst_n |L14 ^ | + | | rst_n | J9 ^ |
- | |clkout |N13 ^ | + | | clkout | N15 ^ |
\\ | \\ | ||
行 167: | 行 166: | ||
\\ | \\ | ||
- | ====小结==== | + | ### 4. 小结 |
- | ------ | + | |
- | 在本实验学习了如何进行任意整数的分频设计,我们产生各种时钟,通过修改程序还能实验调整输出时钟的频率、相位以及占空比,非常灵活。同时学习了如何编写testbench文件,了解verilog中如何例化module,在后面的学习中将会经常用到。在下个实验我们将进一步了解时序逻辑,如何利用时钟来进一步设计,请看最常见的[[6. LED流水灯|流水灯]]。 | + | 在本实验学习了如何进行任意整数的分频设计,我们产生各种时钟,通过修改程序还能实验调整输出时钟的频率、相位以及占空比,非常灵活。同时学习了如何编写testbench文件,了解verilog中如何例化module,在后面的学习中将会经常用到。在下个实验我们将进一步了解时序逻辑,如何利用时钟来进一步设计,请看最常见的[[altera_6led|LED流水灯]]。 |