eda大作业要点

发布 2022-09-02 20:56:28 阅读 9482

班级 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 汽车右转...