EDA作业

发布 2022-09-02 20:42:28 阅读 7917

1. 三人表决电路设计。

输入用拨码开关sw1-sw8

输出用led显示。

led引脚定义(8bit leds)

set_location_assignment pin_ab20 -to led_down[0]

set_location_assignment pin_ad24 -to led_down[1]

set_location_assignment pin_ab23 -to led_down[2]

set_location_assignment pin_ab18 -to led_down[3]

set_location_assignment pin_y21 –to led_down[4]

set_location_assignment pin_ad16 -to led_down[5]

set_location_assignment pin_u24 –to led_down[6]

set_location_assignment pin_t23 –to led_down[7]

8位拨码开关定义(8bit switch)

set_location_assignment pin_aa16 -to sw[0]

set_location_assignment pin_y13 -to sw[1]

set_location_assignment pin_w10 -to sw[2]

set_location_assignment pin_v10 -to sw[3]

set_location_assignment pin_y11 -to sw[4]

set_location_assignment pin_v13 -to sw[5]

set_location_assignment pin_v24 -to sw[6]

set_location_assignment pin_ab15 -to sw[7]

实验5:分频器设计。

一:设计一个分频器,首先对系统时钟分频,形成2hz的信号,然后依次点亮8个led,形成流水灯。

library ieee;

use use

entity rightmove is

port(clk,ena:in std_logic;

count:in std_logic_vector(5 downto 0);

output:out std_logic_vector(11 downto 0));

end rightmove ;

architecture one of rightmove is

beginprocess(clk,ena,count)

beginif clk'event and clk='1' then

if ena='1' then

case count is

when "000000"=>output<="001000000000";

when "000001"=>output<="000100000000";

when "000010"=>output<="000010000000";

when "000011"=>output<="000001000000";

when "000100"=>output<="000000100000";

when "000101"=>output<="000000010000";

when "000110"=>output<="000000001000";

when "000111"=>output<="000000000100";

when others=>output<="000000000000";

end case;

else output<="000000000000";

end if;

end if;

end process;

end one;

实验6:七段数码管动态显示。

一:用8个动态数码管显示1-8的数字,每个数码管的刷新频率50hz

library ieee;

use use

use --下面是构造实体。

entity exp4 is --exp4为实体名。

port( clk : in std_logic

key : in std_logic_vector(3 downto 0);

ledag : out std_logic_vector(6 downto 0);

del : out std_logic_vector(2 downto 0)

end exp4;

architecture whbkrc of exp4 is --whbkrc为结构体名。

begin --以begin为标志开始结构体的描述。

process(clk) -进程,clk变化时启动进程。

variable dount : std_logic_vector(2 downto 0); 变量,计数

beginif clk'event and clk='1' then--检测时钟上升沿。

dount:=dount+1;--计数器dount累加。

end if;

del<=dount; -片选信号

end process;--结束进程

process(key) -进程,key变化时启动进程。

begincase key is

when "0000" =ledag <=0111111";-七段数码管显示 0

when "0001" =ledag <=0000110";-1

when "0010" =ledag <=1011011";-2

when "0011" =ledag <=1001111";-3

when "0100" =ledag <=1100110";-4

when "0101" =ledag <=1101101";-5

when "0110" =ledag <=1111101";-6

when "0111" =ledag <=0000111";-7

when "1000" =ledag <=1111111";-8

when "1001" =ledag <=1101111";-9

when "1010" =ledag <=1110111";-r

when "1011" =ledag <=1111100";-b

when "1100" =ledag <=0111001";-c

when "1101" =ledag <=1011110";-d

when "1110" =ledag <=1111001";-e

when "1111" =ledag <=1110001";-f

when others =>null;

end case;

end process; -结束进程。

end whbkrc; -结束结构体。

实验7:数字时钟。

一:用6个数码管(动态显示),显示时间,格式hh:mm:ss。时间可以通过按键调整。

org 0000h

mov 40h,#00h

mov 41h,#00h

mov 42h,#00h

mov 43h,#00h

mov 44h,#00h

mov 45h,#00h

mov r0,#01h

mov r1,#02h

clr p3.0

clr p3.1

uu: mov tmod ,#01h中断。

mov th0,#3ch

mov tl0,#0b0h

clr tr0

mm: mov a,40h显示程序:

mov 50h,#0feh

mov p2,50h

mov dptr ,#tab

movc a,@a+dptr

mov p0,a

lcall yy延时。

mov a,50h

rl amov 50h,a

mm1: mov p2,50h

mov dptr,#tab

EDA作业

电子电路基础 eda作业。multisim的应用之晶体管放大器的设计与调测。本实验的主要目的是熟悉multisim软件的使用,包括电路图编辑,虚拟仪器仪表的使用和掌握常见电路分析方法。能够运用multisim软件对模拟电路进行设计和性能分析,掌握eda设计的基本方法和步骤。熟练掌握有关单级放大电路有...

EDA作业

山东交通学院。eda电路 设计软件。设计报告。班级电气111 姓名罗汉林。学号 110812135 专业电气工程及其自动化 学院信电学院。简易频率计数器的设计。设计说明。频率的测量实际上就是在1个单位时间内 通常1s 对信号脉冲进行计数,计数值就是信号频率。1.设计目标。用at89s51设计一个数显...

EDA作业

控制灯亮灭的一个eda程序 library ieee use use 以上三条语句引入可用的函数库。entity light is 定义实体,名为light port clk1 in std logic 程序仅有时钟信号这一个输入。light buffer std logic vector 7 do...