习题
5-1 例5-4(两个进程):
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY MOORE1 IS
PORT ( DATAIN : IN STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; CLK,RST : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ) ; END ENTITY MOORE1 ;
ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS ( ST0,ST1,ST2,ST3,ST4 ) ; SIGNAL C_ST ,N_ST : ST_TYPE ; BEGIN
REG : PROCESS ( RST ,CLK ) BEGIN
IF RST=?1? THEN C_ST<=ST0; Q<=”0000”; ELSIF CLK ?EVENT AND CLK=?1? THEN C_ST<=N_ST ; END IF ;
END PROCESS ;
COM : PROCESS (C_ST , DATAIN) BEGIN CASE C_ST IS WHEN ST0 =>
IF DATAIN = “10” THEN N_ST <= ST1 ; ELSE N_ST <= ST0 ; END IF ; Q <=”1001” ; WHEN ST1 =>
IF DATAIN = “11” THEN N_ST <= ST2 ; ELSE N_ST <= ST1 ; END IF ; Q <=” 0101” ;
WHEN ST2 =>
IF DATAIN = “01” THEN N_ST <= ST3 ; ELSE N_ST <= ST0 ; END IF ; Q <=” 1100” ; WHEN ST3 =>
IF DATAIN = “00” THEN N_ST <= ST4 ; ELSE N_ST <= ST2 ; END IF ; Q <=” 0010” ; WHEN ST4 =>
IF DATAIN = “11” THEN N_ST <= ST0 ; ELSE N_ST <= ST3 ; END IF ; Q <=” 1001” ;
WHEN OTHERS => N_ST <= ST0 ; END CASE ; END PROCESS ;
END ARCHITECTURE behav ; 5-2 例5-5(单进程):
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY MEALY1 IS
PORT ( CLK, DATAIN ,RESET : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR ( 4 DOWNTO 0 ) ) ; END ENTITY MEALY1 ;
ARCHITECTURE behav OF MEALY1 IS TYPE states IS ( st0,st1,st2,st3,st4 ) ; SIGNAL STX : states ; BEGIN
PROCESS ( CLK, RESET ) BEGIN
IF RESET = ?1? THEN STX<= st0 ;
ELSIF CLK? EVENT AND CLK = ?1? THEN CASE STX IS WHEN st0 =>
IF DATAIN = ?1? THEN STX<= st1; Q<=”10000” ; ELSE Q<=”01010” ; END IF ; WHEN st1 =>
IF DATAIN = ?0? THEN STX<= st2; Q<=”10111” ;
ELSE Q<=” 10100” ; END IF ; WHEN st2 =>
IF DATAIN = ?1? THEN STX<= st3; Q<=”10101” ;
ELSE Q<=” 10011” ; END IF ; WHEN st3 =>
IF DATAIN = ?0? THEN STX<= st4; Q<=”11011” ;
ELSE Q<=” 01001” ; END IF ; WHEN st4 =>
IF DATAIN = ?1? THEN STX<= st0; Q<=”11101” ;
ELSE Q<=” 01101” ; END IF ;
WHEN OTHERS => STX<=st0; Q<=”00000” ; END CASE ; END PROCESS ;
END ARCHITECTURE behav ; 5-3 序列检测器:
要求1:
要求2:
要求3:
5-4 5-5
第6章 16位CISC CPU设计
习题
6-1 6-2 6-3 6-4 6-5 6-6 6-7 6-8
第7章 VHDL语句
习题
7-1 7-2 7-3
7-4 因为每条并行赋值语句在结构体中是同时执行的,所以每条并行赋值语句都相当于一条缩写的进程语句,这条语句的所有输入信号都被隐性地列入此缩写进程的敏感信号表中。 7-5
7-6 CASE语句、WITH_SELECT语句 :
共同点:执行依赖敏感信号的变化,子句条件选择值同时测试,因此不允许条件重叠,也不允许条
件涵盖不全;
异同点:CASE语句是顺序语句,仅在进程中使用; WITH_SELECT语句是并行语句;
7-7 程序:
ENTITY ---- IS
PORT ( a, b : IN STD_LOGIC ;
c, d : IN STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ; next1 : OUT STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ) ; ENTITY ---- ;
ARCHITECTURE behav OF ---- IS BEGIN
Next1 <= “1101” WHEN a=?0? AND b=?1? ELSE d WHEN a=?0? ELSE c WHEN b=?1? ELSE “1011” ; END ARCHITECTURE behav ; 7-8 程序1:x是信号;程序2:x是变量;
第8章 VHDL结构
习题
8-1 设计实体:独立的电路功能结构;
实体:设计实体的表层设计单元,是对设计实体与外部电路进行接口描述,是设计实体对外的一个通信界面。 8-2 【例7-18】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY andn IS
GENERIC ( n : INTEGER ); --定义类属参量及其数据类型 PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);
--用类属参量限制矢量长度
c : OUT STD_LOGIC); END;
ARCHITECTURE behav OF andn IS BEGIN