verilog教程范例(北京至芯科技FPGA培训)

上传人:ldj****22 文档编号:48555372 上传时间:2018-07-17 格式:PPT 页数:39 大小:211KB
返回 下载 相关 举报
verilog教程范例(北京至芯科技FPGA培训)_第1页
第1页 / 共39页
verilog教程范例(北京至芯科技FPGA培训)_第2页
第2页 / 共39页
verilog教程范例(北京至芯科技FPGA培训)_第3页
第3页 / 共39页
verilog教程范例(北京至芯科技FPGA培训)_第4页
第4页 / 共39页
verilog教程范例(北京至芯科技FPGA培训)_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《verilog教程范例(北京至芯科技FPGA培训)》由会员分享,可在线阅读,更多相关《verilog教程范例(北京至芯科技FPGA培训)(39页珍藏版)》请在金锄头文库上搜索。

1、VerilogVerilog 设计举例设计举例 结构模块的层次化组成结构模块的层次化组成 各种类型模块之间的关系各种类型模块之间的关系 测试和验证测试和验证FPGA培训北京至芯北京至芯FPGAFPGA培训培训设计示例一 用门级结构描述用门级结构描述D D触发器触发器 北京至芯北京至芯FPGAFPGA培训培训设计示例一设计示例一modulemoduleflop(data,clock,clear,q,qbflop(data,clock,clear,q,qb);); inputinputdata,clock,clear;data,clock,clear; outputoutputq,qbq,qb;

2、;nandnand#10#10nd1(a,data,clock,clear),nd1(a,data,clock,clear),nd2(b,ndata,clock), nd2(b,ndata,clock),nd4(d,c,b,clear), nd4(d,c,b,clear),nd5(e,c,nclock), nd5(e,c,nclock),nd6(f,d,nclock), nd6(f,d,nclock),nd8(qb,q,f,clear); nd8(qb,q,f,clear); nandnand#9#9nd3(c,a,d),nd3(c,a,d),nd7(q,e,qb); nd7(q,e,qb);

3、 notnot#10#10iv1(ndata,data),iv1(ndata,data),iv2(nclock,clock); iv2(nclock,clock); endmoduleendmodule北京至芯北京至芯FPGAFPGA培训培训用户定义的原始元件用户定义的原始元件primitive primitive udp_andudp_and (out,a,b); (out,a,b);output out; output out;input a,b; input a,b;table table /a b : out; /a b : out;0 0 : 0; 0 0 : 0;0 1 : 0;

4、0 1 : 0;1 0 : 0; 1 0 : 0;1 1 : 1; 1 1 : 1;endtableendtableendprimitiveendprimitive北京至芯北京至芯FPGAFPGA培训培训用户定义的原始元件用户定义的原始元件前面模块中的前面模块中的nandnand和和notnot原语元件(原语元件(primitiveprimitive) 在在VerilogVerilog 语言中是保留词,它们分别表示:语言中是保留词,它们分别表示:与非门和非门的逻辑关系。与非门和非门的逻辑关系。在在VerilogVerilog 语法中通过用户定义的原始元件语句语法中通过用户定义的原始元件语句 (

5、即(即UDPUDP)的真值表和带参数的延迟线模型来的真值表和带参数的延迟线模型来 表示。在与具体工艺库的逻辑对应时把具体延表示。在与具体工艺库的逻辑对应时把具体延 迟参数传入延迟线模型,再加上描述逻辑关系迟参数传入延迟线模型,再加上描述逻辑关系 的的UDPUDP 。就有了一个与真实情况很接近逻辑模。就有了一个与真实情况很接近逻辑模 型,仿真器就可以依据它进行计算,来确定相型,仿真器就可以依据它进行计算,来确定相 互连接元件的逻辑值。互连接元件的逻辑值。北京至芯北京至芯FPGAFPGA培训培训设计示例二设计示例二 由已设计的模块来构成高一级的模块由已设计的模块来构成高一级的模块clrdqclkc

6、lrdqclkclrdqclkq0d0clrdqclkd3d2q2q3q1d1clrbclkf4f3f2f1四位寄存器电路结构图北京至芯北京至芯FPGAFPGA培训培训设计示例二设计示例二include “ flop.v ”include “ flop.v ” modulemodulehardreg(d,clk,clrb,qhardreg(d,clk,clrb,q);); inputinputclk,clrbclk,clrb; ; input3:0input3:0 d; d; output3:0output3:0q;q;flopflopf1(d0,clk,clrb,q0,),f1(d0,clk

7、,clrb,q0,),f2(d1,clk,clrb,q1,), f2(d1,clk,clrb,q1,),f3(d2,clk,clrb,q2,), f3(d2,clk,clrb,q2,),f4(d3,clk,clrb,q3,); f4(d3,clk,clrb,q3,); endmoduleendmodule北京至芯北京至芯FPGAFPGA培训培训设计示例三设计示例三编写测试模块通过仿真检查设计正确与否编写测试模块通过仿真检查设计正确与否include “include “hardreg.vhardreg.v” module module hardreg_tophardreg_top; ;regr

8、eg clock, clock, clearbclearb; ; regreg 3:0 data 3:0 data; wire 3:0 wire 3:0 qoutqout; ; define define stimstim #100 data=4b #100 data=4b/宏定义宏定义 stim,stim,可使源程序简洁可使源程序简洁 event end_first_pass;event end_first_pass;/定义事件定义事件end_first_passend_first_pass北京至芯北京至芯FPGAFPGA培训培训设计示例三设计示例三 (续)(续)hardreghardreg

9、 reg_4bit(.d(data),.clk(clock), reg_4bit(.d(data),.clk(clock), . .clrb(clearbclrb(clearb), ), . .q(qoutq(qout);); /*-/*- 把本模块中产生的测试信号把本模块中产生的测试信号datadata、clockclock、clearbclearb输入实例输入实例 reg_4bitreg_4bit以观察输出信号以观察输出信号qout.qout.实例实例reg_4bitreg_4bit引用了引用了hardreghardreg -*/-*/initial initialbegin beginc

10、lock = 0; clock = 0;clearbclearb = 1; = 1;end endalways #50 clock = clock; always #50 clock = clock;北京至芯北京至芯FPGAFPGA培训培训设计示例三 (续)initial initial beginbeginrepeat(4) repeat(4)begin begin /*-/*- 宏定义宏定义stimstim引用引用, ,等同于等同于 #100 #100 data=4b data=4b 注意引用时要用注意引用时要用 符号符号。-*/-*/ stimstim 0000; 0000; stims

11、tim 0001; 0001;. . . . . . . . . . . . stimstim 1111; 1111; #200 #200 end_first_pass; end_first_pass;/ /延迟延迟200200个单位时间,触发事件个单位时间,触发事件end_first_passend_first_passend end$finish; $finish;/结束仿真结束仿真end end北京至芯北京至芯FPGAFPGA培训培训设计示例三设计示例三 ( (续)续)always (end_first_pass)always (end_first_pass)clearbclearb =

12、 = clearbclearb; /; /清零信号电平翻转清零信号电平翻转always ( always (posedgeposedge clock) clock)$display (“ at time %0d $display (“ at time %0d clearbclearb= %b data= %b = %b data= %b qoutqout= %b ”,= %b ”,$ $time,clearb,data,qouttime,clearb,data,qout); );endmoduleendmodule北京至芯北京至芯FPGAFPGA培训培训设计示例四设计示例四带异步复位端的带异步

13、复位端的 D D 触发器触发器module DFF(q, d, module DFF(q, d, clkclk, reset);, reset); output q; output q; input d, input d, clkclk, reset;, reset; regreg q; q; always (always (posedgeposedge reset or reset or negedgenegedge clkclk) ) if (reset)if (reset) q q = 1b0; 1b0; elseelse q q = d; d;endmoduleendmodule北京至

14、芯北京至芯FPGAFPGA培训培训设计示例四(续) 用D触发器构成T触发器module TFF(q, module TFF(q, clkclk, reset);, reset); output q; output q; input input clkclk, reset;, reset; wire d;wire d;DFF dff0(q, d, DFF dff0(q, d, clkclk, reset); / , reset); / DFFDFF已在上面的模块定已在上面的模块定 义义 not n1(d, q); / not not n1(d, q); / not 表示非门是一个表示非门是一个VerilogVerilog

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号