班级 021039
学号 02103121
eda报告。
题目vhdl设计初步。
学院电子工程学院。
专业信息对抗技术。
学生姓名。导师姓名。
目录。第一章实验部分(秒表) 2
1、程序设计: 2
2、程序** 2
3、程序调试 4
第二章习题部分 8
习题一 8习题二 8
习题三 10
习题四 11
习题五 12
习题六 14
习题七 17
秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100hz。为此,本设计采用3mhz的时钟频率通过分频得到100hz的时钟频率,再送给控制时钟以得到比较精确的clk信号。
其中,时钟信号clk为3mhz的时钟频率,分频后得到的时钟为clk2,输出引脚clk2和输入引脚clk2在外部相连,实现将分频后的时钟送入。
library ieee;
use use
entity miaobiao is
port (clk,clk1,sta,pos,sto,rst: in std_logic;
cq1,cq2,cq3,cq4,cq5,cq6 : out std_logic_vector(3 downto 0);
clk2:out std_logic
end miaobiao;
architecture beh** of miaobiao is
beginprocess(clk由频率为3mhz的时钟产生频率为100hz的时钟。
variable num:integer range 0 to 15000;--定义计数器。
variable q:std_logic;
beginif clk'event and clk='1' then
if num=15000 then num:=0;q:=not q;--计数器每计数15000,时钟改变电平--值。
else num:=num+1;
end if;
end if;
clk2<=q;
end process;
process(clk1,sta,pos,sto,rst)
variable cqi1:std_logic_vector(3 downto 0);
variable cqi2:std_logic_vector(3 downto 0);
variable cqi3:std_logic_vector(3 downto 0);
variable cqi4:std_logic_vector(3 downto 0);
variable cqi5:std_logic_vector(3 downto 0);
variable cqi6:std_logic_vector(3 downto 0);
beginif sto='1' then cqi1:=(others=>'0');cqi2:=(others=>'0');cqi3:=(others=>'0');
cqi4:=(others=>'0');cqi5:=(others=>'0');cqi6:=(others=>'0');
elsif clk1'event and clk1='1' then
if sta='1' then
if rst='0' then
if pos='0' then
if cqi1="1001" then cqi1:=(others =>0');百分秒位满十进--位。
if cqi2="1001" then cqi2:=(others =>0');十分秒位满十进--位。
if cqi3="1001" then cqi3:=(others =>0');秒位满十进位。
if cqi4="0101" then cqi4:=(others =>0');十秒位满六进位。
if cqi5="1001" then cqi5:=(others =>0');分位满十进位。
if cqi6="0101" then cqi6:=(others =>0');十分位满六进位。
else cqi6:=cqi6+1;
end if;
else cqi5:=cqi5+1;
end if;
else cqi4:=cqi4+1;
end if;
else cqi3:=cqi3+1;
end if;
else cqi2:=cqi2+1;
end if;
else cqi1:=cqi1+1;
end if;
end if;
end if;
end if;
if rst='1' then
cqi1:=(others =>0');cqi2:=(others =>0');
cqi3:=(others =>0');cqi4:=(others =>0');
cqi5:=(others =>0');cqi6:=(others =>0');
end if;
cq1<=cqi1;cq2<=cqi2;cq3<=cqi3;
cq4<=cqi4;cq5<=cqi5;cq6<=cqi6;
end if;
end process;
end beh**;
1)时钟给出后,实现开始功能:
2)给时钟后,实现暂停功能:
3)给时钟后,实现复位功能:
4)给时钟后,实现停止功能:
5)综合功能地实现:
ex-1)画出下例实体描述对应的原理图符号元件:
entity buf3s is实体1: 三态缓冲器。
port (input : in std_logic输入端。
enable : in std_logic ; 使能端。
output : out std_logic ) 输出端。
end buf3x ;
entity mux21 is实体2: 2选1多路选择器。
port (in0, in1, sel : in std_logic;
output : out std_logic);
end entity mux21;
ex-2)图中所示的是4选1多路选择器,试分别用if_then语句和case语句的表达方式写出此电路的vhdl程序。
选择控制的信号s1和s0为std_logic_vector类型;
当s1='0',s0='0';s1='0',s0='1';s1='1',s0='0'和s1='1',s0='1'分别执行y<=a、y<=b、y<=c、y<=d。
vhdl程序:
library ieee
use use
entity mux41a is
port(a,b,c,d:in std_logic4个数据输入端。
s0,s1:in std_logic2个信号控制输入端。
EDA大作业
eda技术课程大作业。设计题目 4线 16线译码器设计。学生姓名。学号。专业班级 09电子信息1班 2012年5月26日。4线 8线译码器设计。1.设计背景与设计方案。1.1设计背景。译码器是组合逻辑电路的一个重要器件,它是一种将一种编码转换为另一种编码的逻辑电路,在编码时,每一种二进制 都赋予了特...
EDA大作业
eda技术课程大作业。设计题目 双二选一多路选择器。学生姓名 王行智。学号 201002050002 专业班级 电气自动化技术一班。2012 年 5 月 26日。1.设计背景 在很多时候,要完成一项工作,需要进行两次判断和选择,对于机器和人都是如此,这就需要两个选择器,双2选1多路选择器就应运而生了...
EDA大作业
一 设计方案。1 设计一个汽车尾灯控制器,利用eda软件 max plusii 进行编译及 设计输入可采用vhdl硬件描述语言输入法和原理图输入法,通过 查看设计的可行性,因条件有限,只能进行简单的 实验。2 设计要求。1 汽车尾部左右两侧各有多盏指示灯。2 汽车正常行驶时指示灯都不亮。3 汽车右转...