收藏 分销(赏)

第-五讲--行为建模PPT课件.ppt

上传人:可**** 文档编号:804344 上传时间:2024-03-22 格式:PPT 页数:59 大小:516KB
下载 相关 举报
第-五讲--行为建模PPT课件.ppt_第1页
第1页 / 共59页
第-五讲--行为建模PPT课件.ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述
第五讲第五讲 行为行为建模建模西安邮电学院通信工程系第第 五讲五讲 行为建模行为建模内容:v行为建模v过程块语句v过程赋值v过程中的块语句v过程的时序控制v阻塞与非阻塞过程赋值v条件语句第五讲第五讲 行为行为建模建模西安邮电学院通信工程系行为建模行为建模(描述)描述)模块定义module(portlist)时序特性timigspecifications端口说明Portdeclarations输入input双向inout输出output数据类型说明Datatypedeclarations线网类型net参数parameter寄存器类型register电路功能描述Circuitfunctionality子程序subprograms任务task函数function系统任务和函数Systemtask&function编译指令Compilerdirectives连续赋值Continuousassignment赋值语句assign过程块过程块Proceduralblocks过程块语句过程块语句initial blockalways block模块实例instantiation第五讲第五讲 行为行为建模建模西安邮电学院通信工程系行为建模行为建模(描述)描述)v行为级描述是对系统的高抽象级描述。在这个抽象级,注重的是整个系统的功能而不是实现。vVerilog有高级编程语言结构用于行为描述,包括:initial,always,wait,for,while,ifelse,case和forever等。vVerilog的行为建模是用一系列以高级编程语言编写的并行的、动态的过程块来描述系统的工作。在每一个时钟上升沿,在每一个时钟上升沿,若若ClrClr不是低电平,不是低电平,置置Q Q为为D D值,值,置置QbQb为为D D值的反值的反D触发器行为无论何时无论何时ClrClr变低变低 置置Q Q为为0 0,置置QbQb为为1 1第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程块过程块(procedural)(procedural)v过程块是行为模型的基础。一个模块中可以有多个过程块,过程块有两种:过程块是行为模型的基础。一个模块中可以有多个过程块,过程块有两种:qinitialinitial块,只能执行一次块,只能执行一次qalwaysalways块,循环执行块,循环执行v过程块中有下列部件过程块中有下列部件q过程赋值语句:描述过程块中的数据流过程赋值语句:描述过程块中的数据流q时序控制:控制块的执行及块中的语句时序时序控制:控制块的执行及块中的语句时序q高级结构(循环,条件语句等):描述块的功能高级结构(循环,条件语句等):描述块的功能第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程块过程块initialinitial和和alwaysalwaysv都从0时刻开始执行;vinitial无触发条件,只执行一次;valways按触发条件执行,或无触发条件时一直执行;v一个module的行为描述中可以有多个initial和always语句,即有多个过程块存在,且相互独立,并行运行。module name()input /端口说明output reg./信号说明wire/功能描述 assign./并行赋值语句 initial./过程块语句 always /过程块语句 initial.assign.always endmodule第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程赋值过程赋值(procedural assignment)(procedural assignment)v在过程块中的赋值称为过程赋值。v在过程赋值语句中表达式左边的信号必须是寄存器类型(如reg类型)v在过程赋值语句等式右边可以是任何有效的表达式,数据类型也没有限制。v如果一个信号没有声明则缺省为wire类型。使用过程赋值语句给wire赋值会产生错误。module adder(out,a,b,cin);input a,b,cin;output 1:0 out;wire a,b,cin;reg half_sum;reg 1:0 out;always(a or b or cin)begin half_sum=a b cin;/OK half_carry=a&b|a&!b&cin|!a&b&cin;/ERROR!out=half_carry,half_ sum;endendmodulehalf_carryhalf_carry没有说明没有说明时序控制顺序块语句第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程中的过程中的块语句块语句v块语句用来将多个语句组织在一起,使得他们在语法上如同一个语句。块语句分为两类。v顺序块:语句置于关键字begin和end之间,块中的语句以顺序方式执行。v并行块:关键字fork和join之间的是并行块语句,块中的语句并行执行。vFork和join语句常用于testbench描述。这是因为可以一起给出矢量及其绝对时间,而不必描述所有先前事件的时间。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系顺序块顺序块顺序块有以下特点:1)块内的语句是按顺序执行的,即只有上面一条语句执行完后下面的语句才能执行。2)每条语句的延迟时间是相对于前一条语句的仿真时间而言的。3)直到最后一条语句执行完,程序流程控制才跳出该语句块。顺序块的格式如下:begin语句1;语句2;.语句n;end第五讲第五讲 行为行为建模建模西安邮电学院通信工程系或begin:块名块内声明语句语句1;语句2;.语句n;end其中:块名即该块的名字,一个标识名。其作用后面再详细介绍。块内声明语句可以是参数声明语句、reg型变量声明语句、integer型变量声明语句、real型变量声明语句。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系下面举例说明:例1:beginareg=breg;creg=areg;/creg的值为breg的值。end从该例可以看出,第一条赋值语句先执行,areg的值更新为breg的值,然后程序流程控制转到第二条赋值语句,creg的值更新为areg的值。因为这两条赋值语句之间没有任何延迟时间,creg的值实为breg的值。当然可以在顺序块里延迟控制时间来分开两个赋值语句的执行时间,见例2:第五讲第五讲 行为行为建模建模西安邮电学院通信工程系例2:beginareg=breg;#10creg=areg;/在两条赋值语句间延迟10个时间单位。end第五讲第五讲 行为行为建模建模西安邮电学院通信工程系例3:parameterd=50;/声明d是一个参数reg7:0r;/声明r是一个8位的寄存器变量begin/由一系列延迟产生的波形#dr=h35;#dr=hE2;#dr=h00;#dr=hF7;#d-end_wave;/触发事件end_waveend第五讲第五讲 行为行为建模建模西安邮电学院通信工程系并行块并行块并行块有以下四个特点:1)块内语句是同时执行的,即程序流程控制一进入到该并行块,块内语句则开始同时并行地执行。2)块内每条语句的延迟时间是相对于程序流程控制进入到块内时的仿真时间的。3)延迟时间是用来给赋值语句提供执行时序的。4)当按时间时序排序在最后的语句执行完后或一个disable语句执行时,程序流程控制跳出该程序块。并行块的格式如下:fork语句1;语句2;.语句n;join第五讲第五讲 行为行为建模建模西安邮电学院通信工程系fork:块名块内声明语句语句1;语句2;.语句n;join其中:块名即标识该块的一个名字,相当于一个标识符。块内说明语句可以是参数说明语句、reg型变量声明语句、integer型变量声明语句、real型变量声明语句、time型变量声明语句、事件(event)说明语句。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系下面举例说明:例4:fork#50r=h35;#100r=hE2;#150r=h00;#200r=hF7;#250-end_wave;/触发事件end_wave.join在这个例子中用并行块来替代了前面例子中的顺序块来产生波形,用这两种方法生成的波形是一样的。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系有名块有名块格式格式:begin:块名end或fork:块名join有名块的块名作用有名块的块名作用:v便于实现对块语句的有效控制便于实现对块语句的有效控制q用disable语句终止或提前结束有名块的执行过程v允许在块内引入局部变量允许在块内引入局部变量q只在块内起作用的变量q变量名可以和块外的其他变量名相同q一定是寄存器类q例:begin:SEQ_BLK reg3:0 sat sat=mask&data;ff=sat;end 第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程的时序控制过程的时序控制在过程块中可以说明过程时序。过程时序控制有三类:v延时执行:#delay,延迟指定时间步后执行语句v边沿敏感事件的时序控制:()q在信号发生翻转后执行语句。q可以说明信号有效沿是上升沿(posedge)还是下降沿(negedge)。q可以用关键字or指定多个参数。v电平敏感事件的时序控制:wait()q直至expr值为真时(非零)才执行语句。q若expr已经为真则立即执行语句。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系延时执行延时执行v语法:=;v执行过程:定时控制-求表达式-赋值v举例:10 reg_a=reg_b;/延时10个单位后,执行赋值。#2 q=a&b;/延时2个单位后,求表达式,赋 /值。v与assign语句延时相似,为惯性延时。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系延时执行延时执行v在testbench中使用延时执行(#延时)施加激励,或在行为模型中模拟实际延时。module muxtwo(out,a,b,sl);input a,b,sl;output out;reg out;always(sl or a or b)if(!sl)#10 out=a;/从从a a到到outout延时延时1010个时间单位个时间单位 else#12 out=b;/从从b b到到outout延时延时1212个时间单位个时间单位endmodule在延时执行中可以使用模块参数在延时执行中可以使用模块参数parameter:module clock_gen(clk);output clk;reg clk;parameter cycle=20;initial clk=0;always#(cycle/2)clk=clk;endmodule第五讲第五讲 行为行为建模建模西安邮电学院通信工程系延时执行例延时执行例module clk_gen_demo(clock1,clock2);output clock1,clock2;reg clock1,clock2;initial begin clock1=0;clock2=1;end always begin#50 clock1=clock1;end always begin#100 clock2=clock2;endendmodule若赋值延时为0,结果将如何?always begin#0 clock1=clock1;end第五讲第五讲 行为行为建模建模西安邮电学院通信工程系块语句中的延时执行块语句中的延时执行v在顺序块中,语句一条接一条地计算执行。v在并行块中,所有语句在各自的延迟之后立即计算执行。begin#5 a=3;#5 a=5;#5 a=4;endfork#5 a=3;#15 a=4;#10 a=5;joinv上面的两个例子在功能上是等价的。Fork-join例子里的赋值故意打乱顺序是为了强调顺序是没有关系的。v注意fork-join块是典型的不可综合语句,并且在一些仿真器中效率较差。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系边沿敏感边沿敏感事件的时序控制事件的时序控制v事件控制:事件控制:(事件控制敏感表事件控制敏感表),等待直到事件发生后执行,等待直到事件发生后执行。v(信号名)信号名有变化就触发事件,例:(clock)a=b;v(posedge信号名)信号名有上升沿就触发事件,例:(posedgeclock)a=b;v(negedge信号名)信号名有下降沿就触发事件 例:(negedgeclock)a=b;v(敏感事件1or敏感事件2or)敏感事件之一触发事件 例:(posedgeresetorposedgeclear)reg_out=0;(aorb)c=a&b;第五讲第五讲 行为行为建模建模西安邮电学院通信工程系边沿敏感边沿敏感事件的时序控制例事件的时序控制例module reg_ adder(out,a,b,clk);input clk;input 2:0 a,b;output 3:0 out;reg 3:0 out;reg 3:0 sum;always(a or b)/若若a或或b发生任何变化,执行发生任何变化,执行#5 sum=a+b;always(negedge clk)/在在clk下降沿执行下降沿执行 out=sum;endmodule模块模块 reg_adder reg_adder 描述了什么电路?描述了什么电路?第五讲第五讲 行为行为建模建模西安邮电学院通信工程系电平敏感事件的时序控制电平敏感事件的时序控制v事件控制:wait(变量或表达式事件),等待直到事件为真(1)执行后续语句。例:module latch_adder(out,a,b,enable);input enable;input 2:0 a,b;output 3:0 out;reg 3:0 out;always(a or b)begin wait(!enable)/当当enable为低电平时执行加法为低电平时执行加法 out=a+b;endendmodulev 综合工具还不支持wait语句。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系过程的时序控制例过程的时序控制例module wait_test;reg clk,waito,edgeo;initial begin clk=0;edgeo=0;waito=0;end /信号赋初值0 always#50 clk=clk;/描述 clk always(clk)#10 edgeo=clk;/描述 edgeo always wait(clk)#10 waito=waito;/描述 waitoendmodule第五讲第五讲 行为行为建模建模西安邮电学院通信工程系仿真中行为描述例仿真中行为描述例在本例中发生下面顺序的事件:1.等待set=1,忽略时刻10的clk的posedge。2.等待下一个clk的posedge,它将在时刻30发生。3.等待3个时间单位,在时刻33(30+3)置q=1。4.等待10个时间单位,在时刻43(33+10)置q=0。5.等待在时刻48发生的set=0。6.等待在时刻70发生且与clk的上升沿同时发生的set=1。7.等待下一个上升沿。时刻70的边沿被忽略,因为到达该语句时时间已经过去了,如例子所示,clk=1。注:在实际硬件设计中,事件6应该被视为一个竞争(race condition)。在仿真过程中,值的确定倚赖于clk、set产生顺序,所以是不可预测的。这是不推荐的建模类型。always wait(set)begin (posedge clk)#3 q=1;#10 q=0;wait(!set);end竞争第五讲第五讲 行为行为建模建模西安邮电学院通信工程系设计中行为描述例设计中行为描述例vRTL级设计中只使用边沿敏感事件的时序控制。module dff(q,qb,d,clk);output q,qb;input d,clk;reg q,qb;always(posedge clk)begin q=d;qb=d;endendmodule简单D触发器dqqb第五讲第五讲 行为行为建模建模西安邮电学院通信工程系延迟赋值语句延迟赋值语句v语法:=;v执行过程:求表达式-定时控制-赋值v举例:reg_a=10reg_b;/延时10个单位后,执行赋值。q=#2(a&b);/求表达式子,延时2个单位后赋值。v与assign语句延时不同,为传输延时。v在延迟赋值语句中表达式的值都有一个隐含的临时存储。可以用来简单精确地模拟寄存器交换和移位。begin temp=b;(posedge clk)a=temp;enda=(posedge clk)b;等价语句等价语句第五讲第五讲 行为行为建模建模西安邮电学院通信工程系延迟赋值语句延迟赋值语句v在下面的每个例子中,a和b的值什么时候被采样?什么时候给a和b赋值?begin a=#5 b;b=#5 a;#10$diplay(a,b);endfork a=#5 b;b=#5 a;#10$diplay(a,b);joinv在左边的例子中,b的值被立即采样(时刻0),这个值在时刻5赋给a。a的值在时刻5被采样,这个值在时刻10赋给b。注意,另一个过程块可能在时刻0到时刻5之间影响b的值,或在时刻5到时刻10之间影响a的值。v在右边的例子中,b和a的值被立即采样(时刻0),保存的值在时刻5被赋值给他们各自的目标。这是一个安全传输。注意,另一个过程块可以在时刻0到时刻5之间影响a和b的值。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系零延迟控制零延迟控制在同一仿真时刻,位于不同always和initial块中的过程语句有可能被同时计算,但是执行(赋值)顺序是不确定的,与使用的仿真器类型有关。在这种情况下,零延迟控制可以保证带零延迟控制的语句将在执行时刻相同的多条语句中最后执行,从而避免发生竞争。需要注意,若存在多条零延迟控制的语句,那么他们之间的执行顺序也是不确定的。initialbeginx=0;y=0;endinitialbegin#0 x=1;#0y=1;end第五讲第五讲 行为行为建模建模西安邮电学院通信工程系例:d的最终值是什么?initialbeginb=1b1;c=1b0;#10b=1b0;endinitialbegind=#25(b|c);end例:该块的执行结束时间是多少?事件的执行顺序是怎样的?每条语句的仿真结束时间是多少?initialbeginx=1b0;#5y=1b1;fork#20a=x;#15b=y;join#40 x=1b1;fork#10p=x;begin#10a=y;#30b=x;end#5m=y;joinend0 x=05y=120b=125a=065x=170m=175a=1,p=1105b=10b=1,c=010b=025d=1第五讲第五讲 行为行为建模建模西安邮电学院通信工程系命名事件命名事件(named event)(named event)v在仿真行为代码中定义一个命名事件可以触发一个活动。命名事件不可在仿真行为代码中定义一个命名事件可以触发一个活动。命名事件不可综合。综合。module add_mult(out,a,b);input 2:0 a,b;output 3:0 out;reg 3:0 out;/*define events*event add,mult;always(a or b)if(a b)-add;/*trigger event*else -mult;/*trigger event*/*respond to an event trigger*always(add)out=a+b;/*respond to an event trigger*always(mult)out=a*b;endmoduleq在例子中,事件add和mult不是端口,但定义为事件,它们没有对应的硬件实现。q由关键字event生明,能在过程块中触发一个使能。不保存任何值。q只能在过程块中触发事件。q-操作符用来触发命名事件。qa大于b,事件add被触发,控制传递到等待add的always块。q如果a小于或等于b,事件mult被触发,控制被传送到等待mult的always块。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系在VerilogHDL语言中,信号有两种赋值方式:(1).非阻塞(Non_Blocking)赋值方式(如b=a;)-块结束后才完成赋值操作。-b的值并不是立刻就改变的。的值并不是立刻就改变的。-这是一种比较常用的赋值方法。(特别在编写可综合模块时)(2).阻塞(Blocking)赋值方式(如b=a;)-赋值语句执行完后,块才结束。-b b的值在赋值语句执行完后立刻就改变的。的值在赋值语句执行完后立刻就改变的。-可能会产生意想不到的结果。赋值语句赋值语句第五讲第五讲 行为行为建模建模西安邮电学院通信工程系非阻塞赋值方式和阻塞赋值方式的区别常给设计人员带来问题。问题主要是给“always”块内的reg型信号的赋值方式不易把握。“always”模块内的reg型信号都是采用非阻塞赋值方式:b=a;这种方式的赋值并不是马上执行的,也就是说always块内的下一条语句执行后,b并不等于a,而是保持原来的值。always块结束后,才进行赋值。而另一种赋值方式阻塞赋值方式,如下所示:b=a;这种赋值方式是马上执行的。也就是说执行下一条语句时,b已等于a。尽管这种方式看起来很直观,但是可能引起麻烦。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系例1:always(posedgeclk)beginb=a;c=b;end例1中的always块中用了非阻塞赋值方式,定义了两个reg型信号b和c,clk信号的上升沿到来时,b就等于a,c就等于b,这里应该用到了两个触发器。请注意:赋值是在always块结束后执行的,c应为原来b的值。这个always块实际描述的电路功能如下图所示:第五讲第五讲 行为行为建模建模西安邮电学院通信工程系例2:always(posedgeclk)beginb=a;c=b;End例2中的always块用了阻塞赋值方式。clk信号的上升沿到来时,将发生如下的变化:b马上取a的值,c马上取b的值(即等于a),生成的电路图如下所示只用了一个触发器来寄存器a的值,又输出给b和c。这大概不是设计者的初衷,如果采用例1所示的非阻塞赋值方式就可以避免这种错误。DCLKQabcclk第五讲第五讲 行为行为建模建模西安邮电学院通信工程系顺序块中的非阻塞过程赋值顺序块中的非阻塞过程赋值v阻塞过程赋值执行完成后再执行在顺序块内下一条语句。v非阻塞赋值不阻塞过程流,不受前面语句执行的影响,直接由块起始时刻开始执行。v同一块中不能混用和。v若过程块中的所有赋值都是非阻塞的,赋值按两步进行:q仿真器计算所有右端表达式的值,保存结果。q在经过时序控制延迟后,仿真器将保存的值赋给左端变量。module swap_vals;reg a,b,clk;initial begin a=0;b=1;clk=0;end always#5 clk=clk;always(posedge clk)begin a=b;/非阻塞过程赋值非阻塞过程赋值 b=a;/交换交换a和和b值值 endendmodule阻塞过程赋值阻塞过程赋值非阻塞过程赋值非阻塞过程赋值过程赋值有两类过程赋值有两类第五讲第五讲 行为行为建模建模西安邮电学院通信工程系阻塞过程赋值阻塞过程赋值顺序块中的阻塞赋值语句按顺序执行。例regx,y,z;reg15:0reg_a,reg_b;integercount;initialbeginx=0;y=1;z=1;count=0;reg_a=16b0;reg_b=reg_a;#15reg_a2=1b1;#10reg_b15:13=x,y,z;count=count+1;end多个非阻塞赋值语句并发执行。例regx,y,z;reg15:0reg_a,reg_b;integercount;initialbeginx=0;y=1;z=1;count=0;reg_a=16b0;reg_b=reg_a;reg_a2=#151b1;reg_b15:13=#10 x,y,z;count=count+1;end第五讲第五讲 行为行为建模建模西安邮电学院通信工程系非阻塞过程赋值非阻塞过程赋值module non_block1;reg a,b,c,d,e,f;initial begin/blocking assignments a=#10 1;/time 10 b=#2 0;/time 12 c=#4 1;/time 16 end initial begin/non-blocking assignments d=#10 1;/time 10 e=#2 0;/time 2 f=#4 1;/time 4 end initial begin$monitor($time,a=%b b=%b c=%b d=%b e=%b f=%b,a,b,c,d,e,f);#100$finish;endendmodule输出结果:输出结果:0a=xb=xc=xd=xe=xf=x2a=xb=xc=xd=xe=0f=x4a=xb=xc=xd=xe=0f=110a=1b=xc=xd=1e=0f=112a=1b=0c=xd=1e=0f=116a=1b=0c=1d=1e=0f=1例例1:阻塞与非阻塞赋值语句行为差别:阻塞与非阻塞赋值语句行为差别第五讲第五讲 行为行为建模建模西安邮电学院通信工程系非阻塞过程赋值非阻塞过程赋值例例3:阻塞与非阻塞赋值语句行为差别:阻塞与非阻塞赋值语句行为差别module seri_block(reg_a,reg_b,data,clock);input data,clock;output reg_a,reg_b;always(posedge clock)begin reg_a=data;reg_b=reg_a;endendmodulemodule seri_block(reg_a,reg_b,data,clock);input data,clock;output reg_a,reg_b;always(posedge clock)begin reg_a=data;reg_b=reg_a;/reg_a的旧值endendmoduleDQDQdatareg_aclkreg_bDQDQdatareg_aclkreg_b第五讲第五讲 行为行为建模建模西安邮电学院通信工程系非阻塞过程赋值非阻塞过程赋值例例5:在时序逻辑设计中主要采用非阻塞赋值语句:在时序逻辑设计中主要采用非阻塞赋值语句module shift(q0,q1,q2,d,clk);output q0,q1,q2;input d,clk;reg q0,q1,q2;always(posedge clk)begin q0 =d;q1=q0;q2=q1;endendmoduleDQDQDQdq0q1q2clk模块shift描述的电路:第五讲第五讲 行为行为建模建模西安邮电学院通信工程系第五讲第五讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v语法1:if(条件表达式)块语句v条件表达式为逻辑真和逻辑1时执行块语句,其它如0、x、z均为条件不成立。v一条没有else语句的if语句映射到硬件上,形成的是一个锁存器。如:always(enableordada)if(enbale)out=data;enabledataout1dd0 xd第五讲第五讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v语法2:if(条件表达式1)块语句1 else if(条件表达式2)块语句2 else if(条件表达式n)块语句n else 块语句n+1v常用于多路选择控制;v条件判断的先后顺序隐含条件的优先级关系;v注意有时电路设计不需要优先级(使用case语句描述可得到并行条件);v可以嵌套使用;v 如无块标识符,else语句与最近的if配对。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v例:Always(enableordada_aordata_b)/信号有变化执行if语句if(enable)out=data_a;/enable=1,执行elseout=data_b;/enable=0,执行v综合结果将产生一个二选一的多路选择器(MUX)。v等效于语句:assignout=(enable)?data_a:data_b;v条件要完备,否则产生锁存器。第五讲第五讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)例:同步清零D触发器描述module dff_sync(q,d,clear,clk);output q;input d,clear,clk;reg q;always(posedge clk)/时钟clk上升沿执行操作 if(!clear)/时钟clk上升沿时刻,clear为0,q=0;/则输出q为0。else q=d;/时钟clk上升沿时刻,clear为1,d赋给q。endmodule第五讲第五讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)举例:异步清零D触发器module dff_sync(q,d,clear,clk);output q;input d,clear,clk;reg q;always(negedge clear or posedge clk)if(!clear)/clear下升沿时刻,clear为0,q=0;/则输出q为0。与clk无关。else qb)beginout1=int1;out2=int2;endelsebeginout1=int2;out2b7:0输出高电平,否则输出低电平。设计一个4位的移位寄存器。(可选做)第14周末交。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服