码迷,mamicode.com
首页 > 其他好文 > 详细

Verilog HDL的不同抽象级别1

时间:2016-11-04 22:51:09      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:event   tput   非阻塞   清零   lock   include   抽象   output   转换   

用门级结构描述D触发器,实例如下:

由已经设计好的模块构成更高一级的模块,用触发器组成代清零端的4位寄存器代码和实验结果如下:

module flop(data,clock,clear,q,qb);
input data,clock,clear;
output q,qb;

nand #10 nd1(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 #9 nd3(c,a,d),
nd7(q,e,qb);
not #10 iv1(ndata,data),
iv2(nclock,clock);
endmodule

上面的模块可以用行为描述块来实现,如下:

`include "flop.v"
module hardreg(d,clk,clrb,q);
input clk,clrb;
input[3:0] d;
output[3:0] q;

flop f1(d[0],clk,clrb,q[0],),
f2(d[1],clk,clrb,q[1],),
f3(d[2],clk,clrb,q[2],),
f4(d[3],clk,clrb,q[3],);
endmodule

门级描述表示电路的结构,是布线的依据,门级电路结构相当复杂,然而行为级描述比较直观,所以Verilog语言设计复杂逻辑电路的基本思路如下:

1.第一步设计工作:用直观的行为级描述语言描述电路,通过Verilog语言仿真测试验证正确性。

2.前端的逻辑设计:用一种工具(综合器synthesis tool)把行为描述转换为门级结构,仿真正确。

3.后端的制造准备工作

测试文件(test—bench或者text.-fix ture)的编写,代码如下:

`include "flop.v"
`include "hardreg.v"
module hardreg_top;
reg clock,clearb; 
reg[3:0] data;
wire[3:0] qout;

`define stim #100 data=4‘b
event end_first_pass;                      //定义事件
hardreg reg_4bit(.d(data),.clk(clock),.clrb(clearb),.q(qout));

initial
begin
clock=0;
clearb=1;
end

always #50 clock=~clock;       //产生时钟的方法
always @(end_first_pass)
clearb=~clearb;          //事件触发的结果
always @(posedge clock)
$display("at time %0d clearb=%b data=%d qout=%d",$time,clearb,data,qout);

initial
begin
repeat(4)
begin
data=4‘b0000;
`stim 0001;
`stim 0010;
`stim 0011;
`stim 0100;
`stim 0101;
`stim 0110;
`stim 0111;
`stim 1000;
`stim 1001;
`stim 1010;
`stim 1011;
`stim 1100;
`stim 1011;
`stim 1100;
`stim 1101;

`stim 1110;

`stim 1111;
#200 ->end_first_pass;    //此处触发该事件
end
$finish;
end
endmodule

 阻塞赋值与非阻塞赋值初级:

always@(posedge clk) 

begin

b<=a;//b=a;

d<=b;//d=b;

end

 

非阻塞赋值得到的是两个触发器的情况,然而阻塞赋值得到的却是一个触发器,具体见书44页。

 

Verilog HDL的不同抽象级别1

标签:event   tput   非阻塞   清零   lock   include   抽象   output   转换   

原文地址:http://www.cnblogs.com/panzige/p/6031571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!