资源描述
数 字 系 统 设 计 和 实 验
学院:
专业:
班级:
学号:
姓名
指导老师
年 12月 10 日
试验一 原码反码发生器
一 试验目标:
1、 掌握组合逻辑电路基础设计方法。
2、 学习波形仿真方法。
3、 加深对最简单二进制原码、反码了解,灵活利用基础逻辑门。
二 试验内容
1、设计电路应含有以下功效:
A.包含以下端口:
一个选择信号端口,一个8位二进制输入端口,一个原码/反码输出端口。
B. 选择信号逻辑状态为0时输出原码;逻辑状态为1时输出反码。
2、完成电路设计。
3、对设计正确性进行验证。
三 试验要求
1、列出所要实现功效真值表。
输入端口
输出端口
cin(十六进制)
Fin
cout
01H
0
01H
02H
1
FDH
03H
0
03H
04H
1
FBH
05H
0
05H
06H
1
F9H
07H
0
07H
08H
1
F7H
2、画出电路逻辑图。
3、编写用VHDL语言描述源程序。
library ieee;
use ieee.std_logic_1164.all;
entity shiyan1 is
port (cin : in std_logic_vector(7 downto 0);
fin : in std_logic;
cout: out std_logic_vector(7 downto 0));
end shiyan1;
architecture behave of shiyan1 is
begin
process(fin)
begin
case fin is
when '1' => cout <= not cin;
when '0' => cout <= cin;
when others => null;
end case;
end process;
end behave;
4、 在MAX 软件平台上完成编译和功效仿真。
一、信号端口为0时
二、信号端口为1
总结:经过上个试验后,对maxplu件有了一定了解,对于 VHDL也愈加熟悉,首先结构真值表,画出逻辑电路图,然后编写程序生成仿真波形图。在编写程序时候也出现了部分错误,比如是将单个字符用双引号,结果编译通不过。老是报错。以后才检验出来。
试验 二 4舍5入电路
一 试验目标:
1、掌握组合逻辑电路基础设计方法。
2、熟练利用真值表。
二 试验内容
1、设计电路应含有以下功效:
A.包含以下端口:
一个4位二进制输入端口,一个进位输出端口。
B. 即当输入数X大于或等于5时,进位输出端口输出F为1,反之,输出为0。
2、完成电路设计。
3、对设计正确性进行验证。
三 试验要求
1、编写用VHDL语言描述源程序。
library ieee;
use ieee.std_logic_1164.all;
entity shiyan2 is
port (cin : in std_logic_vector(3 downto 0);
f : out std_logic);
end shiyan2;
architecture behave2 of shiyan2 is
begin
process(cin)
begin
case cin is
when "0000" => f <= '0';
when "0001" => f <= '0';
when "0010" => f <= '0';
when "0011" => f <= '0';
when "0100" => f <= '0';
when "0101" => f <= '1';
when "0110" => f <= '1';
when "0111" => f <= '1';
when "1000" => f <= '1';
when "1001" => f <= '1';
when others => null;
end case;
end process;
end behave2;
2、在MAX 软件平台上完成编译和功效仿真。
电路逻辑图以下:
仿真结果以下:
总结:依据提醒中真值表确定输入输出接口,编写程序实现仿真,便得到了以上波形图,首先很轻易知道,当输入数大于等于5时就要进位,二F输出端便代表是进位,所以F取值只有0和1
试验 三 四—十六译码器
一 试验目标:
1、掌握组合逻辑电路基础设计方法。
2、熟练利用VHDL语言次序语句和并发语句。
3、熟练利用MAX软件提供仿真功效。
二 试验内容
1、设计电路应含有以下功效:
A. 包含以下端口:
一个使能信号输入端口,四个选择信号输入端口,十六个驱动信号输出端口。
B. 当使能信号为高电平时,对于四个选择信号组成任意一组状态,十六个驱动信号中有一个且仅有一个有效高电平输出。
当使能信号为低电平时,十六个驱动信号全部输出低电平。
2、完成电路设计。
3、对设计正确性进行验证。
三 试验要求
1、编写用VHDL语言描述源程序
library ieee;
use ieee.std_logic_1164.all;
entity shiyan3 is
port (G : in std_logic;
A : in std_logic_vector(3 downto 0);
Y : out std_logic_vector(15 downto 0));
end shiyan3;
architecture behave3 of shiyan3 is
begin
process(G, A)
begin
for i in 0 to 15 loop
Y(i) <= '0';
end loop;
if(G='1') then
case A is
when "0000" => Y(0) <= '1';
when "0001" => Y(1) <= '1';
when "0010" => Y(2) <= '1';
when "0011" => Y(3) <= '1';
when "0100" => Y(4) <= '1';
when "0101" => Y(5) <= '1';
when "0110" => Y(6) <= '1';
when "0111" => Y(7) <= '1';
when "1000" => Y(8) <= '1';
when "1001" => Y(9) <= '1';
when "1010" => Y(10) <= '1';
when "1011" => Y(11) <= '1';
when "1100" => Y(12) <= '1';
when "1101" => Y(13) <= '1';
when "1110" => Y(14) <= '1';
when "1111" => Y(15) <= '1';
when others => null;
end case;
else
for i in 0 to 15 loop
Y(i) <= '0';
end loop;
end if;
end process;
end behave3;
2、 在MAX 软件平台上完成编译和功效仿真。
电路逻辑图以下:
仿真效果以下:
总结:我是参考三八译码器来设计,先结构真值表,然后编写程序,程序在编译时候碰到了尤其多错误,不过经过调试也成功生成了正确波形图。加深了对VHDl了解,和对maxplus认识。
展开阅读全文