Verilog HDL程序设计-135例gai

Verilog HDL程序设计-135例gai

ID:43486024

大小:191.92 KB

页数:83页

时间:2019-10-08

Verilog HDL程序设计-135例gai_第1页
Verilog HDL程序设计-135例gai_第2页
Verilog HDL程序设计-135例gai_第3页
Verilog HDL程序设计-135例gai_第4页
Verilog HDL程序设计-135例gai_第5页
资源描述:

《Verilog HDL程序设计-135例gai》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、王金明:《VerilogHDL程序设计教程》【例3.1】4位全加器moduleadder4(cout,sum,ina,inb,cin);output[3:0]sum;outputcout;input[3:0]ina,inb;inputcin;assign{cout,sum}=ina+inb+cin;endmodule【例3.2】4位计数器modulecount4(out,reset,clk);output[3:0]out;inputreset,clk;reg[3:0]out;always@(posedgeclk)beginif(r

2、eset)out<=0;//同步复位elseout<=out+1;//计数endendmodule【例3.3】4位全加器的仿真程序`timescale1ns/1ns`include"adder4.v"moduleadder_tp;//测试模块的名字reg[3:0]a,b;//测试输入信号定义为reg型regcin;wire[3:0]sum;//测试输出信号定义为wire型wirecout;integeri,j;adder4adder(sum,cout,a,b,cin);//调用测试对象always#5cin=~cin;//设定ci

3、n的取值initialbegina=0;b=0;cin=0;for(i=1;i<16;i=i+1)#10a=i;//设定a的取值end-1-程序文本initialbeginfor(j=1;j<16;j=j+1)#10b=j;//设定b的取值endinitial//定义结果显示格式begin$monitor($time,,,"%d+%d+%b={%b,%d}",a,b,cin,cout,sum);#160$finish;endendmodule【例3.4】4位计数器的仿真程序`timescale1ns/1ns`include"cou

4、nt4.v"modulecoun4_tp;regclk,reset;//测试输入信号定义为reg型wire[3:0]out;//测试输出信号定义为wire型parameterDELY=100;count4mycount(out,reset,clk);//调用测试对象always#(DELY/2)clk=~clk;//产生时钟波形initialbegin//激励信号定义clk=0;reset=0;#DELYreset=1;#DELYreset=0;#(DELY*20)$finish;end//定义结果显示格式initial$moni

5、tor($time,,,"clk=%dreset=%dout=%d",clk,reset,out);endmodule【例3.5】“与-或-非”门电路moduleAOI(A,B,C,D,F);//模块名为AOI(端口列表A,B,C,D,F)inputA,B,C,D;//模块的输入端口为A,B,C,DoutputF;//模块的输出端口为F-2-王金明:《VerilogHDL程序设计教程》wireA,B,C,D,F;//定义信号的数据类型assignF=~((A&B)

6、(C&D));//逻辑功能描述endmodule【例5.1】用ca

7、se语句描述的4选1数据选择器modulemux4_1(out,in0,in1,in2,in3,sel);outputout;inputin0,in1,in2,in3;input[1:0]sel;regout;always@(in0orin1orin2orin3orsel)//敏感信号列表case(sel)2'b00:out=in0;2'b01:out=in1;2'b10:out=in2;2'b11:out=in3;default:out=2'bx;endcaseendmodule【例5.2】同步置数、同步清零的计数器module

8、count(out,data,load,reset,clk);output[7:0]out;input[7:0]data;inputload,clk,reset;reg[7:0]out;always@(posedgeclk)//clk上升沿触发beginif(!reset)out=8'h00;//同步清0,低电平有效elseif(load)out=data;//同步预置elseout=out+1;//计数endendmodule【例5.3】用always过程语句描述的简单算术逻辑单元`defineadd3'd0`definemin

9、us3'd1`defineband3'd2`definebor3'd3`definebnot3'd4-3-程序文本modulealu(out,opcode,a,b);output[7:0]out;reg[7:0]out;input[2:0]opco

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。