1、一1.数据类型BIT与STD_LOGIC有什么区别。BIT类型的取值只能是0或1,没有不定状态X,也没有高阻态。STD_LOGIC类型可以有9种不同的值,包括U-初始值,X-不定,0-0,1-1,Z-高阻态,W-弱信号不定,L-弱信号0,H弱信号1.不可能情况。2.信号和变量的异同。信号是全局量,只要在结构体中已经定义,就可以在结构体中的所有地方使用,信号的赋值符号是”2.4V,输出低电平0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。 CMOS电平在不同的电路中是0v-5v或者0v-12v。所以可以用CMOS电平驱动TTL电平器件,但是TTL电平驱动CMOS电平器件时须加
2、上拉电阻。二用VHDL语言描述给定电路,或写出给定电路的功能或输出。三程序改错。四注释程序。五程序同功能语句替换。六元件例化连接器件。程序例子:IF语句:(1)IF(sel=0)THEN y=1; END IF;(2)IF (sel=0)THEN y=0 ; ELSE y=1; END IF;(3)IF(sel=”00”)THEN y=”01”; ELSIF(sel=”01”)THEN y=”10” ELSE yyyy=”11”;END CASE;FOR语句:FOR i IN 0 TO 7 LOOPtmp:=tmpXORa(i);END LOOP;WHILE语句:WHILE(i8)LOOPtm
3、p:=tmpXORa(i);i:=i+1;END LOOP;WHEN-ELSE语句(类似if-else):q=i0 WHEN sel=”00” ELSE i1WHEN sel=”01” ELSEi2WHEN sel=”10” ELSEi3 WHEN sel=”11” ELSEX;WITH-SELECT语句:(类似CASE语句) WITH sel SELECTq=i0 WHEN “00” , i1 WHEN “01” ,i2 WHEN “10” ,i3 WHEN “11” , XWHEN OTHERS ;分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;US
4、E IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk: IN STD_LOGIC;fp1024,fp512,fp64,fp4,fp1: OUT STD_LOGIC);END ENTITY fp;ARCHITECTURE a OF fp ISSIGNAL buf:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINfp1=buf(9);fp4=buf(7);fp64=buf(3);fp512=buf(0);fp1024bsoutbsoutbsoutbsoutbsoutbsoutbsout=0;END CASE;END IF;END
5、IF;END PROCESS;END ARCHITECTURE a;buf=0000000000;ELSEbuf=buf+1;END IF;END IF;END PROCESS;END ARCHITECTURE a;元件例化LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count60 ISPORT(clkin,en,res: IN STD_LOGIC; bs0,bs1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cyout: OUT STD_LOGIC);
6、END ENTITY count60;ARCHITECTURE count OF count60 ISCOMPONENT count10 ISPORT(clk,enable,reset: IN STD_LOGIC; b0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cy: OUT STD_LOGIC);END COMPONENT;SIGNAL count4:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL clk1,cy1:STD_LOGIC;BEGIN bs1=count4; cyoutclkin,cy=clk1,reset=res,enable=en,b0=bs0);PROCESS(clk1,res,en) ISBEGINIF(res=0) THENcount4=0000;ELSIF (clk1EVENT AND clk1=1) THEN IF(en)=1 THENIF(count4=0110) THENcount4=0000;cy1=1;ELSE count4=count4+1;cy1=0;END IF; END IF;END IF;END PROCESS;END ARCHITECTURE count;