一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-09-07 14:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

初識Verilog描述-1

“Verilog不同于C,Python,JAVA等軟件語言,Verilog是以數(shù)字電路知識為背景支撐,以對數(shù)字電路系統(tǒng)進(jìn)行描述的一門語言。因此用Verilog描述數(shù)字電路,必須要有數(shù)字電路知識為背景支撐。否則描述出來的電路性能將會很差。本篇我們先了解一下最基本的Verilog對數(shù)字電路描述的方法與代碼風(fēng)格,具體語法細(xì)節(jié)在這不做過多解釋?!?/p>

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

如下圖所示,為一個(gè)實(shí)例電路外部原理圖:

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

電路名字

輸入端口以及位寬

輸出端口以及位寬

端口描述有兩種方式。

以上圖為例:

(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

);

下圖為其內(nèi)部電路結(jié)構(gòu):

電路內(nèi)部需要描述元素有:

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

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

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

節(jié)點(diǎn)信號add_out(對應(yīng)電路上的OUT),為加法器的輸出。如果加法器是用always塊實(shí)現(xiàn)的,如下:

always @( * ) begin

add_out = a+b;

end

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

如果加法器是用assign語句實(shí)現(xiàn)的,如下:

assign add_out = a+b;

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

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

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

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

(1) 時(shí)鐘信號上升沿驅(qū)動(dòng),復(fù)位信號低電平有效,與時(shí)鐘異步復(fù)位:

always @( posedge clk or negedge rst_n ) begin

if( !rst_n )

data_out <= 8h00;

else

data_out <= data_in;

end

(2)時(shí)鐘信號上升沿驅(qū)動(dòng),復(fù)位信號高電平有效,與時(shí)鐘異步復(fù)位:

always @( posedge clk or posedge rst ) begin

if( rst )

data_out <= 8h00;

else

data_out <= data_in;

end

(3) 時(shí)鐘信號下降沿驅(qū)動(dòng),復(fù)位信號高電平有效,與時(shí)鐘同步復(fù)位:

always @( negedge clk ) begin

if( rst_n )

data_out <= 8h00;

else

data_out <= data_in;

end

(4)時(shí)鐘信號上升沿驅(qū)動(dòng),復(fù)位信號低電平有效,與時(shí)鐘同步復(fù)位,并且?guī)в懈唠娖绞鼓苄盘枺?/p>

always @( posedge clk ) begin

if( !rst_n )

data_out <= 8h00;

else if( enable )

data_out <= data_in;

else

data_out <= data_out;

end

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

(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描述數(shù)字電路的結(jié)構(gòu)與注意事項(xiàng),具體語法可自行學(xué)習(xí)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    502

    瀏覽量

    43351
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112299
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1639

    瀏覽量

    81934

原文標(biāo)題:初識Verilog描述-1

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)字電路和模擬電路的工作各有何特點(diǎn)?

    數(shù)字電路和模擬電路電路設(shè)計(jì)和控制中兩種主要的電路類型。雖然它們都是電路的基本組成部分,但它們在工作原理、特點(diǎn)和應(yīng)用方
    的頭像 發(fā)表于 12-08 10:06 ?3393次閱讀

    華為《高速數(shù)字電路設(shè)計(jì)教材》

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

    數(shù)字電路的應(yīng)用介紹

      當(dāng)今時(shí)代,數(shù)字電路已廣泛地應(yīng)用于各個(gè)領(lǐng)域。本報(bào)將在“電路與制作”欄里,刊登系列文章介紹數(shù)字電路的基本知識和應(yīng)用實(shí)例?!   ≡诮榻B基本知識時(shí),我們將以集成數(shù)字電路為主,該
    發(fā)表于 08-28 15:36

    新編數(shù)字電路數(shù)字邏輯

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

    數(shù)字電路設(shè)計(jì)

    數(shù)字電路設(shè)計(jì) 關(guān)于高速數(shù)字電路的電氣特性,設(shè)計(jì)重點(diǎn)大略可分為三項(xiàng): 正時(shí)(Timing) :由于數(shù)字電路
    發(fā)表于 08-26 19:08 ?2935次閱讀

    《VHDL與數(shù)字電路設(shè)計(jì)》

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

    數(shù)字電路

    數(shù)字電路篇,VHDL資料,又需要的下來看看
    發(fā)表于 08-08 17:03 ?67次下載

    什么是模擬電路 什么是數(shù)字電路

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

    數(shù)字電路比模擬電路的優(yōu)點(diǎn)

    本文主要詳細(xì)介紹了數(shù)字電路比模擬電路的優(yōu)點(diǎn),分別是數(shù)字電路結(jié)構(gòu)簡單、數(shù)字電路容易標(biāo)準(zhǔn)化、數(shù)字電路能夠滿足對信號保真度的要求。
    發(fā)表于 05-16 17:50 ?1.9w次閱讀

    VHDL概述及在描述數(shù)字電路時(shí)的結(jié)構(gòu)

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

    基于FPGA的數(shù)字電路設(shè)計(jì)

    數(shù)字電路作為一門專業(yè)基礎(chǔ)課,除了介紹數(shù)字電路的理論知識外,更需要通過配套的實(shí)驗(yàn)平臺將理論知識和實(shí)踐環(huán)節(jié)相結(jié)合,培養(yǎng)學(xué)生的動(dòng)手能力和實(shí)踐創(chuàng)新能力。
    的頭像 發(fā)表于 08-16 12:03 ?8096次閱讀
    基于FPGA的<b class='flag-5'>數(shù)字電路</b>設(shè)計(jì)

    數(shù)字電路設(shè)計(jì)中什么時(shí)候需要分析競爭與冒險(xiǎn)

    ,什么時(shí)候需要關(guān)心(分析)競爭與冒險(xiǎn)? 3) 如何避免競爭與冒險(xiǎn)導(dǎo)致的問題呢? 經(jīng)過多年實(shí)際工作的實(shí)踐與理解,在此文略作分析。 2. 競爭與冒險(xiǎn)的產(chǎn)生 在數(shù)字電路中,調(diào)用一個(gè)AND gate,用verilog可以如下描述: as
    的頭像 發(fā)表于 08-09 14:43 ?3737次閱讀
    <b class='flag-5'>數(shù)字電路</b>設(shè)計(jì)中什么時(shí)候<b class='flag-5'>需要</b>分析競爭與冒險(xiǎn)

    數(shù)字電路設(shè)計(jì)的基本流程

    數(shù)字電路設(shè)計(jì)是數(shù)字電路最為關(guān)鍵及重要的一步,今天我們將從各個(gè)流程為大家介紹完整的數(shù)字電路設(shè)計(jì)!
    的頭像 發(fā)表于 07-10 17:14 ?8613次閱讀

    建立/保持時(shí)間對數(shù)字電路的影響

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

    數(shù)字電路編程語言介紹

    數(shù)字電路編程語言是專門為描述和模擬數(shù)字電路而設(shè)計(jì)的編程語言。它們通常具有以下特點(diǎn): 硬件描述語言(HDL) :大多數(shù)數(shù)字電路編程語言都是硬件
    的頭像 發(fā)表于 01-24 09:39 ?783次閱讀