网站大量收购闲置独家精品文档,联系QQ:2885784924

verilog例程.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog例程,verilog例程下载,verilog下载,verilog工程例程,verilog状态机例程,verilog,verilog教程,veriloghdl,systemverilog,verilogcase

verilog例程 例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 【例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】用case 语句描述的4 选1 数据选择器 module mux4_1(out,in0,in1,in2,in3,sel); output out; input in0,in1,in2,in3; input[1:0] sel; reg out; always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表 case(sel) 2b00: out=in0; 2b01: out=in1; 2b10: out=in2; 2b11: out=in3; default: out=2bx; endcase endmodule 例4 同步置数、同步清零的计数器 module count(out,data,load,reset,clk); output[7:0] out; input[7:0] data; input load,clk,reset; reg[7:0] out; always @(posedge clk) //clk 上升沿触发 begin if (!reset) out = 8h00; //同步清0,低电平有效 else if (load) out = data; //同步预置 else out = out + 1; //计数 end endmodule 例6 用always 过程语句描述的简单算术逻辑单元 `define add 3d0 `define minus 3d1 `define band 3d2 `define bor 3d3 `define bnot 3d4 module alu(out,opcode,a,b); output[7:0] out; reg[7:0] out; input[2:0] opcode; //操作码 input[7:0] a,b; //操作数 always@(opcode or a or b) //电平敏感的always 块 例6 用always 过程语句描述的简单算术逻辑单元 begin case(opcode) `add: out = a+b; //加操作 `minus: out = a-b; //减操作 `band: out = ab; //求与 `bor: out = a|b; //求或 `bnot: out=~a; //求反 default: out=8hx; //未收到指令时,输出任意态 endcase end endmodule 例7 用fork-join 并行块产生信号波形 `timescale 10ns/1ns module wave2; reg wave; parameter cycle=5; initial fork wave=0; #(cycle) wave=1; #(2*cycle) wave=0; #(3*cycle) wave=1; #(4*cycle) wave=0; #(5*cycle) wave=1; #(6*cycle) $finish; join initial $monitor($time,,,wave=%b,wave); endmodule 【例8】持续赋值方式定义的2 选1 多路选择器 module MUX21_1(out,a,b,sel); input a,b,sel; output out; assign out=(sel==0)?a:b; //持续赋值,如果sel 为0,则out=a ;否则out=b endmodule 【例9】阻塞赋值方式定义的2 选1 多路选择器 module MUX21_2(out,a,b,sel); input a,b,sel; output out; reg out; always@(a or b or sel) begin if(sel==0) out=a; //阻塞赋值 else out=b; end endmodule 例10 BCD 码—七段数码管显示译

文档评论(0)

ajgoaw + 关注
文档贡献者

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

1亿VIP精品文档

相关文档