第七张行为模型(Behavoral Modeling).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平行區塊 其關鍵字為fork和join,在用特殊的模擬功能,其有以下之特性: 在平行區塊中的所有敘述會同時執行。 在平行區塊中,敘述的執行順序是依照延遲控制與事件控 制。 所有時序控制與事件驅動的時間,都相對進入區塊的模擬時 間。 循序區塊與平行區塊最大的不同是,所有在平行區塊中的敘述皆執行於區塊啟動時,因此順序是不重要的,除了每一個敘述皆起始模擬時間0之外,結果皆相同,所以區塊結束會在模擬時間20而非35。 * //範例1:包含延遲的平行區塊 reg x, y; reg [1:0] z, w; initial fork x=1’b0; //完成執行在模擬時間0 #5 y=1’b1; //完成執行在模擬時間5 #10 z={x,y}; //完成執行在模擬時間10 #20 w={y,x}; //完成執行在模擬時間20 join 範例7-27 平行區塊 * //會產生競爭情況的平行區塊 reg x, y; reg [1:0] z,w; initial fork x=1’b0; y=1’b1; z={x,y}; w={y,x}; join * 7.7.2區塊的特殊特性(Special Features of Blocks) 我們討論三種區塊敘述的特殊功能:巢狀區塊(Nasted Blocks)、命名區塊(Named Blocks)與禁能命名區塊(Disabling of Named Blocks)。 巢狀區塊(Nasted Blocks) 區塊可以巢狀使用,循序區塊和並行區塊是可以混合在一起的。 * //巢狀區塊 initial begin x = 1’b0; fork #5 y=1’b1; #10 z= {x,y}; join #20 w = {y,x}; end 範例7-28 巢狀區塊 * 命名區塊(Named Blocks) 區塊是可以命名的: 命名區塊中可宣告區域變數。 命名區塊是設計階層的一部份,在命名區塊中的變數可用階 層化命名參照存取。 可以禁能一個命名區塊,也就是停止這區塊的執行。 * //命名區塊 module top; initial begin:block1 //循序區塊命名為block1 integer i; //整數i是區塊block1的靜態區塊區域變數 //可以用以下的階層化命名來取得 //top.block1.i … … end 範例7-29 命名區塊 * initial fork:block2 //平行區塊命名為block2 reg i; //暫存器i是block2的靜態區域變數 //可以用以下的階層化命名來取得, //top.block2.i … … join 範例7-29 命名區塊(續) * 禁能命名區塊(Disabling of Named Blocks) 關鍵字disable提供一個方法來結束一個命名區塊的執行。 //說明:尋找flag(向量變數)中第一個1的位元 reg[15:0] flag; integer i; //整數持續計數 initial begin flag = 16’b 0010_0000_0000_0000; i=0; begin :block1 //將while迴圈內的主要區控命名為 //block1。 範例7-30 禁止命名區塊 * while(i 16 ) begin if (flag [i] ) begin $display(“Encountered a TRUE bit at element number %d”,i); disable block1; //因發現“1”位元所以禁能block1。 end i=i+1; end end end 範例7-30 禁止命名區塊(續) * 7.8 產生區塊(Generate Blocks) 在模擬開始之前動態產生所需的區塊。這樣的產生方式,很適合開發參數化的設計模型,針對多位元的訊號所需的重複動 作,可以產生出對應的模組;

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档