衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數字電路里面有什么元素需要被描述?

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-09-07 14:47 ? 次閱讀

初識Verilog描述-1

“Verilog不同于C,Python,JAVA等軟件語言,Verilog是以數字電路知識為背景支撐,以對數字電路系統進行描述的一門語言。因此用Verilog描述數字電路,必須要有數字電路知識為背景支撐。否則描述出來的電路性能將會很差。本篇我們先了解一下最基本的Verilog對數字電路描述的方法與代碼風格,具體語法細節在這不做過多解釋。”

在了解Verilog基本構成之前,先要了解數字電路里面有什么元素需要被描述。

如下圖所示,為一個實例電路外部原理圖:

從外部看一個電路需要描述的元素如下:

電路名字

輸入端口以及位寬

輸出端口以及位寬

端口描述有兩種方式。

以上圖為例:

(1)

module share_1(

clk,

rst_n,

a,

b,

data_out

);

input clk;

input rst_n;

input[7:0] a;

input[7:0] b;

output[8:0] data_out;

(2)

module share_1(

input clk,

input rst_n,

input [7:0] a,

input [7:0] b,

output [8:0] data_out

);

下圖為其內部電路結構:

電路內部需要描述元素有:

信號的類型:reg型(所有在always電路里面將要做改變的信號),wire型(電路信號連線)

如上例電路:輸入信號本來就為電路信號連線,且在端口聲明中已經聲明,無需再做wire 聲明。

輸出信號data_out是寄存器的輸出,因此聲明為: reg[8:0] data_out;

節點信號add_out(對應電路上的OUT),為加法器的輸出。如果加法器是用always塊實現的,如下:

always @( * ) begin

add_out = a+b;

end

則聲明為reg型: reg[8:0] add_out;

如果加法器是用assign語句實現的,如下:

assign add_out = a+b;

則聲明為wire型: wire[8:0] add_out;

注意:所有聲明必須帶上位寬,否則系統工具將其默認為單位寬,如上信號add_out為9位寬,因此聲明為 reg [8:0] add_out;

組合邏輯電路: 可以利用 assign 或者 always @(*) 語句描述。一般復雜的組合邏輯電路利用 always @(*)語句塊描述。如上加法器的實現既可以用always語句實現,也可以利用assign語句實現。

寄存器(有如下幾種常用的不同的寄存器模型):

(1) 時鐘信號上升沿驅動,復位信號低電平有效,與時鐘異步復位:

always @( posedge clk or negedge rst_n ) begin

if( !rst_n )

data_out <= 8h00;

else

data_out <= data_in;

end

(2)時鐘信號上升沿驅動,復位信號高電平有效,與時鐘異步復位:

always @( posedge clk or posedge rst ) begin

if( rst )

data_out <= 8h00;

else

data_out <= data_in;

end

(3) 時鐘信號下降沿驅動,復位信號高電平有效,與時鐘同步復位:

always @( negedge clk ) begin

if( rst_n )

data_out <= 8h00;

else

data_out <= data_in;

end

(4)時鐘信號上升沿驅動,復位信號低電平有效,與時鐘同步復位,并且帶有高電平使能信號:

always @( posedge clk ) begin

if( !rst_n )

data_out <= 8h00;

else if( enable )

data_out <= data_in;

else

data_out <= data_out;

end

給出兩種完整的描述方式,大家自行體會,電路功能為帶寄存器輸出的8位無符號數加法器:

(1)

module share_1(

clk,

rst_n,

a,

b,

data_out

);

input clk;

input rst_n;

input[7:0] a;

input[7:0] b;

output[8:0] data_out;

reg[8:0] data_out;

wire[8:0] add_out;

assign add_out = a+b;

always @( posedge clk or negedge rst_n ) begin

if( !rst_n )

data_out <= 9h00;? ? ? ? ? ? ? ? ? ? ? ? ??

else

data_out <= add_out;? ? ? ? ? ? ? ? ? ? ? ??

end

endmodule

(2)

module share_1(

input clk,

input rst_n,

input [7:0] a,

input [7:0] b,

output [8:0] data_out

);

reg[8:0] data_out ;

reg[8:0] add_out;

always @( * ) begin

add_out = a+b;

end

always @( posedge clk or negedge rst_n ) begin

if( !rst_n )

data_out <= 9h00;? ? ? ? ? ? ? ? ? ? ? ??

else

data_out <= add_out;? ? ? ? ? ? ? ? ? ? ??

end

endmodule

注:這里只是帶著大家從電路入手,宏觀的了解一下Verilog描述數字電路的結構與注意事項,具體語法可自行學習。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 邏輯電路
    +關注

    關注

    13

    文章

    494

    瀏覽量

    42709
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110391
  • 數字電路
    +關注

    關注

    193

    文章

    1629

    瀏覽量

    80822

原文標題:初識Verilog描述-1

文章出處:【微信號:LF-FPGA,微信公眾號:小魚FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數字電路和模擬電路的工作各有何特點?

    數字電路和模擬電路電路設計和控制中兩種主要的電路類型。雖然它們都是電路的基本組成部分,但它們在工作原理、特點和應用方
    的頭像 發表于 12-08 10:06 ?2829次閱讀

    華為《高速數字電路設計教材》

    華為《高速數字電路設計教材》這本書是專門為電路設計工程師寫的。主要描述模擬電路原理在高速數字電路設計中的分析應用
    發表于 09-01 23:20

    高速數字電路設計中的四種類型的電抗

    四個電路概念區分了高頻數字電路和低頻數字電路的研究:電容、電感、共模電容、共模電感。這四個概念有助于我們對高速數字電路元素
    發表于 04-11 10:08

    數字電路的應用介紹

      當今時代,數字電路已廣泛地應用于各個領域。本報將在“電路與制作”欄里,刊登系列文章介紹數字電路的基本知識和應用實例。    在介紹基本知識時,我們將以集成數字電路為主,該
    發表于 08-28 15:36

    新編數字電路數字邏輯

    內容簡介  為適應電子信息時代的新形勢和應用型本科院校培養應用型人才的迫切需要,經過教學改革與實踐,我們編寫了這本《新編數字電路數字邏輯》教材。全書共分8章,分別為:數字電路基礎知識
    發表于 10-28 21:36

    DIY Protoboard數字電路

    描述DIY Protoboard 數字電路用于電子電路的 0.100" 原型板。這對數字和模擬設計都有好處
    發表于 07-27 06:31

    數字電路設計

    數字電路設計 關于高速數字電路的電氣特性,設計重點大略可分為三項: 正時(Timing) :由于數字電路
    發表于 08-26 19:08 ?2852次閱讀

    《VHDL與數字電路設計》

    《VHDL與數字電路設計》是有盧毅、賴杰主編的,主要介紹涉及數字系統設計的多方面原理、技術及應用,主要內容有數字系統的基本設計思想、設計方法和設計步驟, VHDL 硬件描述語言
    發表于 07-11 15:54 ?0次下載
    《VHDL與<b class='flag-5'>數字電路</b>設計》

    數字電路

    數字電路篇,VHDL資料,又需要的下來看看
    發表于 08-08 17:03 ?66次下載

    什么是模擬電路 什么是數字電路

      模擬信號和數字信號的特點不同,處理這兩種信號的方法和電路也不同。一般地, 電子電路可分為模擬電路數字電路兩大類。    1. 模擬
    的頭像 發表于 10-16 10:25 ?10.1w次閱讀

    VHDL概述及在描述數字電路時的結構

    本文介紹了一種硬件描述語言VHDL,以及它在描述數字電路時的結構。我們還將介紹一些介紹性的示例電路描述,并討論“std_logical”和“
    發表于 07-21 11:30 ?2635次閱讀
    VHDL概述及在<b class='flag-5'>描述</b><b class='flag-5'>數字電路</b>時的結構

    基于FPGA的數字電路設計

    數字電路作為一門專業基礎課,除了介紹數字電路的理論知識外,更需要通過配套的實驗平臺將理論知識和實踐環節相結合,培養學生的動手能力和實踐創新能力。
    的頭像 發表于 08-16 12:03 ?7689次閱讀
    基于FPGA的<b class='flag-5'>數字電路</b>設計

    數字電路設計的基本流程

    數字電路設計是數字電路最為關鍵及重要的一步,今天我們將從各個流程為大家介紹完整的數字電路設計!
    的頭像 發表于 07-10 17:14 ?7950次閱讀

    建立/保持時間對數字電路的影響

    之一,它對數字電路的運作和性能產生著重要的影響。在本文中,我們將探討時間與數字電路之間的關系,并分析它對于數字電路性能的影響。 數字電路包括各類邏輯門、計數器、觸發器和存儲器等多種器件
    的頭像 發表于 10-29 14:21 ?795次閱讀

    數字電路編程語言介紹

    數字電路編程語言是專門為描述和模擬數字電路而設計的編程語言。它們通常具有以下特點: 硬件描述語言(HDL) :大多數數字電路編程語言都是硬件
    的頭像 發表于 01-24 09:39 ?161次閱讀
    真人游戏网| 百家乐官网娱乐城怎么样| 百家乐在线小游戏| 高雄市| 百家乐官网几点不用补牌| 最可信百家乐娱乐城| 澳门百家乐官网下路写法| 百家乐信誉博彩公司| 上高县| 网上百家乐赌博网| 百家乐官网过两关| 百家乐看图赢钱| 百家乐官网博彩的玩法技巧和规则 | 北京德州扑克比赛| 百家乐官网桌小| 威尼斯人娱乐网假吗| 百家乐官网中的小路怎样| 上海二八杠分析仪| 新濠百家乐官网的玩法技巧和规则 | 百家乐博彩策略| 利来国际娱乐网| 百家乐庄闲赢负表| 金博士百家乐官网娱乐城 | 百家乐娱乐网网77scs| 百家乐官网赌博导航| 金博士娱乐城优惠| 百家乐官网桌布无纺布| 大发888娱乐场下载| 澳门百家乐赢钱技术| 百家乐官网注册送彩金平台| 大发888娱乐场游戏下载| 做生意的怎样招财| 百家乐官网现场投注平台| 筒子二八杠分析仪| 百家乐五式缆投法| 太阳百家乐官网3d博彩通| 德州扑克桌| 百家乐出庄概率| 百家乐官网三珠连跳打法| 克拉克百家乐的玩法技巧和规则| 游艇会百家乐官网的玩法技巧和规则 |