当前位置:   article > 正文

小梅哥Xilinx ZYNQ学习笔记1——二选一多路器_小梅哥zynq

小梅哥zynq

目录

一、功能介绍

1.功能描述

2.原理图

二、代码编写

1.设计文件

2.激励仿真文件

3.仿真图

三、总结

一、功能介绍

1.功能描述

sl为控制信号,a,b为两个输入信号,out为输出信号。当sel为低电平时,输出out=a,当sel为高电平时,输出out=b。

2.原理图

二、代码编写

1.设计文件

  1. module mux2( //模块名和端口
  2. a,
  3. b,
  4. sel,
  5. out
  6. );
  7. input a;//定义端口属性为输入还是输出
  8. input b;
  9. input sel;
  10. output out;
  11. assign out = (sel == 0)?a:b;//连续赋值,双目计算符
  12. endmodule//模块结束

2.激励仿真文件

  1. `timescale 1ns/1ns //是指仿真时用到的延时语句的单位和精度,(后面是精度,前面是单位)
  2. module mux2_tb();
  3. reg S0;
  4. reg S1;
  5. reg S2;
  6. wire mux2_out;
  7. //复制需要的模块名以及端口列表
  8. mux2 mux2_inst0( //ux2 mux2_inst0是为了防止设备重复所给定的标签名
  9. .a(S0),//这代表S0与a端口进行连接
  10. .b(S1),
  11. .sel(S2),
  12. .out(mux2_out)//输出只需要连接一根导线即可,故mux2_out为wire线型
  13. );
  14. initial begin
  15. S2 = 0; S1 = 0; S0 = 0;
  16. #20;//20x1 ns
  17. S2 = 0; S1 = 0; S0 = 1;
  18. #20;
  19. S2 = 0; S1 = 1; S0 = 0;
  20. #20;
  21. S2 = 0; S1 = 1; S0 = 1;
  22. #20;
  23. S2 = 1; S1 = 0; S0 = 0;
  24. #20;
  25. S2 = 1; S1 = 0; S0 = 1;
  26. #20;
  27. S2 = 1; S1 = 1; S0 = 0;
  28. #20;
  29. S2 = 1; S1 = 1; S0 = 1;
  30. #20;
  31. end
  32. endmodule

3.仿真图

三、总结

1.`timescale 1ns/1ns //时间刻度 前面的1ns是时间单位,后面的代表精度;
2.所有程序总是从modbule开始,endmodule结束;
3.assign out = (sel == 1)?a:b;相当于c语言中的if条件判断。
4.激励文件中的例化步骤:
1)把设计文件 mux2( a,b,sel,out所以的信号);都搬过来,进行在测试平台上面的例化;
a.把设计文件mux2( a,b,sel,out所以的信号);都搬过来

  1. module mux2( //模块名和端口
  2. a,
  3. b,
  4. sel,
  5. out
  6. );

b.对代码进行修改,在mux2后面加上例化的模块名,在端口名前加点,端口名后打括号,括号中是例化的端口名称,形成以下代码:

  1. //设计文件模块名 例化模块名
  2. //设计文件端口名 例化模块端口名
  3. mux2 mux2_inst0( //ux2 mux2_inst0是为了防止设备重复所给定的标签名
  4. .a(S0),//这代表S0与a端口进行连接
  5. .b(S1),
  6. .sel(S2),
  7. .out(mux2_out)//输出只需要连接一根导线即可,故mux2_out为wire线型
  8. );

2)给激励文件中的输入端口给激励;
3)产生激励, initial begin开头,end结束。

4)#20只能在激励文件中使用
5)verilog的一般语法结构:

  1. module 模块名(端口名1,端口名2,端口名3,端口名4,...);
  2. 端口定义说明(input,output,inout);
  3. 参数定义(可选);
  4. 数据类型定义(wire,reg等);
  5. //…………………………以上为描述接口说明部分…………………………//
  6. //…………………………以下为描述逻辑功能部分…………………………//
  7. 实例引用低层次模块和基本门级元件;
  8. 连续赋值语句(assign);
  9. 过程赋值语句(initial和always);
  10. 功能描述语言;
  11. 任务和函数;
  12. endmodule
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/402671
推荐阅读
相关标签
  

闽ICP备14008679号