Verilog实例代码.pdf

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog实例代码

VerilogHDL Samples 王金明:《Verilog HDL 程序设计教程》 【例3.1】4 位全加器 module adder4(cout,sum,ina,inb,cin); output [3:0] sum; output cout; input [3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule 【例3.2】4 位计数器 module count4(out,reset,clk); output [3:0] out; input reset,clk; reg [3:0] out; always @(posedge clk) begin if (reset) out=0; //同步复位 else out=out+1; //计数 end endmodule 【例3.3 】4 位全加器的仿真程序 `timescale 1ns/1ns `include adder4.v module adder_tp; //测试模块的名字 reg [3:0] a,b; //测试输入信号定义为reg 型 reg cin; wire [3:0] sum; //测试输出信号定义为wire 型 wire cout; integer i,j; adder4 adder(sum,cout,a,b,cin); //调用测试对象 always #5 cin=~cin; //设定cin 的取值 initial begin a=0;b=0;cin=0; for (i=1;i16;i=i+1) #10 a=i; //设定a 的取值 end - 1 - VerilogHDL Samples 程序文本 initial begin for (j=1;j16;j=j+1) #10 b=j; //设定b 的取值 end initial //定义结果显示格式 begin $monitor($time,,,%d + %d + %b={%b,%d},a,b,cin,cout,sum); #160 $finish; end endmodule 【例3.4 】4 位计数器的仿真程序 `timescale 1ns/1ns `include count4.v module coun4_tp; reg clk,reset; //测试输入信号定义为reg 型 wire [3:0] out; //测试输出信号定义为wire 型 parameter DELY=100; count4 mycount(out,reset,clk); //调用测试对象 always #(DELY/2) clk = ~clk; //产生时钟波形 initial begin //激励信号定义 clk =0; reset=0; #DELY reset=1; #DELY reset=0; #(DELY*20) $finish; end //定义结果显示格式 initial $monitor

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档