西电EDA大作业

《数字电路与系统设计》EDA实验报告班级:学号:姓名:西安电子科技大学电子工程学院毫秒表计时器一、实验功能简介:本系统是利用verilog语言设计,并在Basys2 FPGA开发板上实现的毫秒表计时器。

该系统从0.00s开始以0.01s为步长开始计时当计到0.99s时经过判定后个位加一变为1.00s,之后继续以0.01s为步长从1.00s开始计时直到1.99s,之后进行判定个位加一变为2.00s,继续上述循环,直到毫秒表计时计到59.99s 时进行判定时钟自动重置再继续从0.00s开始计时。

本系统设置了一个复位时钟,推动复位键可以在计时期间中断计时,归零后重新计时。

二、实验条件:1.Basys2 FPGA开发板Basys2 FPGA开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路。

Basys2是围绕着一个Spartan-3E FPGA芯片和一个Atmel AT90USB USB控制器搭建的,它提供了完整、随时可以使用的硬件平台,并且它适合于从基本逻辑器件到复杂控制器件的各种主机电路。

Basys2板上集成了大量的I/O设备和FPGA所需的支持电路。

主要特点如下:Xilinx Spartan 3E FPGA,10万或25万门,FPGA特性18位乘法器,72位高速双端口Block RAM,以及500MHz+运算能力,USB2.0高速接口提供FPGA配置和数据传输,Xilinx Platform Flash ROM可以无限次存储FPGA 配置,用户可配置晶振(25,50,100MHz),另附可连接第二个时钟晶振的插座,三个内置稳压器(1.2V,2.5V,和3.3V),允许使用3.5V-5.5V的外部电源供电,8个用户可编程LED指示灯,4个七段数码管显示器,4个按键开关,8个滑动开关,1个PS/2接口和1个8位VGA显示接口,4个6针用户扩展接口,可以用来连接Digilent PMOD附属电路板,需要Adept2.0或更新版本软件来进行操作。

2.仿真软件——Modelsim SE 6.5eModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。

3.电子设计软件——Xilinx ISE Design Suite 13.2Xilinx ISE Design Suite是利用新技术来降低总设计成本的电子设计套件软件,并且实现了比任何其他PLD解决方案更高的性能。

借助Xilinx ISE Design Suite 的突破性技术提高系统级设计效率并加快产品投产。

ISE Design Suite采用各种方法来实现团队设计、功耗优化以及简化IP集成,从而充分发挥Xilinx目标设计平台在配置逻辑、嵌入式和DSP设计方面的潜力。

4.开发语言——Verilog HDLVerilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。

1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。

1989年CADENCE 公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。

1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。

描述复杂的硬件电路,设计人员总是将复杂的功能划分为简单的功能,模块是提供每个简单功能的基本结构。

设计人员可以采取“自顶向下”的思路,将复杂的功能模块划分为低层次的模块。

这一步通常是由系统级的总设计师完成,而低层次的模块则由下一级的设计人员完成。

自顶向下的设计方式有利于系统级别层次划分和管理,并提高了效率、降低了成本。

“自底向上”方式是“自顶向下”方式的逆过程。

Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。

这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。

一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。

不过,Verilog与C语言还是存在许多差别。

另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。

总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。

三、实验过程:1.系统组成框图:图1 系统组成2.模块划分及各个模块的详细功能a)module top_clock(clk, reset,reset2,display_led,led_control_1,led_control_2,led_control_3,led_ control_4);调用clock & display刷屏显示时钟,主模块b)module clock( clk, reset, second, minute, hour);秒表程序,实现0.00-59.99s计数c)module display(num,light_high,light_low);调用 hex2dec &display_single实现两位十进制数(0-99)到两位数码管显示电平(7位)转换d)module display_single(num,light);将4位2进制表示的十进制数(BCD){可拓展至F}转换为数码管上的7线电平e)module hex2dec(num,num_high,num_low); module hex2dec 将“rom_hex2dec.txt”文件上的内容读入传给num_high与num_low,实现0-99十进制数的BCD码表示f)module device_60(clk,rst,out_clk);提供分频显示刷屏时钟3.流程图及流程图详细介绍:4.详细的程序清单及程序注释clock.v:`timescale 1ns/10ps/*******************************Author: Fu LiV ersion: V1.0Date: 2012-10-10Fuction description: A clock*//********************************/module clock( clk, reset, second, minute, hour);//define the portinput clk,reset;output [6:0] second;output [5:0] minute;output [4:0] hour;reg [6:0] second;reg [5:0] minute;reg [4:0] hour;reg flag_s_m,flag_m_h;//******************************* secondalways @(posedge clk or posedge reset)if(reset)second<=7'b0000000;elsebeginif(second<99)beginsecond<=second+1'b1;endelsesecond<=7'b0000000;endalways @(posedge clk or posedge reset)if(reset)flag_s_m<=1'b0;elsebeginflag_s_m<=1'b1;elseflag_s_m<=1'b0;end//********************************************** always @(posedge clk or posedge reset)if(reset)minute<=6'b000000;elsebeginif(flag_s_m)beginif(minute<=58)minute<=minute+1'b1;elseminute<=6'b000000;endelseminute<=minute;endalways @(posedge clk or posedge reset)if(reset)flag_m_h<=1'b0;elsebeginif(minute==59 && flag_s_m )flag_m_h<=1'b1;elseflag_m_h<=1'b0;end//*******************************************always @(posedge clk or posedge reset)if(reset)hour<=5'd0;elsebeginif(flag_m_h)beginif(hour<=22)hour<=hour+1'b1;hour<=5'd0;endelsehour<=hour;endendmoduletest_clock.v:`timescale 1ns/10psmodule test_clock();reg clk,reset;wire [5:0] second, minute;wire [4:0] hour;parameter half_period=5;initialbegin#1 clk=0;reset=0;#10 reset=1;#20 reset=0;endalways@(*)#half_period clk<=~clk;wire [6:0] display_led1, display_led2;wire [6:0] display_led3,display_led4;wire led_control_1,led_control_2,led_control_3,led_control_4;top_clock u1(clk, reset, reset2,display_led,led_control_1,led_control_2,led_control_3,led_control_4); //endmoduletop_clock.v:`timescale 1ns/10psmodule top_clock(clk, reset, reset2,display_led,led_control_1,led_control_2,led_control_3,led_control_4);//define the portinput clk,reset,reset2;output [6:0] display_led;output led_control_1,led_control_2,led_control_3,led_control_4;reg [6:0] display_led;reg led_control_1,led_control_2,led_control_3,led_control_4;//*******************************//define the clock 1 second from the main clock 50MHZ 20NS*1000=20MS//20NS*25000=0.5Sparameter clock_1s_value=250*1000;reg [24:0] clock_1s_counter;reg clock_1s;always @(posedge clk or posedge reset)if(reset)clock_1s_counter<=25'd0;elsebeginif(clock_1s_counter==clock_1s_value)clock_1s_counter<=25'd0;elseclock_1s_counter<=clock_1s_counter+1'b1;endalways @(posedge clk or posedge reset)if(reset)clock_1s<=1'b0;elsebeginif(clock_1s_counter==clock_1s_value)clock_1s<=~clock_1s;endreg [1:0] reset_clock_counter;reg reset_clock;always @(posedge clock_1s or posedge reset)if(reset)beginreset_clock<=1'b0;reset_clock_counter<=2'b00;endelsebeginif(reset_clock_counter==2'b01)beginreset_clock<=1'b1;reset_clock_counter<=reset_clock_counter+1'b1;endelse if(reset_clock_counter==2'b10)beginreset_clock<=1'b0;reset_clock_counter<=2'b10;endelsereset_clock_counter<=reset_clock_counter+1'b1;end//**************************************************wire [6:0] second;wire [5:0] minute;wire [4:0] hour;clock u1( .clk(clock_1s), .reset(reset_clock), .second(second), .minute(minute), .hour(hour));//***************************************************wire [6:0] light;wire [6:0] second_high;wire [6:0] second_low;wire [6:0] minute_high;wire [6:0] minute_low;display u2(.num(second),.light_high(second_high),.light_low(second_low));display u3(.num({1'b0,minute}),.light_high(minute_high),.light_low(minute_low));//*************************display//**************************************************2div to displywire clk_60;device_60 u4(.clk(clk),.rst(reset2),.out_clk(clk_60));//reg [1:0] display_div;always @(posedge reset2 or posedge clk_60)if (reset2)display_div<=2'b00;elsedisplay_div<=display_div+1'b1;always @(posedge clk_60)if (reset2)beginled_control_1<=1'b1;led_control_2<=1'b1;led_control_3<=1'b1;led_control_4<=1'b1;display_led<=7'd0;endelsebeginif(display_div==2'b00)beginled_control_1<=1'b0;led_control_2<=1'b1;led_control_3<=1'b1;led_control_4<=1'b1;display_led<=minute_high;endelse if(display_div==2'b01)beginled_control_1<=1'b1;led_control_2<=1'b0;led_control_3<=1'b1;led_control_4<=1'b1;display_led<=minute_low;endelse if(display_div==2'b10)beginled_control_1<=1'b1;led_control_2<=1'b1;led_control_3<=1'b0;led_control_4<=1'b1;display_led<=second_high;endelse if(display_div==2'b11)beginled_control_1<=1'b1;led_control_2<=1'b1;led_control_3<=1'b1;led_control_4<=1'b0;display_led<=second_low;endenddevice_60.v:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 23:41:45 11/29/2012// Design Name:// Module Name: device_60// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments:////////////////////////////////////////////////////////////////////////////////////module device_60(clk,rst,out_clk);input clk,rst;output out_clk;reg out_clk;reg[9:0] cnt_1024_1;reg[9:0] cnt_1024_2;reg[9:0] cnt;parameter num_dev=10'd1;always@(posedge clk)beginif(rst==1'b1)cnt_1024_1<=10'd0;elsebeginif(cnt_1024_1<=10'd100)cnt_1024_1<=cnt_1024_1+1'b1;elsecnt_1024_1<=10'd0;endendalways@(posedge clk)beginif(rst==1'b1)cnt_1024_2<=10'd0;else if(cnt_1024_1==10'd100)beginif(cnt_1024_2<=10'd100)cnt_1024_2<=cnt_1024_2+1'b1;elsecnt_1024_2<=10'd0;endelsecnt_1024_2<=cnt_1024_2;endalways@(posedge clk )beginif(rst==1'b1)cnt<=10'h00;else if(cnt_1024_2==10'd100&&cnt_1024_1==10'd100)beginif(cnt<=num_dev)cnt<=cnt+1'b1;elsecnt<=10'h00;endelsecnt<=cnt;endalways@(posedge clk )beginif(rst==1'b1)out_clk<=1'b0;elsebeginif(cnt==num_dev&&cnt_1024_2==10'd100&&cnt_1024_1==10'd100)out_clk<=~out_clk;endend//assign out_clk=(cnt<=num_dev>>1)?1'b1:1'b0;endmodulehex2dec.v:module hex2dec(num,num_high,num_low);input [6:0] num;output[3:0] num_high,num_low;//reg[3:0] num_high,num_low;reg[7:0] ROM [0:99];initialbegin$readmemb("rom_hex2dec.txt",ROM);end/*always @(*)begin{num_high,num_low} = ROM[num];end9*/assign {num_high,num_low} = ROM[num];endmoduledisplay_single.v:module display_single(num,light);input [3:0] num;output [6:0] light;reg[6:0] light;always@(*)case(num)4'd0: light=7'b0000001;4'd1: light=7'b1001111;4'd2: light=7'b0010010;4'd3: light=7'b0000110;4'd4: light=7'b1001100;4'd5: light=7'b0100100;4'd6: light=7'b0100000;4'd7: light=7'b0001111;4'd8: light=7'b0000000;4'd9: light=7'b0000100;4'd10: light=7'b0001000;4'd11: light=7'b1100000;4'd12: light=7'b0110001;4'd13: light=7'b1000010;4'd14: light=7'b0110000;4'd15: light=7'b0111000;endcaseendmoduledisplay.v::module display(num,light_high,light_low);input [6:0] num;output[6:0] light_high;output[6:0] light_low;wire[6:0] num_temp;wire[3:0] num_high,num_low;//assign num_temp=(num[3:0]>4'd9)?num+8'd16:num;hex2dechex2dec_dut(.num(num),.num_high(num_high),.num_low(num_low));display_singledisplay_high(.num(num_high),.light(light_high));display_singledisplay_low(.num(num_low),.light(light_low));endmodule四、实验结果:利用Modelsim SE 6.5e软件进行仿真,截图如下:五、实验结论与自己的心得1.实验结论:本次实验达到了预期的效果,使用Verilog更方便的实现了既定目标,数码管计数正常,各个状态的跳转也无问题,复位开关也能成功控制中断复位,获得了较为理想的毫秒表计时器。

合集下载

西安电子科技大学EDA实验报告

西安电子科技大学EDA实验报告

EDA大作业及实验报告实验一:QUARTUS Ⅱ软件使用及组合电路设计仿真实验目的:学习QUARTUS Ⅱ软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容;实验内容:1.四选一多路选择器的设计首先利用QuartusⅡ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等步骤,给出仿真波形。

步骤:(1)建立工作库文件夹和编辑设计文件;(2)创建工程;(3)编译前设置;(4)全程编译;(5)时序仿真;(6)应用RTL电路图观测器(可选择)实验程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT(S10:IN STD_LOGIC_VECTOR(1 DOWNTO 0);A,B,C,D:IN STD_LOGIC;Q:OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE bhv OF mux41 ISBEGINPROCESS(A,B,C,D,S10)BEGINIF S10="00" THENQ<=A;ELSIF S10="01" THENQ<=B;ELSIF S10="10" THENQ<=C;ELSEQ<=D;END IF;END PROCESS;END bhv;波形仿真如图:其中,分别设置A,B,C,D四个输入都为10.0ns的方波,其占空比分别为25%,50%,75%,90%以作为四种输入的区分,使能端s10以此输入00(即[0]),01(即[1]),10(即[2]),11(即[3]),可以观察到输出端Q依次输出分别为A,B,C,D。

试验成功。

其RTL电路图为:2.七段译码器程序设计仿真2.1 原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。

EDA大作业格式规范交通信号灯

EDA大作业格式规范交通信号灯

交通信号灯EDA技术课程大作业设计题目:交通信号灯学生姓名:学号:专业班级:2012年5月 4 日交通信号灯1.设计背景和设计方案1.1设计背景这学期我们学了EDA课程。

为了更加熟练掌握VHDL的设计流程及原理设计了交通信号灯。

交通信号灯有基于DSP设计的,有基于ARM嵌入式的,有基于单片机的,有基于EDA的,还可以用标准逻辑器件。

但是,这些控制方法的功能修改和调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的难度。

所以,现在国内外大多采用EDA技术来实现交通灯控制系统的设计。

随着社会的发展,我国机动车辆的数量也在突飞猛涨。

基于这种情况,我国的道路交通问题已成为令人担忧的问题。

为了缓解交通压力,同时为了降低我国交通事故发生率运用控制系统控制设计成的交通信号灯已成为必然趋势。

在我们的日常生活中较为普遍并且容易操作,便于实现方案论证。

运用quartusii5.1软件实现此电路的设计与仿真。

1.2设计方案交通信号灯的逻辑变化可以使用一个有限状态机来实现。

通常,在最简单的情况下,十字路口的东西和南北两个方向分别有“红、绿、黄”三个交通灯,这三个灯的逻辑变化用来控制交通秩序。

在正常工作情况下,十字路口一般为两路交通灯,我们可以假设为南北方向和东西方向。

为了描述方便我们用E代表东,W代表西,S代表南,N代表北R代表红,G代表绿,Y代表黄。

东西和南北两个方向的红、黄、绿三个交通灯的状态变化顺序可以表示如表1.1所示。

表1.1 交通灯状态变化顺序表在系统复位时,其起始状态一般为两个方向均为红灯,即RR。

另外在某些情况下还有一种备用的工作模式,即两个方向均为黄灯(YY)。

因此在控制时,有多个控制输入信号,及复位信号(reset)和备用模式设置信号(std_by)。

2. 方案实施首先,在除去E盘以外的其他盘下新建一个文件夹,重命名为traffic(注意文件名不能有汉语)。

然后,打开quartusii5.1应用软件。

EDA大作业

EDA大作业

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个采样点进行量化处理,量化值=255*sin360/64(V),将64点量化值存入存储器ROM。

正弦波形的产生是通过循环反复将存储器中的64点采样值通过DAC0832进行还原输出,得到幅值正比于64点采样值的正弦波。

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

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

计算器设计专业:电子信息工程设计者:本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL 语言实现加减乘除功能,并用十进制显示在数码管上.系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成.使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果.通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现.关键字:VHDL,计算器,QuartusII一.实验目的 (4)二、流程图 (5)三.顶层原理图 (5)四、各个模块 (7)(1)加法器模块 (7)1、封装元件 (7)2、加法器程序 (7)3、仿真结果 (8)(2)减法器模块 (9)1、封装元件 (9)2、减法器程序 (10)3、仿真结果 (11)4、硬件运行结果 (11)(3)乘法器模块 (12)1、封装元件 (12)2、乘法器的设计思想 (13)3、乘法器程序 (14)4、仿真结果 (14)5、硬件运行结果 (15)(4)除法器模块 (16)1、封装元件 (16)2、除法器设计思想 (16)3、除法器程序 (16)4、仿真结果 (17)5、硬件运行结果 (17)(5)8位除法器 (18)1、封装元件 (18)2、8位除法器设计思想 (19)3、8位除法器程序 (19)4、仿真结果 (22)(6)数码管七段译码电路 (22)1、封装元件 (22)2、共阴极七段显示码十六进制转换表 (23)3、七段译码器程序 (23)4、仿真结果 (24)(7)选择模块 (24)1、封装元件 (24)2、程序 (25)五、管脚锁定 (26)六、小结与收获 (26)一.实验目的1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程.2、介绍QuartusII 的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

西电EDA大作业多功能彩灯

西电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 isport(clk:in std_logic;clr:in std_logic;opt:in std_logic;clkout:out std_logic);end FENPINQI;architecture arc of FENPINQI issignal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0);beginprocess(clk,clr,opt)beginif clr='1' then --清零clk_tmp<='0';counter<="00";elsif clk'event and clk='1' thenif opt='0' then --四分频if counter="01" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;else --八分频if counter="11" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;end if;end if;end process;clkout<=clk_tmp; --输出分频后的信号end arc;花样一:--用分频器分频后的时钟来显示花样实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY1 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led1:out std_logic_vector(7 downto 0));end HY1;architecture arc of HY1 istype state is(s0,s1,s2,s3,s4,s5,s6);signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10000001";constant l2:std_logic_vector(7 downto 0):="01000010";constant l3:std_logic_vector(7 downto 0):="00100100";constant l4:std_logic_vector(7 downto 0):="00011000";constant l5:std_logic_vector(7 downto 0):="00100100";constant l6:std_logic_vector(7 downto 0):="01000010";beginif xuan="01"thenif clr='1' thencurrent_state<=s0;elsif(clk1'event and clk1='1') thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s1;end case;end if;end if;end process;led1<=light;end arc;花样二:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY2 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led2:out std_logic_vector(7 downto 0));end HY2;architecture arc of HY2 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s 20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30);signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="00000000";constant l2:std_logic_vector(7 downto 0):="10000000";constant l3:std_logic_vector(7 downto 0):="11000000";constant l4:std_logic_vector(7 downto 0):="11100000";constant l5:std_logic_vector(7 downto 0):="11110000";constant l6:std_logic_vector(7 downto 0):="11111000"; constant l7:std_logic_vector(7 downto 0):="11111100"; constant l8:std_logic_vector(7 downto 0):="11111110"; constant l9:std_logic_vector(7 downto 0):="11111111"; constant l10:std_logic_vector(7 downto 0):="01111111"; constant l11:std_logic_vector(7 downto 0):="00111111"; constant l12:std_logic_vector(7 downto 0):="00011111"; constant l13:std_logic_vector(7 downto 0):="00001111"; constant l14:std_logic_vector(7 downto 0):="00000111"; constant l15:std_logic_vector(7 downto 0):="00000011"; constant l16:std_logic_vector(7 downto 0):="00000001"; constant l17:std_logic_vector(7 downto 0):="00000011"; constant l18:std_logic_vector(7 downto 0):="10000111"; constant l19:std_logic_vector(7 downto 0):="00001111"; constant l20:std_logic_vector(7 downto 0):="00011111"; constant l21:std_logic_vector(7 downto 0):="00111111"; constant l22:std_logic_vector(7 downto 0):="01111111"; constant l23:std_logic_vector(7 downto 0):="11111111"; constant l24:std_logic_vector(7 downto 0):="11111110"; constant l25:std_logic_vector(7 downto 0):="11111100"; constant l26:std_logic_vector(7 downto 0):="11111000"; constant l27:std_logic_vector(7 downto 0):="11110000"; constant l28:std_logic_vector(7 downto 0):="11100000"; constant l29:std_logic_vector(7 downto 0):="11000000"; constant l30:std_logic_vector(7 downto 0):="10000000"; beginif xuan="10" thenif clr='1' thencurrent_state<=s0;elsif(clk1'event and clk1='1') thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s15;when s15=>light<=l15;current_state<=s16;when s16=>light<=l16;current_state<=s17;when s17=>light<=l17;current_state<=s18;when s18=>light<=l18;current_state<=s19;when s19=>light<=l19;current_state<=s20;when s20=>light<=l20;current_state<=s21;when s21=>light<=l21;current_state<=s22;when s22=>light<=l22;current_state<=s23;when s23=>light<=l23;current_state<=s24;when s24=>light<=l24;current_state<=s25;when s25=>light<=l25;current_state<=s26;when s26=>light<=l26;current_state<=s27;when s27=>light<=l27;current_state<=s28;when s28=>light<=l28;current_state<=s29;when s29=>light<=l29;current_state<=s30;when s30=>light<=l30;current_state<=s1;end case;end if;end if;end process;led2<=light;end art;花样三:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY3 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led3:out std_logic_vector(7 downto 0));end HY3;architecture art of HY3 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14); signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10000000";constant l2:std_logic_vector(7 downto 0):="01000000"; constant l3:std_logic_vector(7 downto 0):="00100000"; constant l4:std_logic_vector(7 downto 0):="00010000"; constant l5:std_logic_vector(7 downto 0):="00001000"; constant l6:std_logic_vector(7 downto 0):="00000100"; constant l7:std_logic_vector(7 downto 0):="00000010"; constant l8:std_logic_vector(7 downto 0):="00000001"; constant l9:std_logic_vector(7 downto 0):="00000010"; constant l10:std_logic_vector(7 downto 0):="00000100"; constant l11:std_logic_vector(7 downto 0):="00001000"; constant l12:std_logic_vector(7 downto 0):="00010000"; constant l13:std_logic_vector(7 downto 0):="00100000"; constant l14:std_logic_vector(7 downto 0):="01000000"; beginif xuan="11" thenif clr='1'thencurrent_state<=s0;elsif(clk1'event and clk1='1')thencase current_state is --状态机转换when s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s1;end case;end if;end if;end process;led3<=light;end art;花样四:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HY4 isport(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led4:out std_logic_vector(7 downto 0));end HY4;architecture art of HY4 istype state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14); signal current_state:state;signal light:std_logic_vector(7 downto 0);beginprocess(clr,clk1,xuan)isconstant l1:std_logic_vector(7 downto 0):="10101010";constant l2:std_logic_vector(7 downto 0):="01010101";constant l3:std_logic_vector(7 downto 0):="10010010";constant l4:std_logic_vector(7 downto 0):="01001001";constant l5:std_logic_vector(7 downto 0):="10010100";constant l6:std_logic_vector(7 downto 0):="01001001";constant l7:std_logic_vector(7 downto 0):="00100100";constant l8:std_logic_vector(7 downto 0):="00011000";constant l9:std_logic_vector(7 downto 0):="00101010";constant l10:std_logic_vector(7 downto 0):="11000011";constant l11:std_logic_vector(7 downto 0):="01100000";constant l12:std_logic_vector(7 downto 0):="00111000";constant l13:std_logic_vector(7 downto 0):="10001100";constant l14:std_logic_vector(7 downto 0):="01001001";beginif xuan="00" thenif clr='1'thencurrent_state<=s0;elsif(clk1'event and clk1='1')thencase current_state iswhen s0=>light<="ZZZZZZZZ";current_state<=s1;when s1=>light<=l1;current_state<=s2;when s2=>light<=l2;current_state<=s3;when s3=>light<=l3;current_state<=s4;when s4=>light<=l4;current_state<=s5;when s5=>light<=l5;current_state<=s6;when s6=>light<=l6;current_state<=s7;when s7=>light<=l7;current_state<=s8;when s8=>light<=l8;current_state<=s9;when s9=>light<=l9;current_state<=s10;when s10=>light<=l10;current_state<=s11;when s11=>light<=l11;current_state<=s12;when s12=>light<=l12;current_state<=s13;when s13=>light<=l13;current_state<=s14;when s14=>light<=l14;current_state<=s1;end case;end if;end if;end process;led4<=light;end art;顶层设计:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity caideng8 isport(clk:in std_logic;clr:in std_logic;opt:in std_logic;xuan:in std_logic_vector(1 downto 0);led:out std_logic_vector(7 downto 0) --八路彩灯输出);end caideng8;architecture art of caideng8 iscomponent FENPINQI --对分频器模块进行定义port(clk:in std_logic;clr:in std_logic;opt:in std_logic;clkout:out std_logic);end component FENPINQI;component HY1 --对花样一模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led1:out std_logic_vector(7 downto 0));end component HY1;component HY2 --对花样二模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led2:out std_logic_vector(7 downto 0));end component HY2;component HY3 --对花样三模块进行定义port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led3:out std_logic_vector(7 downto 0));end component HY3;component HY4port(clk1:in std_logic;clr:in std_logic;xuan:in std_logic_vector(1 downto 0);led4:out std_logic_vector(7 downto 0));end component HY4;signal s:std_logic; --定义中间变量signal l1:std_logic_vector(7 downto 0);signal l2:std_logic_vector(7 downto 0);signal l3:std_logic_vector(7 downto 0);signal l4:std_logic_vector(7 downto 0);beginu1:FENPINQI port map(clk,clr,opt,s);u2:HY1 port map(s,clr,xuan,l1);u3:HY2 port map(s,clr,xuan,l2);u4:HY3 port map(s,clr,xuan,l3);u5:HY4 port map(s,clr,xuan,l4);led<=l1 when xuan="01" elsel2 when xuan="10" elsel3 when xuan="11" elsel4;end art;四.仿真花样一仿真波形:clr为输入,是异步复位端,当为高电平时有效。

西电系统仿真大作业

西电系统仿真大作业

系统仿真大作业指导老师:___________ 屈胜利班级:学号:系统仿真大作业姓名:系统仿真上机作业一、计算机辅助系统分析:系统如下图所示:其中r 是单位阶跃,G 是非线性器件,G (s )= _________ Kj^s ) _________s(10s 1)(0.625s 1)(0.025s 1)1. 当G N = 1、 K = 40 时,用MATLAB 画出开环Bode 图,求出3 c 、6 B 。

由其估计出 t r 、 t s 、(T % 。

解:matlab 程序如下:zbvll .m 工 | 41 - c1 ear2 — ruiio= £0 0 0 40 402 ;3 -出的1=匚011\”仁 1 0], [10 1]):4 - den2=canv([0-625 l]a [0. 025 1J):□ - d^n= conv (d«nl, dsn.2) 6 - bode den) 7 -grid on;Q — K label f Frequency rad/s* 5 'fontsize h a 10)8 - t itle(' Bode Diacran G<s |:=4O (l+s)/s (10s+l) (0* 62&sH )(0. 025s+l)?).0 -phase, v2-bod.e (num, den':1 -[Gm :- Pm, '^cg, Wcp^ =narfin(nag, phase, w)u5----- ►-270103(HP)昌n -F ff乏(Bmp)0J苗Erd运行结果如下:■» ztai仿真波形如下:den =O.lo63 6^156 10. S D OOLflOOOGm 二4.321410. 01S5Vcp =2. 3973由上图知:den =[ 0.1563,6.5156 ,10.6500 ,1.0000 ,0]增益裕量Gm = 4.3168 穿越频率Wcg= 5.1598 所以得到:3 c =5.1598相位裕量Pm = 10.0158 增益为0的频率Wcp=2.3975e B =10.0158System, sysFrequency (rad/s) 5 04 Magnitude (dB): -12.3System: sysFrequericy (rad/s). 2.43Magn itude (dB). -0 2OS5W ] 10°101 103FreqLFertcy rad/s (rad/s)5 80 5 2其相应的闭环传递函数为 G3(s)=10s A 2+s+40, 此二阶系统可求出相应的 =0.025,Wi =2所以可以估计出:t r =—=0-80s (其中 严,现 18.67s/%=—=92.44%,matlab 程序:svs=t £ 'rnnrn , den)sys= feedback < sys . 1): *y, t'=step(ays ■: ytr-find(y>-l): rise_Tinie=T (ytr (1)) 二r 禺 tpZ-DlK (丁), peak_tine=t(tp);max. OA'ershaot =ymsx- L s-Length<t);whi1& y(s)>0. 98&y<s)<1.02s-s-1:endsettJing_tLme=t (s)运行结果为:求解 t r 、 t s 、(T %:由bode 图:可将系统的开环传递函数化成G(s)二40s (10s 1)0, 7772a ax_ ctvei sho ot =0.81^0settling_t itne ■17.09S5所以得到:t r=0.7772s t s=17.0985s 彷% =81.68%经检验:由bode图估算出tr,彷% ,ts的结果与正确值的差距不大2•当G N1,K 40时,用MATLAB画出根轨迹图,并求出K 40时的闭环极点;由其估计出t r、t s、c %解:matlab程序为:»nun=:0 0 0 40 40:: denl=conv{Z1 0], [10 1]): den2=conv([0< 625 1J »L0.02b 1]): de n= c cm- (den,l, (icn2);sys-tf(num, den): ?P,z^=pzmap(sys]ri ocus(sys)运行结果:-40.oooa一1・ GOOD-0.1000求系统闭环零极点matlab程序:100>> sys=f eedi ack(sys, 1):1sys ■运行结果:-40.1616 + 0. OOOOi -0.2274 十 2.41461 -0.2274 - 2.41461 -1.0837 + 0. OOOOi仿真图:Root LocusSystem: sysGain: 0Pole: -40 Damping. 1 Overshoot (%): 0Frequency (rad^s): 40-100 -50 0 50Real Axis (secondls 1)OO00 00 aoa5 o 1 1 - 1■i (jsp 亡QoQln)卫 xy AJEW5EE-I-5( -Root Lot SysM sys,Gain : 4 fi?e-D5Pole, ^o osai Damping: 1 Overstool (%): 0Frequency (rad/s). 0 0901-1 -0.& -0.6 -0 4 -0.2 0Real Axis (seconds1)由上图:闭环系统的所有极点为-40 , -0.2274+ 2.4146j,-0.2274-2.4146j, -1.083,闭环系统的零点为-1。

西电EDA作业


EDEAE工141具实践
8
Tools
E
选题六
DA
Prj6:根据参与的项目,自选适宜题目,完成相似内容。 目的: 1)掌握verilog语言对组合逻辑的描述; 2)学习testbench的设计方法 3)掌握仿真器(modelsim/verilog/VCS)的仿真、调试、波形输 出等常用技巧; 4)掌握DC约束规划方法、综合器使用、结果查看、后仿真等; 5)熟悉简单芯片从规划到实现方法。
EDEAE工141具实践
4
Tools
E
选题二
DA
Prj2:设计一款简单计算器,能够完成4位以内的加、减、乘、除法运算, 并以10进制形式说出结果。 目的: 1)掌握verilog语言对组合逻辑的描述; 2)学习testbench的设计方法 3)掌握仿真器(modelsim/verilog/VCS)的仿真、调试、波形输 出等常用技巧; 4)掌握DC约束规划方法、综合器使用、结果查看、后仿真等; 5)熟悉简单芯片从规划到实现方法。
综合设计工具: DC、Leda、nLint、Formality等 Layout与STA涉及工具:SOCEncount、Virtuso、Astro、Primetime、
Calibra、Dracula、Hercules等
有能力同学可以进一步练习后端版图设计部分。
EDEAE工141具实践
3
Tools
E
选题一
3. 提交上机文件,内容包括:
① 设计代码
EDEAE工141具实践
2
Tools
E
要求
DA
② 验证平台、覆盖率报告
③ 综合报告(约束、面积、性能)
④ 文件命名格式:学号_姓名_上机用户ID 说明

数字电子技术基础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、控制模块控制模块的作用是根据键盘读入模块读入的值进行处理,向显示模块传递要在数码管上显示的数字。

状态转化图如下。

若电路处于state_start状态,则数码管全灭,此时令num32(第3、2数码管显示的数字,即金钱)为21,num10(第1、0数码管显示的数字,即时间)为41(因为对于num32(num10)来说,0到20(40)的数字都在数码管有对应显示,所以选用21、41这两个无关数字作为全灭状态的输出,使数码管处于全灭状态,具体实现见显示模块),数码管全灭。

EDA大作业1

EDA大作业1 3位二进制运算器及其数码管扫描显示电路一、目的1. 学习面向可编程器件(FPGA)的简单数字系统的设计流程。

2. 熟练掌握EDA设计软件Quartus II的原理图输入方式和层次化设计模式。

3.熟悉实验装置——实验板,掌握板上外设的工作原理。

二、预习任务按照以下任务要求完成电子版预习报告。

验收后和终结报告合并一起提交。

1. 根据实验任务中的步骤提示,写出要用到的电路模块及其功能。

2. 阅读附录了解FPGA实验板提供的外设资源,并掌握其工作原理。

三、实验任务在可编程逻辑器件上实现一个运算器,可以进行3位二进制数(无符号数)的加减运算。

要求用原理图的输入方式完成。

用实验板上的按键和拨码开关模拟输入,用数码管和发光二极管显示运算结果。

具体内容及步骤如下:1. 用门电路设计一个1位二进制全加器。

运用波形仿真检查功能正确后,将其封装成1位全加器模块。

2. 以1中已封装的1位全加器模块为基础实现一个3位二进制全加器,并仿真检查功能正确与否。

3. 以2中的3位全加器模块为基础实现一个3位二进制运算器,可以完成运算S=M±N。

其中当减法运算结果为负数时,输出显示差的原码和负数标志。

可将运算结果和负数标志下载至发光二极管显示验证。

4. 设计一个4位数码管的扫描显示电路。

(1)将运算器的两个运算数和运算结果根据拨码开关DIP1、DIP2的状态,在4位数码管上轮流显示,如表1所示。

(提示:可以选用库中的译码器7448或自行设计译码器)(2)负数标志在发光二极管显示。

拨码开关与数码管实物图,见图1。

表1 拨码开关与数码管状态表图1a 拨码开关图1b 4位扫描数码管5. 下载到实验板上验证功能。

外设与FPGA的连接引脚见《FPGA实验板说明书》。

四、验收步骤请同学们首先按以下步骤自查:1. 3位二进制全加器的顶层原理图和仿真2. 运算器的顶层原理图和仿真3. 运算器下载及功能演示4. 运算器及数码管扫描显示电路的顶层原理图和仿真5. 运算器及数码管扫描显示电路下载及功能演示整个project下载实现全部功能后,才能开始验收。

西电eda大作业

EDA实验报告班级:021211班指导老师:杨明磊实验一:QUARTUS II软件使用及组合电路设计仿真一、实验目的:学习QUARTUS II软件的使用,掌握软件工程的建立、VHDL源文件的设计和波形仿真等基本内容;二、实验内容:1.四选一多路选择器的设计首先利用QuartusⅡ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等步骤,给出仿真波形。

(1)、功能及原理原理:数据选择器又称为多路转换器或多路开关,它是数字系统中常用的一种典型电路。

其主要功能是从多路数据中选择其中一路信号发送出去。

所以它是一个多输入、单输出的组合逻辑电路。

功能:当选择控制端s10=00时,输出ay=;s10=01时,输出by=;s10=10时,输出cy=;s10=11时,输出dy=。

(2)、逻辑器件符号(3)、VHDL语言(4)、波形仿真(5)、仿真分析由波形可知:当s10=00时,y的波形与a相同;当s10=01时,y的波形与b相同;当s10=10时,y的波形与c相同;当s10=11时,y的波形与d相同;与所要实现的功能相符,源程序正确。

2、七段译码器程序设计仿真(1)、功能及原理7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。

实验中的数码管为共阳极,接有低电平的段发亮。

例如当LED7S输出为 "0010010" 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,于是数码管显示“5”。

(2)、逻辑器件符号(3)、VHDL语言(4)、波形仿真(5)、仿真分析由仿真波形可以直观看到,当A=“0000”时,led7s=1000000,数码管显示为0;A=“0001”时,led7s=1111001,数码管显示为1;....依此可验证波形仿真结果完全符合预期,源程序正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档