11、同步时序电路设计

1、实验目的

掌握典型同步时序电路的工作原理和设计方法

掌握时序电路的激励函数、状态图、状态方程的运用

掌握用 Verilog 进行有限状态机的设计、调试、仿真

掌握用 FPGA 实现时序电路功能

2、实验内容

任务 1:原理图方式设计 4 位同步二进制计数器

任务 2:以 Verilog 行为描述方式设计 16 位可逆二进制同步计数 器

3、实验过程

任务 1:原理图方式设计 4 位同步二进制计数器

1.创建工程并创建组件

建立 HDL 工程 MyCounter,创建原理图文件 Counter4b,按原理 图绘制。

 新建 Verilog 文件 clk_1s 用作时钟,输入如图的 Verilog 代码

新建 Verilog 文件 Top,右键设为 Set as Top Module,输入如图的 Verilog 代码

 

2.原理图仿真

建立基准测试波形文件 Counter4b_sim,输入仿真激励信号,在 Process 窗口中选择 Simulate Behavioral Model,可以得到仿真波 形图: 

 

3.建立用户时序约束并为模块的端口指定引脚分配

建立引脚约束文件 K7.ucf,输入代码如图 3.6 所示,为原理图的 每个输入输出端口分配引脚。

 

4.生成 bit 文件并下载到开发板 

任务 2:以 Verilog 行为描述方式设计 16 位可逆二进制同步计数器

1.创建工程并绘制原理图

建立 HDL 工程 myRevCounter,创建 Verilog 文件 RevCounter

新建 Verilog 文件 clk_100ms 用作时钟,输入如图的 Verilog 代码

 

 新建 Verilog 文件 Top,右键设为 Set as Top Module,输入如图的 Verilog 代码

2.原理图仿真

建立基准测试波形文件 RevCounter_sim,输入仿真激励信号, 在 Process 窗口中选择 Simulate Behavioral Model,可以得到仿真 波形图: 

 

3.建立用户时序约束并为模块的端口指定引脚分配

建立引脚约束文件 K7.ucf,输入代码如图 3.6 所示,为原理图的 每个输入输出端口分配引脚。

 

4.生成 bit 文件并下载到开发板 

4、实验结果

先要感谢某不烦学长,救我一命,当时真的卡了很久,没想到有学长发了实验的专栏

我也后来去问了老师原因,DispNum中是不可以用clk_100ms这些的,因为时间太短,扫描得太快,所以显示出的数字就和预想的不一样,调成系统时钟clk就好了

分频器多看看,posedge是上升沿,别忘了,1个上升沿是半个周期,再过一个下降沿才是完整的一个周期

clk 是 100MHz 的信号,当进行 50_000_000 次分频后,clk_1s 会变化一次,而再过一个 50_000_000 次分频后就会 再变化一次,所以 clk_1s 的周期是 2 次 50_000_000(50MHz)次分频, 所以就把 1 个 100MHz 的信号转换成了一个 1Hz 的信号

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值