七人表决器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
七人表决器徐浩杰通信09-1 2220091708
一、实验目的:
1.掌握用VHDL硬件描述语言做电路综合设计方法。
2.熟悉掌握程序的编译、仿真、生成模块及芯片引脚号码锁定方法并下载到目标芯片。
二、实验仪器:
ZY11EDA13BE型实验箱
三、实验内容及要求:
1.设计一个数字时钟,要求能为24h制,要求能显示时、分、秒,并可手动调整时和分。
四:实验程序:
七人表决器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity svm is
port (
input:in std_logic_vector(6 downto 0);
ledz :out std_logic_vector(3 downto 0);
ledf :out std_logic_vector(3 downto 0);
co :out std_logic
);
end svm;
architecture a of svm is
begin
process(input)
variable cont:integer range 0 to 7;
begin cont:=0;
for i in 6 downto 0 loop
if input(i)='1'then
cont:=cont+1;
end if;
end loop;
if cont>3 then
co<='1';
else
co<='0';
end if;
case cont is
when 0=>ledz<="0000";
when 1=>ledz<="0001";
when 2=>ledz<="0010";
when 3=>ledz<="0011";
when 4=>ledz<="0100";
when 5=>ledz<="0101";
when 6=>ledz<="0110";
when 7=>ledz<="0111";
when others=>ledz<="1111";
end case;
end process;
end a;
显示管译码器==================================================== library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity bcdcoder is
port (bcd :in std_logic_vector(3 downto 0);
segout :out std_logic_vector(0 to 6)
);
end bcdcoder;
architecture a of bcdcoder is
begin
process (bcd)
begin
case bcd is
when"0000"=>segout<="1111110";
when"0001"=>segout<="0110000";
when"0010"=>segout<="1101101";
when"0011"=>segout<="1111001";
when"0100"=>segout<="0110011";
when"0101"=>segout<="1011011";
when"0110"=>segout<="1011111";
when"0111"=>segout<="1110000";
when"1000"=>segout<="1111111";
when"1001"=>segout<="1111011";
when others=>segout<="0000000";
end case;
end process;
end a;
五、实验总结
通过本次实验,我们更加了解了VHDL语言,掌握了VHDL硬件描述语言做电路综合设计方法。
.熟悉了程序的编译、仿真、生成模块及芯片引脚号码锁定方法并下载到目标芯片的过程。
更直接的联系到实际,了解现实中很多工具都是靠本课程来帮助万众城的,提高了我们的学习兴趣。
在编译过程中出现了很多错误,了解很多找错改错的方法,积累了很多经验,为以后的学习及工作提供了很好的保障。