资源描述:
《verilog编程经典教程ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计示例一用门级结构描述D触发器:设计示例一moduleflop(data,clock,clear,q,qb);inputdata,clock,clear;outputq,qb;nand#10nd1(a,data,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand#9nd3(c,a,d),nd7(q,e,qb);not#10iv1(ndata,da
2、ta),iv2(nclock,clock);endmodule设计示例二由已设计的模块来构成高一级的模块clrdqclkclrdqclkclrdqclkq0d0clrdqclkd3d2q2q3q1d1clrbclkf4f3f2f1四位寄存器电路结构图设计示例二`include“flop.v”modulehardreg(d,clk,clrb,q);inputclk,clrb;input[3:0]d;output[3:0]q;flopf1(d[0],clk,clrb,q[0],),f2(d[1],clk,
3、clrb,q[1],),f3(d[2],clk,clrb,q[2],),f4(d[3],clk,clrb,q[3],);endmodule设计示例三编写测试模块通过仿真检查设计正确与否:`include“hardreg.v”modulehardreg_top;regclock,clearb;reg[3:0]data;wire[3:0]qout;`definestim#100data=4'b//宏定义stim,可使源程序简洁eventend_first_pass;//定义事件end_first_pass
4、设计示例三(续)hardregreg_4bit(.d(data),.clk(clock),.clrb(clearb),.q(qout));/*---------------------------------------------------把本模块中产生的测试信号data、clock、clearb输入实例reg_4bit以观察输出信号qout.实例reg_4bit引用了hardreg---------------------------------------------------*/initi
5、albeginclock=0;clearb=1;endalways#50clock=~clock;设计示例三(续)/*-------------------------------------------------宏定义stim引用,等同于#100data=4'b注意引用时要用`符号。--------------------------------------*/`stim0000;`stim0001;......`stim1111;end#200->end_first_pass;/*-------
6、------------------------------------------延迟200个单位时间,触发事件end_first_pass-------------------------------------------------*/$finish;//结束仿真endendmoduleVerilogHDL设计示例四有限状态机的设计-有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;-其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一
7、个状态;-究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。-状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。设计示例四(续)设计示例四(续)modulefsm(Clock,Reset,A,F,G);inputClock,Reset,A;outputF,G;regF,G;reg[1:0]state;parameterIdle=2’b00,Start=2’b01,Stop=2’b10,Clear=2’b11;always@(posedgeClock)if(!Reset)
8、beginstate<=Idle;F<=0;G<=0;endelse设计示例四(续)case(state)idle:beginif(A)state<=Start;G<=0;endstart:if(!A)state<=Stop;Stop:beginif(A)state<=Clear;F<=1;endClear:beginif(!A)state<=Idle;F<=0;G<=1;endendcaseendmodule设计示例四(续)还可以用另一个Verilog