Trọn bộ bài tập và lời giải môn thiết kế số dùng ngôn ngữ mô tả Đây là bài tập được làm bởi mình và các bạn trong nhóm trong quá trình mình học Đại Học,được biên soạn làm sẵn trên PowerPoint và Word rất thuận tiện cho việc trình chiếu khi thảo luận.Mong nó sẽ giúp ích cho các bạn đỡ tốn nhiều thời gian mắc công phải tìm kiếm tài liệu rồi mất nhiều thời gian biên soạn.Chúc các bạn thành công
Trang 1Port ( I : in STD_LOGIC_VECTOR (1 downto 0);
Q : out STD_LOGIC_VECTOR (3 downto 0));
Trang 3Port ( I : in STD_LOGIC_VECTOR (2 downto 0);
Q : out STD_LOGIC_VECTOR (7 downto 0);
Dung VP
Trang 4Bài 1: Thiết kế mạch đa hợp 4 đầu vào, 1 đầu ra, 2 đầu lựa chọn
Vẽ sơ đồ khối của mạch:
Trang 5Thiết kế mạch giải đa hợp
Bài 1: Thiết kế mạch giải đa hợp 1 đầu vào, 4 đầu ra, 2 đầu lựa chọn
Vẽ sơ đồ khối của mạch:
Lập bảng trạng thái:
Dung VP
Trang 7Port ( I : in STD_LOGIC_vector (3 downto 0);
Q : out STD_LOGIC_VECTOR (3 downto 0));end gray3;
architecture Behavioral of gray3 is
Trang 8Port ( I : in STD_LOGIC_VECTOR (7 downto 0);
Q : out STD_LOGIC_VECTOR (2 downto 0));
Trang 9Port ( I : in STD_LOGIC_VECTOR (7 downto 0);
Q : out STD_LOGIC_VECTOR (2 downto 0));end mahoa83;
architecture Behavioral of mahoa83 is
Trang 10Port ( I : in STD_LOGIC_VECTOR (1 downto 0);
Q1,Q2,Q3,Q4 : out STD_LOGIC_VECTOR (3 downto 0));
Trang 11CASE I ISWHEN "11" => Q1 <= "1110";
Port ( I : in STD_LOGIC_VECTOR (3 downto 0);
Y : out STD_LOGIC_VECTOR (6 downto 0));end led7;
architecture Behavioral of led7 is
Trang 12Thiết kế mạch giải mã LED 7 đoạn loại Anode chung: (Cathode chung thì
ngược lại Như bài trên)
Vẽ sơ đồ khối của mạch:
Lập bảng trạng thái:
Dung VP
Trang 13Port ( I : in STD_LOGIC_VECTOR (3 downto 0);
Y : out STD_LOGIC_VECTOR (6 downto 0));
Trang 14CASE I IS
when "0000" => Y <= "1000000"; so 0 when "0001" => Y <= "1111001"; so 1 when "0010" => Y <= "0100100"; so 2 when "0011" => Y <= "0110000"; so 3 when "0100" => Y <= "0011001"; so 4 when "0101" => Y <= "0010010"; so 5 when "0110" => Y <= "0000010"; so 6 when "0111" => Y <= "1111000"; so 7 when "1000" => Y <= "0000000"; so 8 when "1001" => Y <= "0010000"; so 9 when others => Y <= "1111111"; tat END CASE;
Trang 15architecture Behavioral of GDH is
begin
PROCESS(I,S)
BEGINCASE S ISWHEN "000" => Q(0) <= I;
Trang 16Dung VP
Trang 17WHEN OTHERS => NULL;
Port ( I : in STD_LOGIC_VECTOR (7 downto 0);
Y : out STD_LOGIC_VECTOR (3 downto 0));
Trang 18Port ( I : in STD_LOGIC_VECTOR (1 downto 0);
Y : out STD_LOGIC_VECTOR (3 downto 0));
Trang 20SIGNAL RS : STD_LOGIC_VECTOR(1 DOWNTO 0);
IF CLK='0' AND CLK'EVENT THEN
Trang 23IF CLK='0' AND CLK'EVENT THEN
Trang 24QD <= QDT;
end Behav_ffjk;
Thiết kế flip-flop D có Enable
Vẽ sơ đồ khối của mạch:
Trang 25Bài 5-3: Thiết kế 4 FF-D gồm 4 đầu vào D, 4 đầu ra Q, 4 đầu ra Q
đảo dung chung 1 xung CLK
Trang 28architecture Behavioral of ic74164 is
SIGNAL QT: STD_LOGIC_VECTOR (7 downto 0);begin
PROCESS (CLK,CLR)
BEGIN
IF CLR = '0' THEN QT <= "00000000";
ELSIF CLK='1' AND CLK'EVENT THEN
QT <= QT(5 DOWNTO 0) & A & B;
port ( clk,stby,test: in std_logic;
r1,r2,y1,y2,g1,g2: out std_logic);
end MACHGT;
Dung VP
Trang 29-architecture MACHGT of MACHGT is
CONSTANT timeMAX : INTEGER := 1200;
CONSTANT timeRG : INTEGER := 900;
CONSTANT timeRY : INTEGER := 300;
CONSTANT timeGR : INTEGER := 1200;
CONSTANT timeYR : INTEGER := 300;
CONSTANT timeTEST : INTEGER := 60;
TYPE State IS (RG,RY,GR,YR,YY);
SIGNAL pr_State, nx_state: State;
SIGNAL time : INTEGER RANGE 0 to timeMAX;begin
Trang 30if (test='0')then time<=timeGR;
else time <=timeTEST;
end if;
Dung VP
Trang 32SIGNAL QT: STD_LOGIC_VECTOR (7 downto 0);
ELSIF CLK='1' AND CLK'EVENT THEN
IF DEM <7 THEN QT <= QT(6 DOWNTO 0)& NOT QT(7);
ELSE QT <= NOT QT(0) & QT(7 DOWNTO 1);
Trang 34Bài 5-8: Thiết kế mạch đếm BCD từ 000-999 đếm lên , đếm xuống được điều khiển bằng tín hiệu UD (UD =0 thì đếm lên,UD =1 thì đếm xuống) có một tín hiệu Clk, một tín hiệu Clr và có giải mã hiển thị ra 3 LED 7 đoạn dùng quét.
QDVI : out STD_LOGIC_VECTOR (6 downto 0);
QCHU : out STD_LOGIC_VECTOR (6 downto 0);
QTRA : out STD_LOGIC_VECTOR (6 downto 0));
end DEM000999;
architecture Behavioral of DEM000999 is
function giai_ma(x1: in std_logic_vector(3 downto 0)) return std_logic_vectoris
variable z1: std_logic_vector(6 downto 0);