Verilog HDL-1
来源:互联网 发布:淘宝装修购买 编辑:程序博客网 时间:2024/06/11 13:02
门级风格的描述
//二选一数据选择器的门级风格描述module mux_str(out,a,b,sel); input a,b,sel; //输入端口声明 output out; //输出端口声明 not gate(net1,sel); //非门gate中,net1是输出,sel是输入 and gate2(net2,a,net1);//与门gate2中,net2是输出,a和net1是输入 and gate3(net3,b,sel); //与门gate3中,net3是输出,b和sel是输入 or gate4(out,net2,net3);endmodule
数据流风格的描述
数据流风格描述方式是最常用的一种风格,用数据流描述方式对一个设计建模的最基本机制就是使用连续赋值语句。在连续赋值语句中,线网类型变量被赋予某个值,右边表达式的操作时无论何时发生变化,表达式都要重新计算,计算结果被赋予左边表达式的线网类型变量。
module mux_flow(out,a,b,sel); input a,b,sel; output out; assign out=(sel)?b:a; //连续赋值endmodule
行为风格的描述
行为风格使用initial语句(语句只执行一次)和always语句(重复执行),只有变量类型数据能够在这两种语句中被赋值,所有initial语句和always语句在0时刻开始并发执行
module mux_beha(out,a,b,sel); input a,b,sel; output out; reg out; always @(a,b,sel) //a,b,sel为敏感事件,一旦发生变化,即触发后面代码的执行 out=(sel)?b:a;endmodule
测试平台的编写
module testMux; reg pa,pb,psel; wire pout; mux_beha tmux(pout,pa,pb,psel); //调用 initial begin pa=0;pb=0;psel=0;//赋初值 #5 pa=1; //五个单位时间延迟后进行赋值 #5 pb=1; #5 pa=0; #5 psel=1; #5 pa=1; #5 pb=0; #5 pa=0; end initial $monitor("time=%t,a=%b.b=%b,sel=%b,out=%b",$time,pa,pb,psel,pout); //调用系统任务$monitor,当pa、pb、psel、pout中任一个发生变化时就输出显示endmodule
更多的查看我的博客:https://beatjerome.github.io
阅读全文
0 0
- Verilog HDL-1
- Verilog HDL语法基础(1)
- Verilog HDL学习笔记1
- Verilog HDL作业1_1
- Verilog HDL作业1_2
- Verilog HDL 学习笔记1-data type
- Verilog HDL简明教程
- Verilog HDL简介
- Verilog HDL简明教程
- Verilog HDL数据类型
- Verilog HDL运算符
- Verilog HDL语法基础
- Verilog HDL数据类型
- Verilog HDL运算符
- Verilog HDL中的标识符
- Verilog HDL 测量相位差
- uart-verilog HDL
- Verilog HDL概述
- 关于ubuntu下运行写好的qt程序
- 使用POI读取Excel内容(一)
- isis原理及介绍
- NYOJ-709-异形卵
- Find TwoBee 寻找小蜜蜂
- Verilog HDL-1
- Hive SQL 数据去重简析
- linux服务器部署应用程序
- 网络编程2
- 时钟
- 算法初探
- 八大排序
- 关于linux USB WIFI 的一些内容
- Ubuntu 16.04下安装Bunlder和PMVS(CMVS)---很重要