当前位置:文档之家› eda大作业

eda大作业

eda大作业
eda大作业

班级 021039

学号 02103121

EDA报告

题目 VHDL设计初步

学院电子工程学院

专业信息对抗技术

学生姓名

导师姓名

目录

第一章实验部分(秒表) (2)

1、程序设计: (2)

2、程序代码 (2)

3、程序调试 (4)

第二章习题部分 (8)

习题一 (8)

习题二 (8)

习题三 (10)

习题四 (11)

习题五 (12)

习题六 (14)

习题七 (17)

第一章实验部分(秒表)

1、程序设计:

秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。

为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。其中,时钟信号CLK为3MHz 的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。

2、程序代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

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 BEHAV OF MIAOBIAO IS

BEGIN

PROCESS(CLK) --由频率为3MHz的时钟产生频率为100Hz的时钟VARIABLE NUM:INTEGER RANGE 0 TO 15000;--定义计数器

VARIABLE Q:STD_LOGIC;

BEGIN

IF 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);

BEGIN

IF 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 BEHAV;

3、程序调试

(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 ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity mux41a is

port(a,b,c,d:in std_logic; --4个数据输入端s0,s1:in std_logic; --2个信号控制输入端

y:out std_logic); --数据输出端口

end mux41a;

architecture behavior of mux41a is

signal abc : std_logic_vector(1 downto 0) ; --定义内部信号abc

begin

abc <= s1 & s0 ; --abc为s1和s0的位与process (abc)

begin

case abc is

when "00" => y<=a;

when "01" => y<=b;

when "10" => y<=c;

when "11" => y<=d;

when others=>y <=null ;

end case;

end process;

end architecture behavior ;

习题三

(Ex-3)图中所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s='0'和'1'时,分别有y<='a'和y<='b'。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。

library ieee;

use ieee.std_logic_1164.all;

entity EX4 is

port ( a1,a2,a3:in std_logic; --3个数据输入端口

temp:buffer std_logic; --定义一个中间信号

s1,s0:in std_logic; --2个数据控制端口

output:out std_logic); --电路输出端

end EX4;

architecture behav of EX4 is

begin

process(a2,a3,s0) --进程1(数选器1)

begin

case s0 is

when '0'=> temp<=a2;

when '1'=> temp<=a3;

end case;

end process;

process(a1,temp,s1) --进程2(数选器2)

begin

case s1 is

when '0'=> output<=a1;

when '1'=> output<=temp;

end case;

end process;

end behav;

习题四

(Ex-4)图中是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件。

library ieee;

use ieee.std_logic_1164.all;

entity EX5 is

port ( cl:in std_logic;

clk:in std_logic;

output:buffer std_logic);

end EX5;

architecture behav of EX5 is

begin

process (clk)

begin

if (clk'event and clk='1') then

output<=not(cl or output);

end if;

end process;

end behav;

习题五

(Ex-5)给出1位全减器的VHDL描述。要求:

(1)首先设计1位半减器,然后用例化语句将它们连接起来,图中h_suber 是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。

(2)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr)。

library ieee;

use ieee.std_logic_1164.all;

entity h_suber is --定义实体半减器

port(x,y:in std_logic; --减数与被减数

diff,s_out:out std_logic); --分别为本位输出和借位输出end h_suber;

architecture fd1 of h_suber is

begin

diff<=x xor y;

s_out<=(not x)and y;

end fd1;

library ieee;

use ieee.std_logic_1164.all;

entity or_2 is --定义实体2输入或门

port (a,b:in std_logic;

c:out std_logic);

end or_2;

architecture one of or_2 is

begin

c<=a or b;

end one;

library ieee;

use ieee.std_logic_1164.all;

entity f_suber is --定义实体全减器port(x0,y0,sub_in:in std_logic; --x0和y0为减数与被减数,sub_in

借位输入

sub_out,diffr:out std_logic); --differ_out为本位输出,sub_out

为借位输出

end f_suber;

architecture fs1 of f_suber is

component h_suber --半减器例化声明

port(x,y:in std_logic;

diff,s_out:out std_logic);

end component;

component or_2 --2输入或门例化声明port(a,b:in std_logic;

c:out std_logic);

end component;

signal d,e,f:std_logic; --定义敏感信号

begin

u1:h_suber port map(x=>x0,y=>y0,diff=>d,s_out=>e); --引用半减器u2:h_suber port map(x=>d,y=>sub_in,diff=>diffr,s_out=>f); --引用半减器u3:or_2 port map(a=>f,b=>e,c=>sub_out); --引用或门end fs1;

习题六

(Ex-6)根据下图,写出顶层文件MX3256.VHD的VHDL设计文件。

library ieee;

use ieee.std_logic_1164.all;

entity diff is --定义实体D触发器port(d,clk:in std_logic;

clear:in std_logic;

q:out std_logic);

end entity diff;

architecture behav of diff is

begin

process (clear,d,clk)

begin

if (clk'event and clk='1') then --时钟信号到来

if (clear='0') then q<='0'; --异步清零

else q<=d;

end if;

end if;

end process;

end behav;

library ieee;

use ieee.std_logic_1164.all;

entity jk is --定义实体JK触发器

port(a1,a2,clk: in std_logic;

o1,o2: buffer std_logic);

end;

architecture behav1 of jk is

signal o1_s,o2_s:std_logic; --定义内部信号o1_s,o2_s

begin

process(a1,a2,clk,o1_s,o2_s)

begin

if(clk'event and clk='1')then

if(a1='0')and(a2='1')then o1_ s<='0', o2_s<='1';

elsif (a1='1')and(a2='0')then o1_s<='1',o2_s<='0';

elsif(a1='1')and(a2='1')then o1_s<=not o1; o2_s<=not o2;

end if;

end if;

o1<=o1_s; o2<=o2_s;

end process

end behav1

library ieee;

use ieee.std_logic_1164.all;

entity mux21 is --定义实体mux21

port (a,b,s:in std_logic;

c:out std_logic);

end entity;

architecture behav2 of mux21 is

begin

process (a,b,s)

begin

if s='0' then c<=a;

else c<=b;

end if;

end process;

end behav2;

library ieee;

use ieee.std_logic_1164.all;

entity max3256 is --定义顶层文件实体max3256

port (ina,inb,inclk,inc:in std_logic; --4个输入,inclk为时钟信号

e,output:out std_logic);

end max3256;

architecture behav3 of max3256 is

component jk --JK触发器的例化声明

port(a1,a2,clk: in std_logic;

o1,o2: buffer std_logic);

end component;

component max3256 -- 文件max3256实体例化

port (a,b,s:in std_logic;

c:out std_logic);

end component;

component diff

port(d,clk:in std_logic;

clear:in std_logic;

q:out std_logic);

end component;

signal aa,bb,cc,dd:std_logic; --定义中间信号aa,bb,cc,dd

begin

u1: jk port map (a1=>ina,a2=>inb,clk=>inclk,o1=>aa,o2=>bb); --引用JK触发器

u2: diff port map (d=>bb,clk=>inclk,clear=>inc,q=>cc); --引用D触发器

u3: jk port map (a1=>bb,a2=>cc,clk=>inclk,o1=>dd,o2=>output); --引用JK触发器

u4: mux21 port map (a=>dd,b=>aa,s=>bb,c=>e); --引用mux21

end behav3;

习题七

(Ex-7)设计含有异步清零和计数使能的16位二进制加减可控计数器。library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt_16 is

port(rst: in std_logic; --复位控制端clk: in std_logic; --时钟输入

up: in std_logic; --加减控制端

load:in std_logic; --预置控制端

data:in std_logic_vector(15 downto 0); --16为预置输入

count:out std_logic_vector(15 downto 0)); --计数器的状态输出end cnt_16;

architecture arc of cnt_16 is

signal cnt:std_logic_vector(15 downto 0);

begin

process(clk,rst)

begin

if rst='0'then --异步清零

cnt<=(others=>'0');

elsif clk'event and clk='1' then

if load='1' then cnt<=data; --同步置数

elsif up='1' then cnt<=cnt+1; --加法计数

else cnt<=cnt-1; --减法计数

end if;

end if;

end process;

count<=cnt;

end arc;

verilog硬件描述语言 上机

《硬件描述语言》上机作业西电微电子 \

第一题:用Verilog语言的结构描述和行为描述分别设计下面的电路。 A[0] Array B[0] A[1] B[1] A[2] B[2] 结构描述: 电路设计: module hw1(A,B,Y); input[2:0] A,B; output Y; wire w1,w2,w3; xor U1(w1,A[0],B[0]); xor U2(w2,A[1],B[1]); xor U3(w3,A[2],B[2]); nor U4(Y,w1,w2,w3); endmodule 仿真测试: module test_hw1; reg[2:0] A,B; wire Y; hw1 U1(A,B,Y); initial begin A=3'b000;B=3'b000; #50 A=3'b000;B=3'b000; #50 A=3'b111;B=3'b111; #50 A=3'b000;B=3'b110;

#50 A=3'b111;B=3'b000; #50 A=3'b110;B=3'b110; #50 A=3'b011;B=3'b010; #50 A=3'b001;B=3'b011; #50 A=3'b111;B=3'b010; #50 $stop; end initial $monitor($time,"\tA=%d\tB=%d\tY=%d",A,B,Y); Endmodule 行为描述: 电路设计: module hw2(A,B,Y); input[2:0] A,B; output Y; wire Y; assign Y=~((A[0]^B[0])||(A[1]^B[1])||(A[2]^B[2])); endmodule 仿真测试:

EDA大作业

信号发生器的设计 要求: (1) 产生方波、三角波、锯齿波、正弦波 (2)产生波形的模式可选 (3)频率为10KHz 设计方案: 1.总体设计思路 1.1 设计步骤 此设计将按模块式实现,据设计要求,设计总共分四大步份完成:(1)产生波形(四种波形:方波、三角波、矩形波和锯齿波)信号;(3)频率为10KHZ 幅度固定; 1.2设计思想 利用VHDL编程,依据基本数字电路模块原理进行整合。系统各部分所需工作时钟信号由输入系统时钟信号得到。总体设计框图如下图1所示: 波形输出

2. 方案论证 2.1方案 采用VHDL语言来编程,然后下载文件到FPGA来实现。VHDL语言是电子设计领域的主流硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大降低了硬件设计任务,提高了设计效率和可靠性,要比模拟电路快得多。该方案是利用FPGA具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,极大地提高了电子系统设计的灵活性和通用性,设计图如图2。 图2 FPGA总体设计图 (需要修改) 通过FPGA软件扫描方式将波形数据读出传输给DAC0832(为8分辨率的D/A 转换集成芯片㈠ )产生波形输出。这种方法在软、硬件电路设计上都简单,且与 我们的设计思路紧密结合。 3硬件选择 4软件设计 4.1.1波形产生模块 本设计用VHDL语言根据傅立叶函数采集点进行扫描,分别产生正弦波、三角波和矩形波。以下介绍各种常用周期信号的傅立叶函数展开式。 4.1.3正弦波 (1)设计思想 正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输出。幅值采样是将一个周期正弦波进行64等分,如图3所示,将64个采样点

蔡觉平老师西电Verilog HDL上机大作业(硬件描述语言)_微电子学院

《Verilog HDL 数字集成电路设计原理与应用》上机作业 班级:******* 学号:******* 姓名:******* 题目1:数字集成电路的verilog HDL 描述与仿真。 要求:(1)学习使用Modelsim 设计和仿真软件; (2)练习教材7.2.1中的例子; (3)掌握设计代码和测试代码的编写; (4)掌握测试仿真流程; (5)掌握Modelsim 软件的波形验证方式。 解答: 题目2: 简述begin-end 语句块和fork-join 语句块的区别,并写出下面信号对应的程序代码 A B

解答: (1)begin-end语句块和fork-join语句块的区别: 1、执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所有语句均在同一时刻执行; 2、语句前面延迟时间的意义:begin-end语句块为相对于前一条语句执行结束的时间,fork-join语句块为相对于并行语句块启动的时间; 3、起始时间:begin-end语句块为首句开始执行的时间,fork-join语句块为转入并行语句块的时间; 4、结束时间:begin-end语句块为最后一条语句执行结束的时间,fork-join语句块为执行时间最长的那条语句执行结束的时间; 5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。fork-join语句块为电路上电后,各电路模块同时开始工作的过程。 (2)程序代码: Begin-end语句: module initial_tb1; reg A,B; initial begin A=0;B=1; #10 A=1;B=0; #10 B=1; #10 A=0; #10 B=0; #10 A=1;B=1; end endmodule Frk-join语句: module wave_tb2; reg A,B; parameter T=10; initial fork A=0;B=1; #T A=1;B=0; #(2*T) B=1; #(3*T) A=0; #(4*T) B=0; #(5*T) A=1;B=1; join endmodule

EDA技术大作业 全自动洗衣机控制器

《EDA技术》大作业 电子钟电路设计要求: 1、准确计时,以数字形式显示时、分、秒的时间; 2、小时为24进制,分与秒的计时要求为60进制; 3、具有校时功能;、整点报时。4 :姓名:学号武启明1893130125 :班级科学:专业与光电信息131 工程

安徽科技学院数理与信息工程学院物电系 EDA全自动洗衣机控制器 1设计目的 《EDA技术与应用》课程是电子信息工程、自动控制、计算机科学与工程等 专业的技术课之一,具有很强的工程实践性。通过本次课程设计来掌握现代硬件数字电路的软件化设计的基本方法、掌握应用VHDL及EDA 工具开发设计各种电路的基本方法,以及对现代电子设计自动化技术有一定的了解,会把所学的专业知识更好的用到实践中去。 2设计的主要内容和要求 (1)设计一简易全自动洗衣机控制器。该控制器由两大状态A和B组成, 每个状态分三个子状态,每个状态分别由选择A和选择B控制。其中A为步进选择按纽,每步跳转一个子状态、B也为步进选择按纽,但每步选择B中的所有组合中的一种。 (2)过程启动由启动/暂停键控制(暂停键在过程启动后任意时间可暂停/恢复过程)。 (3)过程启动后洗衣机盖开启能任意控制。(4)能设置实现多次洗衣的功能。

3整体设计方案 本次设计大致可以分成两个模块来看待:控制端和工作端。 控制部分使用了三个进程来处理,进程一控制状态COUNT_M,进程二控制状态:当连顺出现一个,两个,COUNT_M,进程三控制开始和暂停。其中,COUNT_N. 三个高电平时分别表示强洗,标准,弱洗三种状态的洗衣过程。再者,COUNT_N:当出现一个,两个,三个高电平时分别表示洗涤,漂洗与甩干,甩干。其次,信号START控制洗衣机的暂停和重新启动。 工作部分使用了一个进程来处理,在该进程中主要处理强制开盖,洗衣的各 个状态。控制端中,中间变量SG是工作结束标志信号, DT是状态的中间变量。COOK为强开洗衣机盖子信号端,DCP输入状态中间信号。LOOK为时间到输出停机,当其输出为高电平时所有数据为0。然后等待下次洗涤始工作,直至再次按下 START 键,又从新开洗衣机正常工作过程。与暂停后的再次启动不同。ST 为时间计数的中间变量。整体设计方案如下:

VerilogHDL与FPGA设计基础_授课教案0709

西安邮电大学课程教案 课程名称:VerilogHDL与FPGA设计基础 授课教师:李哲 授课教师所在学院:电子工程学院 授课班级:电路1201~02 授课学期: 2014-2015-01学期

一、基本信息 课程名称VerilogHDL与FPGA设计基础 课程性质○必修⊙限选○选修○素拓○跨学科授课专业班级学生人数:67 所处年级○一年级○二年级⊙三年级○四年级 总学时64 理论课时40 实验课时24 学分 4 课程教材VerilogHDL与FPGA设计基础 上课时间2014-2015-1 上课地点A337、A322 答疑时间答疑地点2#112 先修课程 本课程在授课对象所学专业人才培养中的作用与地位本课程是集成电路设计与系统集成专业的一门专业基础课程,学生在先修课程数字电路基础上,掌握使用VerilogHDL进行数字电路设计、仿真,并在Fpga器件上实现数字逻辑。初步掌握集成电路和数字系统的设计方法,培养学生从事集成电路设计技能,对学生进入集成电路设计领域有很重要作用。 本课程在知识传授、能力提升、素质培养各方面的教学目标掌握基于FPGA Verilog HDL实现数字电路仿真的方法。一方面可以使学生掌握一种适合产品样机和小批量生产的理想手段,另一方面也为进一步学习专用集成电路芯片设计打下了良好基础。通过本课程的学习可以使学生掌握1)自顶向下的全正向设计思想;2)可编程逻辑器件的基本知识和相关软件的使用方法;3)FPGA电路设计的方法和技巧。基本具备中小规模可编程逻辑器件的设计开发能力。 学生情况分析注:本栏目建议各位老师通过与学生深入沟通、向前续课程授课教师和辅导员老师了解情况等各种方式,充分了解授课学生的实际情况,积极有效地开展教学。

EDA作业

1.简单PLD器件包括哪几种类型的器件?他们之间有什么相同点和 不同点? 答:PLD器件一般可分为4种:PROM、PLA、PAL、GAL器件 相同点: 简单PLD的典型结构是由与非门阵列、或门阵列组成,能够以“积之和” 的形式实现布尔逻辑函数,因为其任意一个组合逻辑都可以用“与或”表达式来描述,所以能够完成大量的组合逻辑功能,并且具有较高的速度和较好的性能。 不同点: PROM:(1)与阵列固定,或阵列可编程 (2)当输入的数目太大时,器件功耗增加,巨大阵列开关时间也会导 致其速度缓慢,但其价格低,易于编程,没有布局、布线问题,性能 完全可以预测。 PLA:(1)与阵列和或阵列都可编程 (2)由于与阵列可编程,使得PROM中由于输入增加而导致规模增加的问题不复存在,从而有效地提高芯片的利用率,其用于含有复杂的随 机逻辑值换的场合是较为理想,但其慢速特性和相对高的价格妨碍了 它被广泛使用。 PAL:(1)或阵列固定,与阵列可编程 (2)与阵列可编程特性使输入项可以增多,而固定的或阵列又使器件得以简化。在这种结构中,每个输出是若干乘积项之和,乘积项数目有 时固定的。其结构对于大多数逻辑函数是有效的,同时此结构也提供 了较高的性能和速度,一度成为PLD发展史的主流。 GAL:其吸收先进的浮栅技术,并与CMOS的静态RAM结合,成了E2PROM 技术,从而使GAL具有了可电擦写、可重复编程、可设置加密功能。 GAL的输出可由用户来定义,他的每个输出端都集成着一个可编程的 输出逻辑宏单元。 2.Altera公司MAX7000系列CPLD有什么特点? MAX7000系列是高密度、高性能的CMOS CPLD,采用先进的0.8umCMOS EEPROM技术制造,它提供600~5000可用门,引线端子到引线端子的延时为6ns,计数器频率可达151.5MHz,它主要有逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和I/O控制模块组成。

(完整word版)EDA计算器设计大作业

计算器设计 专业:电子信息工程 设计者:

摘要 本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL语言实现加减乘除功能,并用十进制显示在数码管上。系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成。使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果。通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现。 关键字:VHDL,计算器,QuartusII

目录 一.实验目的 (4) 二、流程图 (4) 三.顶层原理图 (5) 四、各个模块 (6) (1)加法器模块 (6) 1、封装元件 (6) 2、加法器程序 (7) 3、仿真结果 (7) (2)减法器模块 (8) 1、封装元件 (8) 2、减法器程序 (9) 3、仿真结果 (10) 4、硬件运行结果 (11) (3)乘法器模块 (12) 1、封装元件 (12) 2、乘法器的设计思想 (12) 3、乘法器程序 (13) 4、仿真结果 (14) 5、硬件运行结果 (14) (4)除法器模块 (15) 1、封装元件 (15) 2、除法器设计思想 (15) 3、除法器程序 (16) 4、仿真结果 (16) 5、硬件运行结果 (17) (5)8位除法器 (18) 1、封装元件 (18) 2、8位除法器设计思想 (18) 3、8位除法器程序 (19) 4、仿真结果 (21) (6)数码管七段译码电路 (22) 1、封装元件 (22) 2、共阴极七段显示码十六进制转换表 (22) 3、七段译码器程序 (23) 4、仿真结果 (23) (7)选择模块 (24) 1、封装元件 (24) 2、程序 (25) 五、管脚锁定 (25) 六、小结与收获 (26)

verilog语言设计-同步清零计数器

数字电子技术基础可编程逻辑器件大作业106进制同步清零计数器 班级:0906101 学号:1090610106 姓名:康代涛

1.同步清零计数器 1.1设计目的与要求 利用Verilog HDL设计一个以自己学号后三位为模的计数器。 设计要求:1.编写源程序2.给出仿真电路图和仿真波形图。 1.2 Verilog HDL源代码 module counter_106(clk,reset,out); input clk; input reset; output[6:0] out; reg[6:0] out; always@(posedge clk) begin if(reset==1) out<=0; else if(out==105) out<=0; else out<=out+1; end endmodule 1.3仿真原理图 同步清零计数器的仿真电路如下图所示: 1.4 仿真波形图 同步清零计数器仿真波形如下图所示:

2设计总结 本次设计需要利用Verilog HDL设计一个以自己学号后三位为模的计数器,而且要编写源程序并给出仿真电路图和仿真波形图。 通过本次设计,使自己初步了解了如何利用Quartus II 9.1 设计可编程逻辑器件,巩固了用Verilog HDL 语言编写硬件描述电路,以这样一种方式使自己复习并进一步熟悉了Verilog语言,对自己在数字电子技术方面的学习有很大作用。 参考文献: [1]杨春玲,王淑娟,《数字电子技术基础》,高等教育出版社,2011.6 [2]王立欣,杨春玲,《电子技术实验与课程设计》,哈尔滨工业大学出版社,2009 [3]廉玉欣,《电子技术基础实验教程》,机械工业出版社,2010

蔡觉平老师,verilog上机作业

上机作业 题目2:简述begin-end 语句块和fork-join 语句块的区别,并写出下面信号对应的程序代码 begin-end 语句块和fork-join 语句块的区别: 1、执行顺序:begin-end 语句块按照语句顺序执行,fork-join 语句块所有语句均在同一时刻执行; 2、语句前面延迟时间的意义:begin-end 语句块为相对于前一条语句执行结束的时间,fork-join 语句块为相对于并行语句块启动的时间; 3、起始时间:begin-end 语句块为首句开始执行的时间,fork-join 语句块为转入并行语句块的时间; 4、结束时间:begin-end 语句块为最后一条语句执行结束的时间,fork-join 语句块为执行时间最长的那条语句执行结束的时间; 5、行为描述的意义:begin-end 语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。fork-join 语句块为电路上电后,各电路模块同时开始工作的过程。 程序如下: module b(a,b); output a,b; reg a,b; initial begin a=0; b=1; #10 a=1; fork b=0; #10 b=1; #20 a=0; join #10 b=0; #10 a=1; b=1; end endmodule A B

题目3.分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。 程序如下: module block1(din,clk,out0,out1,out2,out3); input din,clk; output out0,out1,out2,out3; reg out0,out1,out2,out3; always@(posedge clk) begin out3=out2; out2=out1; out1=out0; out0=din; end endmodule

青岛理工大学eda作业

EDA上机实验报告 实验1:T触发器 一、实验目的 1、认识T触发器。 2、掌握T触发器的逻辑功能和动作特点。

3、利用VHDL软件实现具有T触发器的数字电路。 二、实验原理 设计的是一个不带置位的T触发器,数据输入端为t,时钟输入端为clk,两个反相的输出端a,b。 当t=0时,T触发器保持前一状态的值; 当t=1时,T触发器状态在时钟边沿(上升沿)的作用下发生翻转。 三、程序及仿真图 library ieee; use ieee.std_logic_1164.all; entity T is port(t, clk: in std_logic; a: out std_logic; b: out std_logic); end T; architecture Behavioral of T is signal buf: std_logic:= '0'; begin process(clk) begin if clk' event and clk = '1' then if(t ='1') then buf <= not buf;

else buf <= buf; end if; end if; end process; a <= buf; b <= not buf; end Behavioral; 信号t的设置: 参数设置:

仿真图: 四.实验遇到的难点以及解决方法

开始输入程序的时候,综合总是显示正确,但是无法仿真成功,究其原因是没有对信号buf赋初值。在程序综合的时候,信号的初 值不是必须的,综合时初值是被忽略的,如果没有给信号buf赋初值,可成功综合但不能成功仿真,一定要注意这一点。 实验2函数发生器 一、实验原理及方法 脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是 要产生一个周期和占空比可变的脉冲波形。可控脉冲发生器的 实现原理比较简单,可以简单的理解为一个计数器对输入的时 钟信号进行分频的过程。通过改变计数器的上线来达到改变周 期的目的,通过改变电平翻转的阀值来达到改变占空比的目的。 二、VHDL实现 1、程序实现过程: entity hanshu is port(clk, reset: in std_logic; q: out std_logic_vector(7 downto 0)); end hanshu; architecture a of hanshu is

西电EDA大作业多功能彩灯

EDA设计报告彩灯控制器 (老师:宗汝) 班级: 学号: 姓名:

一.设计要求 设计能让一排灯(8只)自动改变显示花样的控制系统。可将实验板上的一排发光二极管作为彩灯用。控制器应有两种控制方式: ◆规则变化。变化节拍有0.5秒和0.25秒两种,交替出现,每种节拍可有8种花样,各执行一或二个周期后轮换。 彩灯变化方向有单向移动,双向移动,跳跃移动等。 ◆随机变化。变化花样相同,但节拍及花样的转换都随机出现。 二.设计方案 (1).分频模块。要产生快慢两种节拍,则首先需要有分频器模块,0.5秒和0.25秒两种则可选择四分频和八分频。通过按键进行选择切换。则clk为输入时钟信号,需经分频器分频并输入到LED显示电路;clr为复位清零信号,高电平有效,有效时,电路无条件的回到初始状态;OPT为频率快慢选择信号,低电平节奏快,高电平节奏慢; (2)LED显示模块。经过分频的时钟信号输入LED显示电路中,使电路有规律的输出按照设定的各种花样变化。xuan为选择彩灯变化花样信号,便于改变彩灯花样。而最后就是输出彩灯变化花样led。 三.系统程序设计 分频器模块: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity FENPINQI is port( clk:in std_logic; clr:in std_logic; opt:in std_logic; clkout:out std_logic ); end FENPINQI; architecture arc of FENPINQI is signal clk_tmp: std_logic; signal counter: std_logic_vector(1 downto 0); begin process(clk,clr,opt) begin if clr='1' then --清零 clk_tmp<='0'; counter<="00"; elsif clk'event and clk='1' then

Verilog hw 电子科技大学

第一章作业 1、集成电路是哪一年有谁发明的? 2、诺伊斯对集成电路的主要贡献是什么 3、MOS场效应管是哪年出现的? 4、集成电路的发展规律是由谁总结提出来的,具体规律是什么 5、叙述集成电路的层次设计步骤 第二章作业 1、集成电路的加工有哪些基本工艺? 2、简述光刻工艺过程及作用 3、简述双阱CMOS集成电路工艺加工过程? 4、MOS晶体管什么类型? 5、版图设计的过程分为那几步? 6、设MOS电路中某层的电阻率ρ=1?·cm,该层厚度是1μm,试计算: (1)有这层材料制作的长度为55μm、宽度为5μm的电阻值 (2)若使用方块电阻的概念,计算该材料的方块电阻值? 第三章作业 1、说明MOS管的工作原理 2、写出NMOS管的电流-电压方程 3、MOS晶体管从工作原理上类别,画出其符号和输出特性曲线及转移特性曲线 4、MOS反相器有哪些种类?说明每种反相器的特性。 第四章 1、什么是硬件描述语言?它的主要作用是什么? 2、采用硬件描述语言设计方法的优点是什么?有什么缺点? 3、Verilog HDL中的数字可以出现哪些值?相应代表的是什么样的物理意义?

4、Verilog HDL中有哪几种数据类型?它们各代表什么意义? 5、完成一个移位寄存器的设计,要求有同步清零功能。 6、Verilog HDL的模型共有哪些类型(级别)? 7、什么是综合?是否任何符合语法的Verilog HDL程序都可以综合? 8、综合后生成的是不是真实的电路?若不是,还需要哪些步骤才能真正变为具体的电路? 9、对同一条线,是否允许由多个连续赋值语句对它进行赋值?对一个寄存器变量,是否允许在同一时刻有多个过程赋值语句对它进行赋值? 10. 综合实例设计一个简易计算器。 第五章作业 1、讲述门阵列的基本结构特征与设计步骤 2、什么是门阵列的母片?什么是门阵列的基本单元?举例说明门阵列基本单元和基本电路单元的关系 3、试对门阵列和标准单元设计方法的主要特征进行比较。 4、叙述FPGA器件的典型结构和编程方法。 5、软核是什么?虚拟器件是什么?固核是什么?硬核是什么? 6、SoC设计方法的三大关键技术是什么?

EDA大作业 课程设计 简易计算器

在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。本次实验我完成的内容是简单计算器的设计,下面我简单的进行一下原理的阐述。 设计一个简单计算器,输入为8位二进制数,分别用两位数码管显示,输出的计算结果为16位二进制数,并用四位数码管显示,能够实现+、-、 *、/ 四种运算,其中除法的结果显示分为商和余数两部分,分别用两位数码管显示。为了完成要求的效果显示,我先设计了一个简单的四则运算器,为了使其结果能清楚的看到,所以计算器模块和一个7段数码管模块连接。实验要求,输入分别用两位数码管显示,输出用四位数码管显示,所以用一个3—8译码器和数码管连接,通过开关控制,形成动态显示。从左向右,依次是第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管到第八位数码管显示输出的结果。通过改变时钟,使其看起来像同时显示在数码管上。

设计流程如下图,分别用两个数码管表示八位二进制数,用一个case 语句表示输入数值采用哪种运算方式,分别用00,01,10,11表示加,减,乘,除。用3—8译码器选择从哪个数码管输出。 硬件流程图 输出结果 A. B 的显示 软件流程图 LED 灯接线部分显示: 中心控制 复位 编码 数码管输出 输入A 输入B 运算选择C 输出out L E D 8 L E D 7 L E D 6 L E D 5 L E D 4 L E D 3 L E D 2 L E D 1

哈工大Verilog课程设计-状态机

可编程逻辑器件大作业(二) 2012年12月

一、题目 利用Verilog HDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1,状态转换图如图所示。要求: 1、编写源程序; 2、给出仿真电路图、状态转换图和仿真波形图 二、程序代码 module moore(clk,din,op,reset); input clk,din,reset; output op; reg[1:0] current_state,next_state; reg op; parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11; always @ (posedge clk) begin if(!reset) current_state = S0; else current_state <= next_state; end always @ (din or current_state)

begin case( current_state ) S0: begin op = 0; if(din == 0) next_state = S0; else next_state = S1; end S1: begin op = 0; if(din == 0) next_state = S0; else next_state = S2; end S2: begin op = 0; if(din == 0) next_state = S0; else next_state = S3; end S3: begin op = 1; if(din == 0) next_state = S0;

EDA作业详解

《EDA技术(II)》课程论文 题目:基于VHDL的数字频率计设计学院:信息与电气工程学院 专业:电气工程及其自动化 姓名:曹家华182440027 王媛182440033 高琳185140054 指导教师:郑伟 成绩: 完成日期:2016 年7 月10 日

随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛发展的引擎就是日趋进步和完善的设计技术。目前数字频率计的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下的逐层完成相应的描述、综合、优化、仿真与验证,知道生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计过程几乎都可以用计算机来自动地完成,也就是说做到了电子设计自动化(EDA)这样做可以大大地缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求,提高产品的竞争能力。 1.设计内容 分析数字频率计的功能,完成功能模块的划分,分别用VHDL语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分析,最后在硬件开发平台上进行测试。 2.设计原理 频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间可以根据需要取值,大于或小于1S都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的

间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。 3.设计功能 四位十进制数字频率计用四组七段译码显示的数字频率计,其频率测量范围为1Hz~10kHz。采用记忆显示的方法,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束,显示时间不少于1秒。 4.频率计方案的设计 根据频率计的测频原理,可以选择合适的时基信号即闸门时间,对输入被测信号脉冲进行计数,实现测频的目的。在这个设计前,我们加入了一项测试周期的功能。在实验过程中,要在频率计提供的基信号和输入信号之间做出选择,充当时基信号即闸门时间。当测频率的时候,要以输入信号作为时钟信号,因为输入信号的频率大于频率计提供的基准频率,在频率计提供的基准信号周期内,计算输入信号的周期数目,再乘以频率计基准频率,就是输入信号的频率值了。此时的时基信号为频率计的基准信号。当测周期的时候,要以频率及提供的基准信号作为时钟信号,因为频率及提供的时基频率大于输入信号的频率,在输入信号周期内,计算频率计提供的基准信号的周期数目,再乘以基准信号频率,就是输入信号的周期值了。此时的时基信号为输入信号。 ㈠方案设计思路 1.时基的设计

eda大作业.

班级 021039 学号 02103121 EDA报告 题目 VHDL设计初步 学院电子工程学院 专业信息对抗技术 学生姓名 导师姓名

目录 第一章实验部分(秒表) (2) 1、程序设计: (2) 2、程序代码 (2) 3、程序调试 (4) 第二章习题部分 (8) 习题一 (8) 习题二 (8) 习题三 (10) 习题四 (11) 习题五 (12) 习题六 (14) 习题七 (17)

第一章实验部分(秒表) 1、程序设计: 秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。 为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。其中,时钟信号CLK为3MHz 的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。 2、程序代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 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 BEHAV OF MIAOBIAO IS BEGIN PROCESS(CLK) --由频率为3MHz的时钟产生频率为100Hz的时钟VARIABLE NUM:INTEGER RANGE 0 TO 15000;--定义计数器 VARIABLE Q:STD_LOGIC;

学习verilog后的总结

关于这个学期学习verilog hdl语言后的小结在完成本次verilog大作业的过程中,我不仅学到了很多只靠看书本学不到的知识,而且体会到了团队协作的力量,在团队成员的合作下,经历了不少困难,终于完成了verilog的大作业,虽然过程并不是和想象中的一样,而且作业也与老师要求的有点差距,但是从中学习到了许多关于verilog的使用与仿真的基础知识,也对课上学到的语句有了更深的理解,并将其应用到了实际工程中,使自己的运用能力得到了很好的锻炼,对基本操作已经较熟练的掌握,对其中一些细节问题,如仿真时间的选取等也有了自己的理解。实践出真知,通过在软件上反复改程序、跑程序我也学会了很多只看书本发现不了的问题,锻炼了自己的解决问题能力。这对于今后的学习是有很大的帮助的。以下做一下简要总结: 这次的大作业是通过我们小组四个同学共同努力下完成的,其中有很多收获也有很多感受。这次的大作业给了我们一次很好的锻炼机会,通过这次大作业,我开始熟悉用verilog设计的最基本的方法和流程,课堂上学到的东西只有自己通过应用才能加深自己的理解,课堂上学到的并不是全部,要想真正的学好这门课,只有在实践中运用才能真正的体会到这门课的精髓,这次的大作业很好的验证了。 有一个外因也是给了我们的帮助,那就是网络的强大,在这个信息的时代,互联网的作用显而易见,如果能够充分得利用网络上海量的信息,掌握一定的检索技巧,就可以获得很多有价值的东西,比如参考别人的算法和程序段,观看关于Quartus II软件的使用教程视频。

这比起关起门来自己钻研要强上不少。对于如何使用verilog hdl写出可综合的代码真的是一件不容易的事情,而真正的可以写出可综合的代码确实还需要经过很长时间的锻炼。而对Quartus II的使用,感觉也只会得不多,还有很多功能诸如时序分析,逻辑分析,引脚分配等都不会使用。 在完成这次大作业的过程中充分感受到自己知识的不足以及学以致用的重要性,有很多不懂的地方,要通过不断的学习来提高自己,这正验证了学海无涯这句古话。这次的大作业是一次很好的实践。通过大家一起设计,大家都很有收获,不仅完成了作业,而且学到了知识,关键的是自己的自学能力有所提高,所以希望以后还有更多实践的机会,这对于我们的提高大有好处。 最后,我还得感谢我的队友们,这次作业的完成是我们共同努力的结果,我真正感受到了团队的力量,也体会到了老师为什么一定要求必须绝对完成的良苦用心。 11光电A1 朱 2014.01.01

数字电子技术基础EDA大作业2终结报告(2016秋)

EDA大作业二终结报告 █████████████一、预习报告 二、阐述设计思路

1、键盘读入模块 键盘读入模块的作用是向下一模块(控制模块)传递按键是否按下以及按键值为多少。根据矩阵键盘的原理,检测行线上的电平值,可以判断矩阵键盘中有无按键按下。当检测到有按键被按下之后,对列线的电平值进行跑马灯式扫描(S1、S2、S3、S4状态,分别指扫描第1、2、3、4列的信号),若检测到某列有低电平则(进入S5状态)可以由当前的行线电平值和列线电平值确定所按键的值。对于长按键的设计,当检测到有按键时进入S5状态(有按键按下的状态),检测到按键还在被按下状态(行线电平值不为1111)的话,则不进行下一次扫描,直到检测到按键被松开(行线电平值为1111)时,进行下一次扫描(进入S0状态)。对于按键防抖的设计,当检测到行线电平值不为1111时,进入S1、S2、S3、S4状态时都再一次进行行线电平值的判断,如果此时行线电平值没有回到1111,则可以认定这次按键是有效的;若此时检测到行线电平值回到1111,则可以认定这是一个抖动,然后回到S0状态。对于是否有按键按下的输出(key_ready),定义中间变量flag1、flag2、flag3以及按键按下标志flag,flag1是flag的延时,flag2是flag的上升沿检测结果,flag3是flag2的延时,flag2在有按键输出的时候只保持一个时钟周期,由于采用非阻塞式赋值,在有按键按下时flag3会产生一个时钟周期的高电平,作为有按键按下的标志(也可以直接以key_busy作为下一级输入,不过要取key_busy得下降沿,不符合同步电路的设计要求)。 键盘读入模块状态机示意图 2、控制模块 控制模块的作用是根据键盘读入模块读入的值进行处理,向显示模块传递要在数码管上显示的数字。状态转化图如下。

电子科大20春《EDA技术》在线作业1

电子科大20春《EDA技术》在线作业1 一、单选题 1.在VHDL中,结构体内部是由()语句组成的。 A.顺序 B.并行 C.顺序和并行 D.任何 正确答案:A 2.库(LIBRARY)包括哪几大类 A.IEEE 库、STD 库、面向ASIC的库、用户定义库 B.IEEE 库、STD 库、WORK库、用户定义库 C.IEEE 库、STD 库、WORK库、面向ASIC的库、用户定义库 D.STD 库、WORK库、面向ASIC的库、用户定义库 正确答案:C 3.下面哪一条命令是MAXPLUSII在时序仿真时执行加载节点的命令()。 A.file- set project to current file B.assign-pin/location chip C.node-enter node from SNF D.file-create default symbol 正确答案:C 4.在元件例化语句中,用_______符号实现名称映射,将例化元件端口声明语句中的信号与PORT MAP ()中的信号名关联起来。 A.= B.:= C.<= D.=> 正确答案:D 5.EAB中RAM的大小可灵活配置,Altera FLEX 10K 系列器件中的EAB作RAM用时,有哪几种配置模式 A.512x8,1024x4,2048x2,4096x1 B.256x8,512x4,1024x2,2048x1 C.256x4,512x2,1024x1 D.256x16,512x8,1024x4,2048x2 正确答案:B 6.下列关于变量的说法正确的是 A.变量是一个局部量,它只能在进程和子程序中使用。 B.变量的赋值不是立即发生的。 C.在进程的敏感信号表中,既可以使用信号,也可以使用变量。 D.变量赋值的一般表达式为目标变量名表达式。 正确答案:A 7.进程语句的启动条件是 A.wait语句或敏感信号量 B.wait语句

EDA大作业实验报告

一、选题目的 大二学过数电之后大三接触EDA数电逻辑设计,老师上课主讲EDA中的VHDL 语言设计部分,上课听讲感觉认真编写程序,借助程序调试,功能/时序的波形仿真,结果应该不会有太偏的问题,个人感觉关键是在FPGA板上下载运行最好是现象明显直观,涉及的运算单元少的实验,所以我选择做流水灯,感觉老师布置的流水灯的题目要求太多了,我就算自定义一个流水灯吧,希望徐老师不要怪我能力有限。 二、设计目标 设计能让一排灯(8只)自动改变显示花样的控制系统。可将实验板上的一排发光二极管作为彩灯用。八个彩灯的变化方式有8种,分别实现1:从右向左灭灯2:从左向右灭灯 3:从右向左亮灯4:从左向右亮灯 5:从两侧向中间灭灯(两侧各一个) 6:从两侧向中间灭灯(两侧各两个) 7:从右侧向左侧亮灯(一侧两个) 8:交叉闪烁 按照实际生活中常见的流水灯变化,设计的这8种花形变化实现自动循环变化。 三、实现方案(包括原理框图和VHDL设计流程图)

四、设计过程(包括关键模块的仿真结果)VHDL library IEEE; use IEEE.STD_LOGIC_1164.all; useIEEE.STD_LOGIC_unsigned.all; entity led1 is port( sysclk: in std_logic; dout: out std_logic_vector(7downto 0) ); end led1; architecturejgt of led1 is signalcnt : std_logic_vector ( 7 downto 0); --variable count:integer RANGE 0 TO 7; signal count : std_logic_vector(5 DOWNTO 0); begin process(sysclk) begin if ( sysclk'event and sysclk = '1') then cnt<= cnt + 1; if (cnt = "11110111") then cnt<= "00000000" ; count<=count+1; end if ; end if; end process; process (count) begin case count is when "000000" =>dout<= "11111110"; when "000001" =>dout<= "11111101"; when "000010" =>dout<= "11111011"; when "000011" =>dout<= "11110111"; when "000100" =>dout<= "11101111"; when "000101" =>dout<= "11011111"; when "000110" =>dout<= "10111111"; when "000111" =>dout<= "01111111"; when "001000" =>dout<= "10111111"; when "001001" =>dout<= "11011111"; when "001010" =>dout<= "11101111"; when "001011" =>dout<= "11110111"; when "001100" =>dout<= "11111011";

相关主题
文本预览
相关文档 最新文档