Verilog HDL实例

Verilog HDL实例

ID:39469605

大小:220.00 KB

页数:28页

时间:2019-07-04

Verilog HDL实例_第1页
Verilog HDL实例_第2页
Verilog HDL实例_第3页
Verilog HDL实例_第4页
Verilog HDL实例_第5页
资源描述:

《Verilog HDL实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本文档含有很多VerilogHDL例子://与门modulezxhand2(c,a,b);inputa,b;outputc;assignc=a&b;endmodule//或门modulezxhor2(c,a,b);inputa,b;outputc;assignc=a

2、b;endmodule//非门modulezxhnot2(c,b);inputb;outputc;assignc=~b;endmodule////异或门modulezxhxro2(c,a,b);inputb;outputc;assignc=a^b;endmodule两选一电路moduledata_scan(d0,d1,sel,q)

3、;outputq;inputd0,d1,sel;wiret1,t2,t3;n1zxhand2(t1,d0,sel);n2zxhnot2(t4,sel);n3zxhand2(t2,d1,t4);n4zxhor2(t3,t1,t2);assignq=t1;endmoduleverilogHDL实例(一)练习一.简单的组合逻辑设计目的:掌握基本组合逻辑电路的实现方法。   这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。在VerilogHDL中,描述组合逻辑时常使用assign结构。注意equal=(a==b)?1:0,这是一种在组

4、合逻辑实现分支判断时常使用的格式。   模块源代码:   //---------------compare.v-----------------   modulecompare(equal,a,b);   inputa,b;   outputequal;   assignequal=(a==b)?1:0;//a等于b时,equal输出为1;a不等于b时,                                      //equal输出为0。   endmodule   测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏

5、差,则要对设计模块进行修改。   测试模块源代码:   `timescale1ns/1ns//定义时间单位。    modulecomparetest;   rega,b;   wireequal;   initial//initial常用于仿真时信号的给出。   begina=0;           b=0;   #100a=0;           b=1;   #100a=1;           b=1;   #100a=1;           b=0;   #100$stop;//系统任务,暂停仿真以便观察仿真波形。   end   comparecompare1(.equal(

6、equal),.a(a),.b(b));//调用模块。Endmodule【例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(reset)out<=0;//同步复位

7、elseout<=out+1;//计数endendmodule09.04.07【例5.11】模为60的BCD码加法计数器modulecount60(qout,cout,data,load,cin,reset,clk);output[7:0]qout;outputcout;input[7:0]data;inputload,cin,clk,reset;reg[7:0]qout;always@(posedgeclk)//clk上升沿时刻计数beginif(reset)qout<=0;//同步复位elseif(load)qout<=data;//同步置数elseif(cin)beginif(qout[

8、3:0]==9)//低位是否为9,是则beginqout[3:0]<=0;//回0,并判断高位是否为5if(qout[7:4]==5)qout[7:4]<=0;elseqout[7:4]<=qout[7:4]+1;//高位不为5,则加1endelse//低位不为9,则加1qout[3:0]<=qout[3:0]+1;endendassigncout=((qout==8'h59)&cin)?1:0;

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

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

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