久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

學習VerilogHDL的一些心得

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年01月02日   【字體:

經過一周的課程設計,小盆友們對Verilog應該也有了一定的了解了,VerilogHDL是經過國際電子工程師協會認證的硬件描述語言,個人認為它的勢頭有超過VHDL的趨勢,它廣泛應用于FPGA和CPLD的編程,小弟有幸在大二接觸這門語言,并在Altera的CPLD上做過一些簡單編程,繪制了一塊簡單的EPM240核心板,不過一直以來都是歷程看得多,但親自動手編程少,對語法認識很淺薄,這次課設親自動手編寫了盡300行程序,有了一些小體會。

       關于Verilog的賦值,我個人傾向于是用非阻塞賦值方法,網上說這樣不容易出現競爭和冒險,我覺得非阻塞是同步賦值,穩定性比較高,不會相互干擾。在同一個always語句中不能同時是用非阻塞和阻塞賦值,這一點是課設期間發現的。關于不能在多個always語句中給同一個變量賦值,在不久以前我編寫超聲波調制程序時發現這個問題,其實仔細想想也是有道理的,就像門電路輸出不能直接并聯一樣,如果兩個激勵對一個網點提供了不同的電平,那不就相當于短路了嗎。收特權同學的教程影響,我一般習慣為每個線變量定義一個寄存器變量對應,在always語句中一般只給寄存器變量賦值,在always外用assign語句把寄存器值映射到線變量上。在今天驗箱時候發現我的數碼管掃描效果有問題,兩個數碼管中多有對方顯示數字的殘影,這個問題在早期用單片機調數碼管的時候很常見,因為單片機執行指令時串行的,段位賦值不能同時進行,所以段值可能會殘留到下次位賦值,造成每一位數碼管都有上一位的數值殘影,我在狀態機執行的時候是以clk為敏感信號的,位切換在另一個always中以clk四分頻為時鐘,由于都是非阻塞賦值,在位切換后有一個clk周期的時間段值是保持不變的,這就造成了殘影,解決方法很簡單,段譯碼過程的always中醫段值變化為敏感信號,段值一變立刻譯碼,為段輸出賦值。一下附代碼

wire nclk;                                       //位切換時鐘
assign nclk=cnt[1];                          //cnt是分頻計數寄存器,記clk上升沿 以自己每一位作為時鐘輸出
always @(posedge nclk) begin
if(!rst) show=show0;
else if(cnt[2]==0) begin
show=show0;                                               //段寄存器賦值
wei=3'b001;                                                  //位切換
  end
else if(cnt[2]==1) begin
show=show1;
wei=3'b000;
  end
         end
always @(show) begin                              //原本的敏感信號時  posedge clk
if(!rst) seg_r<=8'd0;
else begin
case(show)
4'h0: seg_r <= seg0;                     //seg0……等都是之前定義的參量 parameter
4'h1: seg_r <= seg1; 
4'h2: seg_r <= seg2;
4'h3: seg_r <= seg3;
4'h4: seg_r <= seg4;
4'h5: seg_r <= seg5;
4'h6: seg_r <= seg6;
4'h7: seg_r <= seg7;
4'h8: seg_r <= seg8;
4'h9: seg_r <= seg9;
default: ;
endcase
end
end
assign seg=seg_r;                              //通過寄存器為線變量賦值

當然,如果在case里同時為輸出和位切換賦值 那就更好了 也是同步的。
       目前也就想起這么多,有新的內容等我領悟了再加上,文章有不足之處歡迎童鞋們指正。接下來說點別的。
       咱們用的那個MAX Plus II是Altera很久以前出的,現在已近很少人使用了,QuartusII是目前Altera的主流,由于功能龐大,編譯仿真都比較慢,而最新的版本不支持仿真,因為ModelSim仿真軟件可以與QuartusII無縫對接,仿真效果也很好,所以Altera就放棄了這部分的功能,還有一個叫Xilinx的公司是在可編程邏輯器件上與Altera并駕齊驅的,它提供的ISE是針對它本公司器件所研發的編譯器,這個我也沒用過,Altera是亞太地區編程邏輯器件的主流。
       FPGA是現場可編程邏輯門陣列,CPLD是復雜可編程邏輯器件,都是目前比較熱門的技術,電氣的童鞋很可能要用到CPLD設計邏輯代替門芯片,這一點張純江老師上課時候說過,如果用CPLD做時序邏輯控制電機,可以精確控制死區時間,大量驅動邏輯都可以編寫在其中,減小驅動電路體積,提高穩定性,當然這只是簡單應用,FPGA/CPLD通常應用于時序要求高,速度要求高的地方,用來作AD采集的控制時最合適的了,可以完整獲得采集到的波形,不會像處理器那樣受到中斷的限制(這好像是趙永科掌門說的),更高端還可以在FPGA中編寫CPU甚至DSP的IP核,當然這不是一個人能搞定的,Altera為我們提供了一些免費授權的IP核還有一些高端的需要付費的IP核,用戶只需要直接調用IP就能在自己的芯片中生成相關結構,這樣可以將CPU DSP PLL RAM FIFO IO做在一個芯片里,減小體積,降低功耗。當然啦,這些高端的東西小弟也不懂,有待繼續研究。
          有對這方面感興趣的童鞋可以看看北航博客系列叢書中吳厚航寫的那本《深入淺出玩轉FPGA》,作者網名:特權同學,他還有個視頻教程,就是普通話說得慘點。這只是一本入門級書,配合Altera的官方教程可以對FPGA有些初步認識,如果想深入研究那就要*自己不斷查閱資料了,親自實踐了。Living今天就說到這里,歡迎大家轉載。

關閉窗口

相關文章

主站蜘蛛池模板: 色眯眯视频在线观看 | 日日欧美| 亚洲最色视频 | 欧美日韩国产中文 | 97精品国产97久久久久久免费 | 国产综合久久久 | 国产精品国产成人国产三级 | 国产91久久久久 | 亚洲欧洲精品成人久久奇米网 | 国产精品久久久久久52avav | 在线成人福利 | 日韩免费视频 | 成人在线视频免费观看 | 91精品一区二区三区久久久久久 | 久久久国产一区二区三区 | 国产激情偷乱视频一区二区三区 | 日日摸夜夜添夜夜添精品视频 | 成人免费av | 午夜成人在线视频 | 亚洲视频在线一区 | 狼人伊人影院 | 国产农村妇女精品一二区 | 久久综合狠狠综合久久综合88 | 91麻豆精品国产91久久久久久 | av三级| 国产日韩欧美一区 | 免费在线观看av的网站 | 黄色免费av | 久久lu | 羞羞色视频 | 视频一区二区在线观看 | 毛片99| 精品国产欧美一区二区三区成人 | 欧美日韩国产精品一区 | 91私密视频| 国产日韩一区二区 | 午夜精品一区 | 亚洲午夜久久久 | 综合久久99 | 羞羞的视频免费观看 | 欧美性乱|