verilog中clock不使用negedge的三個原因

          Verilog中典型的counter邏輯是這樣的:

          always@(posedge clk or negedge reset) begin
              
          if(reset == 1'b0)
                  reg_inst1 <= 8'd0;
              else if(clk == 1'b1)
                  reg_inst1 <= reg_inst1 + 1'd1;
              else
                  reg_inst1 
          <= reg_inst1;
          end

          clk為什么要用posedge,而不用negedge呢?請教丹內先生,答案如下:
          • 一般情況下,系統中統一用posedge,避免用negedge,降低設計的復雜度,可以減少出錯。
          • 在ModelSim仿真中,時鐘是很嚴格的,但是在真實的晶振所產生的clock卻是不嚴格的,比如高電平和低電平的時間跨度不一樣,甚至非周期性的微小波動。如果只使用posedge,則整個系統的節拍都按照clock上升延對齊,如果用到了negedge,則系統的節拍沒有統一到一個點上。上升延到上升延肯定是一個時鐘周期,但是上升延到下降延卻很可能不是半個周期。這都會出現問題。
          • FPGA特有的東西:Global CLK。FPGA內部有專門的CLK“線”,和一般的邏輯門的走法不一樣,目的是為了保證整個FPGA片內的時鐘一致,這個東西就叫Global?。茫蹋恕#ㄟ@個和negedge有什么關系?沒搞懂)

          posted on 2007-04-23 17:40 肥蟲 閱讀(3251) 評論(0)  編輯  收藏 所屬分類: Verilog


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 莱州市| 绥滨县| 安义县| 略阳县| 凤冈县| 乌什县| 临海市| 塔城市| 宣化县| 淮北市| 日照市| 南汇区| 通许县| 驻马店市| 庄浪县| 虹口区| 隆尧县| 饶阳县| 曲周县| 思茅市| 沅江市| 商城县| 南通市| 寻甸| 砀山县| 博客| 云和县| 华池县| 五莲县| 呼图壁县| 太湖县| 楚雄市| 长治县| 惠安县| 拉萨市| 基隆市| 社会| 葵青区| 西吉县| 固原市| 新源县|