女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]一個(gè)VHDL程序代碼包含實(shí)體(entity)、結(jié)構(gòu)體(architecture)、配置(configuration)、程序包(package)、庫(library)等。一、數(shù)據(jù)類型1.用戶自定義數(shù)據(jù)類


一個(gè)VHDL程序代碼包含實(shí)體(entity)、結(jié)構(gòu)體(architecture)、配置(configuration)、程序包(package)、庫(library)等。

一、數(shù)據(jù)類型

1.用戶自定義數(shù)據(jù)類型

使用關(guān)鍵字TYPE,例如:

TYPE my_integer IS RANGE -32 TO 32;

–用戶自定義的整數(shù)類型的子集

TYPE student_grade IS RANGE 0 TO 100;

–用戶自定義的自然數(shù)類型的子集

TYPE state IS (idle, forward, backward, stop);

–枚舉數(shù)據(jù)類型,常用于有限狀態(tài)機(jī)的狀態(tài)定義

一般來說,枚舉類型的數(shù)據(jù)自動(dòng)按順序依次編碼。

2.子類型

在原有已定義數(shù)據(jù)類型上加一些約束條件,可以定義該數(shù)據(jù)類型的子類型。VHDL不允許不同類型的數(shù)據(jù)直接進(jìn)行操作運(yùn)算,而某個(gè)數(shù)據(jù)類型的子類型則可以和原有類型數(shù)據(jù)直接進(jìn)行操作運(yùn)算。

子類型定義使用SUBTYPE關(guān)鍵字。

3.數(shù)組(ARRAY)

ARRAY是將相同數(shù)據(jù)類型的數(shù)據(jù)集合在一起形成的一種新的數(shù)據(jù)類型。

TYPE type_name IS ARRAY (specification) OF data_type;

–定義新的數(shù)組類型語法結(jié)構(gòu)

SIGNAL signal_name: type_name [:= initial_value];

–使用新的數(shù)組類型對SIGNAL,CONSTANT, VARIABLE進(jìn)行聲明

例如:

TYPE delay_lines IS ARRAY (L-2 DOWNTO 0) OF SIGNED (W_IN-1 DOWNTO 0);

–濾波器輸入延遲鏈類型定義

TYPE coeffs IS ARRAY (L-1 DOWNTO 0) OF SIGNED (W_COEF-1 DOWNTO 0);

–濾波器系數(shù)類型定義

SIGNAL delay_regs: delay_lines;– 信號延遲寄存器聲明

CONSTANT coef: coeffs := (); –常量系數(shù)聲明并賦初值

4.端口數(shù)組

在定義電路的輸入/輸出端口時(shí),有時(shí)需把端口定義為矢量陣列,而在ENTITY中不允許使用TYPE進(jìn)行類型定義,所以必須在包集(PACKAGE)中根據(jù)端口的具體信號特征建立用戶自定義的數(shù)據(jù)類型,該數(shù)據(jù)類型可以供包括ENTITY在內(nèi)的整個(gè)設(shè)計(jì)使用。

—————————————PACKAGE———————————-

library ieee;

use ieee.std_logic_1164.all;

——————————————

PACKAGE my_data_types IS

TYPE vector_array IS ARRAY (natural range <>) OF STD_LOGIC_VECTOR(7 DOWNTO 0); –聲明8位的數(shù)組

END my_data_types;

———————————–Main Code—————————————

library ieee;

use ieee.std_logic_1164.all;

use work.my_data_types.all; –用戶自定義包集

——————————————————————

ENTITY mux IS

PORT (inp: IN vector_array(0 to 3);

END mux;

——————————————————————————-

5.有符號數(shù)和無符號數(shù)

要使用SIGNED和UNSIGNED類型數(shù)據(jù),必須在代碼開始部分聲明ieee庫中的包集std_logic_arith。它們支持算術(shù)運(yùn)算但不支持邏輯運(yùn)算。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

……

SIGNAL a: IN SIGNED (7 DOWNTO 0);

SIGNAL b: IN SIGNED (7 DOWNTO 0);

SIGNAL x: IN SIGNED (7 DOWNTO 0);

……

v <= a + b;

w <= a AND b;–非法(不支持邏輯運(yùn)算)

——————————————————————————-

STD_LOGIC_VECTOR類型的數(shù)據(jù)不能直接進(jìn)行算術(shù)運(yùn)算,只有聲明了std_logic_signed和std_logic_unsigned兩個(gè)包集后才可以像SIGNED和UNSIGNED類型的數(shù)據(jù)一樣進(jìn)行算術(shù)運(yùn)算。

6.數(shù)據(jù)類型轉(zhuǎn)換

在ieee庫的std_logic_arith包集中提供了許多數(shù)據(jù)類型轉(zhuǎn)換函數(shù):

1. conv_integer(p): 將數(shù)據(jù)類型為INTEGER,UNSIGNED,SIGNED,STD_ULOGIC或STD_LOGIC的操作數(shù)p轉(zhuǎn)換成INTEGER類型。不包含STD_LOGIC_VECTOR。

2. conv_unsigned(p,b):將數(shù)據(jù)類型為INTEGER,UNSIGNED,SIGNED或STD_ULOGIC的操作數(shù)p轉(zhuǎn)換成位寬為b的UNSIGNED類型數(shù)據(jù)。

3. conv_signed(p,b):將數(shù)據(jù)類型為INTEGER, UNSIGNED, SIGNED或STD_ULOGIC的操作數(shù)p轉(zhuǎn)換成位寬為b的SIGNED類型的數(shù)據(jù)。

4. conv_std_logic_vector(p, b):將數(shù)據(jù)類型為INTEGER, UNSIGNED, SIGNED或STD_LOGIC的操作數(shù)p轉(zhuǎn)換成位寬為b的STD_LOGIC_VECTOR類型的數(shù)據(jù)。

二、運(yùn)算操作符和屬性

1.運(yùn)算操作符

l賦值運(yùn)算符

賦值運(yùn)算符用來給信號、變量和常數(shù)賦值。

<=用于對SIGNAL類型賦值;

:=用于對VARIABLE,CONSTANT和GENERIC賦值,也可用于賦初始值;

=>用于對矢量中的某些位賦值,或?qū)δ承┪恢獾钠渌毁x值(常用OTHERS表示)。

例:

SIGNAL x: STD_LOGIC;

VARIABLE y: STD_LOGIC_VECTOR(3 DOWNTO 0);–最左邊的位是MSB

SIGNAL w: STD_LOGIC_VECTOR(0 TO 7);–最右邊的位是MSB

x <= ‘1’;

y := “0000”;

w <= “1000_0000”;– LSB位為1,其余位為0

w

l邏輯運(yùn)算符

操作數(shù)必須是BIT, STD_LOGIC或STD_ULOGIC類型的數(shù)據(jù)或者是這些數(shù)據(jù)類型的擴(kuò)展,即BIT_VECTOR, STD_LOGIC_VECTOR,STD_ULOGIC_VECTOR。

VHDL的邏輯運(yùn)算符有以下幾種:(優(yōu)先級遞減)

?NOT —— 取反

?AND —— 與

?OR —— 或

?NAND —— 與非

?NOR —— 或非

?XOR —— 異或

l算術(shù)運(yùn)算符

操作數(shù)可以是INTEGER, SIGNED, UNSIGNED, 如果聲明了std_logic_signed或std_logic_unsigned,可對STD_LOGIC_VECTOR類型的數(shù)據(jù)進(jìn)行加法或減法運(yùn)算。

+ —— 加

-—— 減

* —— 乘

/ —— 除

** —— 指數(shù)運(yùn)算

MOD —— 取模

REM —— 取余

ABS —— 取絕對值

加,減,乘是可以綜合成邏輯電路的;除法運(yùn)算只在除數(shù)為2的n次冪時(shí)才能綜合,此時(shí)相當(dāng)于對被除數(shù)右移n位;對于指數(shù)運(yùn)算,只有當(dāng)?shù)讛?shù)和指數(shù)都是靜態(tài)數(shù)值(常量或GENERIC參數(shù))時(shí)才是可綜合的;對于MOD運(yùn)算,結(jié)果的符號同第二個(gè)參數(shù)的符號相同,對于REM運(yùn)算,結(jié)果的符號同第一個(gè)參數(shù)符號相同。

l關(guān)系運(yùn)算符

=, /=,

左右兩邊操作數(shù)的類型必須相同。

l移位操作符

其中左操作數(shù)必須是BIT_VECTOR類型的,右操作數(shù)必須是INTEGER類型的(可以為正數(shù)或負(fù)數(shù))。

VHDL中移位操作符有以下幾種:

usll邏輯左移– 數(shù)據(jù)左移,右端補(bǔ)0;

usrl邏輯右移– 數(shù)據(jù)右移,左端補(bǔ)0;

usla算術(shù)左移– 數(shù)據(jù)左移,同時(shí)復(fù)制最右端的位,填充在右端空出的位置;

usra算術(shù)右移– 數(shù)據(jù)右移,同時(shí)復(fù)制最左端的位,填充在左端空出的位置;

urol循環(huán)邏輯左移 — 數(shù)據(jù)左移,從左端移出的位填充到右端空出的位置上;

uror循環(huán)邏輯右移 – 數(shù)據(jù)右移,從右端移出的位填充到左端空出的位置上。

例:x <= “01001”,那么:

y <= x sll 2;–邏輯左移2位,y<=”00100”

y <= x sla 2;–算術(shù)左移2位,y<=”00111”

y <= x srl 3;–邏輯右移3位,y<=”00001”

y <= x sra 3;–算術(shù)右移3位,y<=”00001”


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

當(dāng)前最流行的硬件設(shè)計(jì)語言有兩種,即 VHDL 與 Verilog HDL,兩者各有優(yōu)劣,也各有相當(dāng)多的擁護(hù)者。VHDL 語言由美國軍方所推出,最早通過國際電機(jī)工程師學(xué)會(huì)(IEEE)的標(biāo)準(zhǔn),在北美及歐洲應(yīng)用非常普遍。而 V...

關(guān)鍵字: vhdl verilog

    串行總線和并行總線相比具有結(jié)構(gòu)簡單、占用引腳少、成本低的優(yōu)點(diǎn)。常見的串行總線有USB、IEEE1394、I2C等,其中I2C總線具有使用簡單的特點(diǎn),在單片機(jī)、串行E2P

關(guān)鍵字: vhdl i2c 串行總線

  目前,許多廠商都提供通用的串行通信芯片,其傳輸方式分為同步方式和異步方式。其中,異步芯片大多與INTEL的8250芯片兼容;而同步方式,由于一般涉及到所支持的傳輸協(xié)議(BSC、HDLC、SD

關(guān)鍵字: FPGA cpld vhdl 通信芯片

當(dāng)今汽車行業(yè)所面臨的挑戰(zhàn)與電信行業(yè)十多年前所經(jīng)歷的類似?;旌蟿?dòng)力電動(dòng)汽車和燃料電池汽車等新技術(shù)也促進(jìn)了研發(fā)活動(dòng)的日趨活躍,正如我們在手機(jī)演變成多媒體設(shè)備的進(jìn)程中所看到的一樣。同樣,電信業(yè)面臨著功

關(guān)鍵字: vhdl 仿真 系統(tǒng)設(shè)計(jì)

0 引言 VHDL超高速集成電路硬件描述語言是隨著集成電路系統(tǒng)化和高度集成化逐步發(fā)展起來的,是一種用于數(shù)字系統(tǒng)設(shè)計(jì)、測試,面向多領(lǐng)域、多層次的IEEE標(biāo)準(zhǔn)硬件描述語言。它從20世紀(jì)70年

關(guān)鍵字: EDA vhdl 醫(yī)療電子

在使用lattice domiand時(shí),出現(xiàn)了下面示圖現(xiàn)象,一個(gè)輸入信號總是出現(xiàn)在unconnected欄里,也即意味著你不能綁定管腳。logical net 'clkin' has no load.

關(guān)鍵字: lattice vhdl

1、--GENERIC可以用來指定一些全局的變量,它要放在entity之后,port口映射之前entity ethernet isgeneric(--GENERIC語句指定的參數(shù)是全局的MIIM_PH

關(guān)鍵字: vhdl

摘 要: 用VHDL語言設(shè)計(jì)的增量式旋轉(zhuǎn)編碼器接口電路,實(shí)現(xiàn)了四倍頻、雙向計(jì)數(shù)的功能以及與單片機(jī)的接口。給出了在MAX Plus II環(huán)境下的VHDL源代碼和時(shí)序仿真結(jié)果。本設(shè)計(jì)在

關(guān)鍵字: vhdl 總線與接口 接口 電路 編碼器
關(guān)閉