没有合适的资源?快使用搜索试试~ 我知道了~
Verilog_HDL的故事_之_刺激和激励过程
需积分: 0 2 下载量 75 浏览量
2014-06-22
23:27:43
上传
评论
收藏 3.75MB PDF 举报
温馨提示
试读
56页
Verilog_HDL的故事之刺激和激励过程
资源推荐
资源详情
资源评论
他和它的故事 Verilog HDL 之 刺激和激励过程
博客:
http//blog.ednchina.com/akuei2
社区:
http://www.oshcn.com
1
他和它的故事 Verilog HDL 之 刺激和激励过程
博客:
http//blog.ednchina.com/akuei2
社区:
http://www.oshcn.com
2
目录
目录
.................................................................................................................................... 02
第 六 章 刺激和激励过程 ................................................................................................ 03
6 . 01 精密计数 ........................................................................................................ 03
实验二十一:仿真定时器
............................................................................ 03
6 . 02 刺激的各种输入 ............................................................................................ 11
实验二十二之一:虚拟按键 ........................................................................ 1 1
实验二十二之二:仿真按键消抖模块
.......................................................... 20
实验二十三: PS2 模块仿真 .......................................................................... 27
6 . 03 模块相互刺激 ................................................................................................ 32
实验二十四之一:仿真串口发送模块
........................................................ 32
实验二十四之二:仿真串口接收模块 ........................................................ 36
6 . 04 麻烦的 IO 口仿真 .......................................................................................... 42
实验二十五:仿真带有
IO
的模块
.............................................................. 43
总结 .................................................................................................................................... 5 6
他和它的故事 Verilog HDL 之 刺激和激励过程
博客:
http//blog.ednchina.com/akuei2
社区:
http://www.oshcn.com
3
第六章 :刺激和激励过程
6.1 精密计数
当笔者看到精密计数笔者就觉得很好笑 , 精密计数确实是仿真中最重要的入门课 , 它和
流水灯实验一样那么经典 , 为什么要这样说呢?从实验一到实验二十我们几乎都是在计
数 “ 几个时钟 ” , “ 在第几个时钟,发生什么事 ... ” 。当我们开始仿真稍微复杂的模块 ,
常常要明白 , 模块之间的沟通 , 上一层模块在什么步骤 ( 时钟 ) 和下一层模块在什么步
骤(时钟)有什么交互作用等。我们以一个简单的实验来解释这一切:
实验二十一:仿真定时器
这个实验很简单,我们只要建立两个定时器,一个在 1us 产生定时,则另一个在 3us 产
生定时,然后观察这两个定时器在不同状态的输出。
counter_module.v
1. module counter_module
2. (
3. input CLK,
4. input RSTn,
5.
6. output _1US,
7. output _3US,
8. output _is1US,
9. output _is3US,
10. output [4:0]C1,
11. output [5:0]C2
12. );
13.
14. /*******************************/
15.
16. parameter T1US = 5'd20;
17.
18. /*******************************/
19.
20. reg [4:0]Count_1US;
21. reg is1US;
22.
他和它的故事 Verilog HDL 之 刺激和激励过程
博客:
http//blog.ednchina.com/akuei2
社区:
http://www.oshcn.com
4
23. always @ ( posedge CLK or negedge RSTn )
24. if( !RSTn )
25. begin Count_1US <= 5'd0; is1US <= 1'b0; end
26. else if( Count_1US == T1US )
27. begin Count_1US <= 5'd0; is1US <= 1'b1; end
28. else
29. begin Count_1US <= Count_1US + 1'b1; is1US = 1'b0; end
30.
31. /*******************************/
32.
33. parameter T3US = 6'd60;
34.
35. /*******************************/
36.
37. reg [5:0]Count_3US;
38. reg is3US;
39.
40. always @ ( posedge CLK or negedge RSTn )
41. if( !RSTn )
42. begin Count_3US <= 6'd0; is3US <= 1'b0; end
43. else if( Count_3US == T3US )
44. begin Count_3US <= 6'd0; is3US <= 1'b1; end
45. else
46. begin Count_3US <= Count_3US + 1'b1; is3US <= 1'b0; end
47.
48. /*******************************/
49.
50. assign _1US = ( Count_1US == T1US ) ? 1'b1 : 1'b0;
51. assign _3US = ( Count_3US == T3US ) ? 1'b1 : 1'b0;
52. assign _is1US = is1US;
53. assign _is3US = is3US;
54. assign C1 = Count_1US;
55. assign C2 = Count_3US;
56.
57. /*******************************/
58.
59. endmodule
第 16 行是 1us 的常量声明 , 第 17 行是 1us 的标志寄存器 is1US 。 第 23~29 是 1us 的定
时器。第 33 行是 3us 的常量声明,第 37 行是 3us 的标志寄存器 is3US 。第 40~46 是
3us 的定时器。第 50 行是有组合逻辑驱动 1us 定时标志,第 51 行是由组合逻辑驱动 的
3us 定时标志 , 第 52 行是由 is1US 标志寄存器驱动的 1us 定时标志 , 第 53 行是由 is3U S
标志寄存器驱动的 3us 定时标志。第 54~55 行则是,计数寄存器 Count_1US 和
Count_3US 的相关输出。
他和它的故事 Verilog HDL 之 刺激和激励过程
博客:
http//blog.ednchina.com/akuei2
社区:
http://www.oshcn.com
5
counter_module.vt
1. `timescale 1 ns/ 1 ps
2. module counter_module_simulation();
3.
4. reg CLK;
5. reg RSTn;
6.
7. wire _1US;
8. wire _3US;
9.
10. wire _is1US;
11. wire _is3US;
12.
13. wire [4:0]C1;
14. wire [5:0]C2;
15.
16. /************************/
17.
18. counter_module i1
19. (
20. .CLK(CLK),
21. .RSTn(RSTn),
22. ._1US(_1US),
23. ._3US(_3US),
24. ._is1US( _is1US ),
25. ._is3US( _is3US ),
26. .C1( C1 ),
27. .C2( C2 )
28. );
29.
30. /************************/
31.
32. initial
33. begin
34. RSTn = 0; #1000; RSTn = 1;
35. CLK = 0; forever #25 CLK = ~CLK;
36. end
37.
38. /************************/
39.
40.
41. endmodule
剩余55页未读,继续阅读
资源评论
chujunzbdx
- 粉丝: 1
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- tensorflow-rocm-2.12.0.560-cp311-cp311-manylinux2014-x86-64.whl
- Windows操作系统中的CMD(命令提示符).md
- tensorflow-rocm-2.12.0.560-cp39-cp39-manylinux2014-x86-64.whl
- mmexport1713512496118.jpg
- 基于VB的俄罗斯方块系统设计与实现(源代码+参考文献).zip
- 软件测试开发工具大全资源包之Linux虚拟机
- python毕设-图片批量处理器
- 基于VB的教材管理系统设计(源代码+系统+报告+PPT).zip
- Lock接口与synchronized关键字
- 基于Java的图书馆自习室座位预约系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功