文档库 最新最全的文档下载
当前位置:文档库 › 基于VHDL语言的EDA实验报告(附源码)

基于VHDL语言的EDA实验报告(附源码)

基于VHDL语言的EDA实验报告(附源码)
基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告

——多功能电子钟

姓名:张红义

班级:10级电科五班

学号:1008101143

指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。

1.主控模块:

主要功能:控制整个系统,输出现在的状态,以及按键信息。

源代码:

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entity mc is

port(functionswitch,k,set,lightkey: in std_logic;

chose21,setout: out std_logic;

lightswitch:bufferstd_logic;

modeout,kmodeout : out std_logic_vector(1 downto 0);

setcs,setcm,setch,setas,setam,setah:outstd_logic);

end mc;

architecture work of mc is

signalmode,kmode:std_logic_vector(1 downto 0);

signal light,chose21buf:std_logic;

signalsetcount:std_logic_vector(5 downto 0);

begin

process(functionswitch,k,set,lightkey)

begin

iffunctionswitch'event and functionswitch='1' then

mode<=mode+'1';

end if;

iflightkey'event and lightkey='1' then

lightswitch<=not lightswitch;

end if;

if mode="01" thenchose21buf<='0';

else chose21buf<='1';

end if;

ifk'event and k='1' then

if mode="01" or mode="11" then

kmode<=kmode+'1';

end if;end if;

if set='1' then

if mode = "01" then

ifkmode="01" then setcount<="000001";

elsifkmode="10" thensetcount<="000010";

elsifkmode="11" then

setcount<="000100";

elsesetcount<="000000";

end if;

elsif mode = "11" then

ifkmode="01" then

setcount<="001000";

elsifkmode="10" then

setcount<="010000";

elsifkmode="11" then

setcount<="100000";

elsesetcount<="000000";

end if;end if;end if;

if set='0' then

setcount<="00000”;

end if;

setout<=set;

modeout<=mode;

kmodeout<=kmode;

chose21<=chose21buf;

setcs<=setcount(0);setcm<=setcount(1);setch<=setcount(2); setas<=setcount(3);setam<=setcount(4);setah<=setcount(5); end process;end work;

仿真波形:

2. 计时模块

主要功能:记录时间,正常计时。

60进制

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entity count60 is

port(clk ,clr :in std_logic;

co : out std_logic;

outh :out std_logic_vector(7 downto 4);

outl :out std_logic_vector(3 downto 0));

end count60 ;

architecture work of count60 is

signal bufh:std_logic_vector(7 downto 4);

signal bufl:std_logic_vector(3 downto 0);

begin

process(clk)

begin

ifclr='0' thenbufh<="0000";bufl<="0000";

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

if(bufh="0101"and bufl="1001")then co<='1';bufh<="0000";

bufl<="0000";

elsif(bufl="1001")then

bufl<="0000";bufh<=bufh+1;

elsebufl<=bufl+1;

co<='0'; end if;

end if;outh<=bufh;outl<=bufl;

end process;

end work;

24进制

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entity count24 is

port(clk :in std_logic; co: out std_logic;

outh :out std_logic_vector(7 downto 4);

outl :out std_logic_vector(3 downto 0));

end count24 ;

architecture a of count24 is

signal bufh:std_logic_vector(7 downto 4);

signal bufl:std_logic_vector(3 downto 0);

begin

process(clk)

begin

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

if(bufh="0010"and bufl="0011")then

co<='1';bufh<="0000";bufl<="0000";

elsif(bufl="1001")thenbufl<="0000";

bufh<=bufh+1;

elsebufl<=bufl+1;co<='0';

end if;

end if;

outh<=bufh;outl<=bufl;

end process;end a;

keyen.vhd

libraryieee;

use ieee.std_logic_1164.all;

entitykeyen is

port(en, keyin:instd_logic;

keyout: out std_logic);

endkeyen;

architecture work of keyen is

begin

process(en,keyin)

begin

if en='1' then keyout<=keyin;

elsekeyout<='0';

end if;

end process;end work;

chose21.vhd

libraryieee;

use ieee.std_logic_1164.all;

entity chose21 is

port(clk,add,chose : in std_logic;

co : out std_logic);

end chose21;

architecture work of chose21 is

begin

process(chose,clk,add)

begin

if chose='1' then co<=clk;

elseco<=add;

end if;

end process;end work;

3. 闹钟模块:

主要功能

记录闹钟时间信息,输出闹钟时间信息

源代码:

同上:keyen.vhdcount60.vhdcount24.vhd

4. 辅控模块:

主要功能

处理显示,以及蜂鸣器的信号。时钟输入与闹钟输入相比较,组成闹钟功能,以及整点报时功能。

源代码

Ac.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entity ac is

port(clk,lightonoff:instd_logic;

mode,kmode:instd_logic_vector(1 downto 0);

csh,csl,cmh,cml,chh,chl,ash,asl,amh,aml,ahh,ahl:instd_logic_vector(3 downto 0);

q0,q1,q2,q3,q4,q5,q6,q7:outstd_logic_vector(3 downto 0);

lightswitch,sound512,sound1024,timeok:out std_logic);

end ac;

architecture work of ac is

signal q0b,q1b,q2b,q3b,q4b,q5b,q6b,q7b: std_logic_vector(3 downto 0);

begin

process(chh,cmh,csh,ash,ahh,amh,chl,cml,csl,asl,ahl,aml,mode,km ode,clk)

begin

if mode="00" or mode="01" then --闪烁功能开始

q0b<=csl;

q1b<=csh;

q2b<="1010";

q3b<=cml;

q4b<=cmh;

q5b<="1010";

q6b<=chl;

q7b<=chh;

elsif mode="10" or mode="11" then q0b<=asl;

q1b<=ash;

q2b<="1010";

q3b<=aml;

q4b<=amh;

q5b<="1010";

q6b<=ahl;

q7b<=ahh;

end if;

ifclk ='1' then

if mode="00" or mode="10" then q0<=q0b;

q1<=q1b;

q2<=q2b;

q3<=q3b;

q4<=q4b;

q5<=q5b;

q6<=q6b;

q7<=q7b;

else

casekmode is

when "01" =>

q0<="1111";

q1<="1111";

q2<=q2b;

q3<=q3b;

q4<=q4b;

q5<=q5b;

q6<=q6b;

q7<=q7b;

when "10" =>

q0<=q0b;

q1<=q1b;

q2<=q2b;

q3<="1111";

q4<="1111";

q5<=q5b;

q6<=q6b;

q7<=q7b;

when "11" =>

q0<=q0b;

q1<=q1b;

q2<=q2b;

q3<=q3b;

q4<=q4b;

q5<=q5b;

q6<="1111";

q7<="1111";

when others =>

q0<="1111";

q1<="1111";

q2<="1111";

q3<="1111";

q4<="1111";

q5<="1111";

q6<="1111";

q7<="1111";

end case;end if;

else

q0<=q0b;

q1<=q1b;

q2<=q2b;

q3<=q3b;

q4<=q4b;

q5<=q5b;

q6<=q6b;

q7<=q7b;

end if;--闪烁功能完毕--整点报时功能开始

ifcmh="0101" and cml="1001" then

ifcsh="0101" then

ifcsl="0001" or csl="0010" or csl="0101" or

csl="0111" then

sound512<='1' ;

elsifcsl="1001" thensound1024<='1';

elsesound512<='0';sound1024<='0';

end if;end if;

end if;--正点报时功能完--显示开关功能开始

iflightonoff='1' then

lightswitch<='0';

else

lightswitch<='1';

end if;--显示开关功能完毕--闹钟功能开始

ifchh=ahh and cmh=amh and chl=ahl and cml=aml then timeok<='1';

elsetimeok<='0';

end if;--闹钟功能完毕

end process;end work;

5. 显示模块:

主要功能

处理辅控传来的显示信号,在数码管上直接的显示数字。

源代码

Chose81.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entity chose81 is

port (d0,d1,d2,d3,d4,d5,d6,d7: in std_logic_vector(3 downto 0);

sel : in std_logic_vector(2 downto 0);

q: out std_logic_vector(3 downto 0));

end chose81;

architecture behave of chose81 is

begin

process(sel)

begin

casesel is

when "000"=>q<=d0;

when "001"=>q<=d1;

when "010"=>q<=d2;

when "011"=>q<=d3;

when "100"=>q<=d4;

when "101"=>q<=d5;

when "110"=>q<=d6;

when "111"=>q<=d7;

when others=>q<="XXXX";

end case;end process;end behave;

BCD7DIS.vhd

libraryieee;

use ieee.std_logic_1164.all;

entity bcd7dis is

port(bcdm :in std_logic_vector(3 downto 0);

a,b,c,d,e,f,g : out std_logic);

end bcd7dis;

architecture art of bcd7dis is

signal w : std_logic_vector(6 downto 0);

begin

process(bcdm)

begin

a<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);

casebcdm is

when "0000" =>w<= "1111110";

when "0001" =>w<= "0110000";

when "0010" =>w<= "1101101";

when "0011" =>w<= "1111001";

when "0100" =>w<= "0110011";

when "0101" =>w<= "1011011";

when "0110" =>w<= "1011111";

when "0111" =>w<= "1110000";

when "1000" =>w<= "1111111";

when "1001" =>w<= "1111011";

when "1111" =>w<= "0000000";

when others =>w<= "0000001";

end case;

end process;

end art;

SWSC.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityswsc is

port (en,clk:instd_logic;

q: out std_logic_vector(2 downto 0));

endswsc;

architecture work of swsc is

begin

process(clk,en)

variable x:std_logic_vector(2 downto 0);

begin

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

if en='1' then

if(x<7) thenx:=x+1;

elsex:=(others=>'0');

end if;end if;end if;

q<=x;

end process;

end work;

3-8译码器

实验源码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY YM38 IS

PORT (A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);

EN:IN STD_LOGIC;

Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END YM38;

ARCHITECTURE BEHA V OF YM38 IS

SIGNAL CLK: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

CLK<=A&EN;

PROCESS(CLK)

BEGIN

CASE CLK IS

WHEN "0001" => Y<="00000001";

WHEN "0011" => Y<="00000010";

WHEN "0101" => Y<="00000100";

WHEN "0111" => Y<="00001000";

WHEN "1001" => Y<="00010000";

WHEN "1011" => Y<="00100000";

WHEN "1101" => Y<="01000000";

WHEN "1111" => Y<="10000000";

WHEN OTHERS=> Y<="00000000";

END CASE;

ENDPROCESS;

ENDBEHA V;

6. 蜂鸣模块:

主要功能:系统输入只要求一个1024HZ的脉冲信号,分频器模块将1024HZ分为1HZ,4HZ,512HZ,1024HZ,供各个模块使用。

源代码

Clkcut.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityclkcut is

port(clk:instd_logic;

clk1,clk4,clk512,clk1024:outstd_logic);

endclkcut;

architecture work of clkcut is

signal w:std_logic_vector(9 downto 0);

begin

process(clk)

begin

ifclk'event and clk='1' then

w<=w+'1';

end if;

clk1<=w(9);

clk4<=w(7);

clk512<=w(0);

clk1024<=clk;

end process;

end work;

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

EDA技术与VHDL程序设计基础教程习题答案

EDA技术与VHDL程序设计基础教程习题答案 第1章EDA习题答案 1.8.1填空 1.EDA的英文全称是Electronic Design Automation 2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段 3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向 4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER 5.常用的设计输入方式有原理图输入、文本输入、状态机输入 6.常用的硬件描述语言有VHDL、V erilog 7.逻辑综合后生成的网表文件为EDIF 8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件 9.时序仿真较功能仿真多考虑了器件的物理模型参数 10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum 1.8.2选择 1.EDA技术发展历程的正确描述为(A) A CAD->CAE->EDA B EDA->CAD->CAE C EDA->CAE->CAD D CAE->CAD->EDA 2.Altera的第四代EDA集成开发环境为(C) A Modelsim B MUX+Plus II C Quartus II D ISE 3.下列EDA工具中,支持状态图输入方式的是(B) A Quartus II B ISE C ispDesignEXPERT

D Syplify Pro 4.下列几种仿真中考虑了物理模型参数的仿真是(A) A时序仿真 B 功能仿真 C 行为仿真 D 逻辑仿真 5.下列描述EDA工程设计流程正确的是(C) A输入->综合->布线->下载->仿真 B布线->仿真->下载->输入->综合 C输入->综合->布线->仿真->下载 D输入->仿真->综合->布线->下载 6.下列编程语言中不属于硬件描述语言的是(D) A VHDL B V erilog C ABEL D PHP 1.8.3问答 1.结合本章学习的知识,简述什么是EDA技术?谈谈自己对EDA技术的认识? 答:EDA(Electronic Design Automation)工程是现代电子信息工程领域中一门发展迅速的新技术。 2.简要介绍EDA技术的发展历程? 答:现代EDA技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。它的成熟主要经历了计算机辅助设计(CAD,Computer Aided Design)、计算机辅助工程设计(CAED,Computer Aided Engineering Design)和电子设计自动化(EDA,Electronic System Design Automation)三个阶段。 3.什么是SOC?什么是SOPC? 答:SOC (System on Chip,片上系统) SOPC(System on a Programmable Chip,片上可编程系统) 4.对目标器件为CPLD/FPGA的VHDL设计,主要有几个步骤?每步的作用和结果分别是什

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

EDA技术实用教程-VHDL版课后答案

第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL 程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型? 答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 第二章 2-1 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。 2-2 IP是什么?IP与EDA技术的关系是什么? P24~26 IP是什么? 答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。 IP与EDA技术的关系是什么?答:IP在EDA技术开发中具有十分重要的地位;与EDA技术的关系分有软IP、固IP、硬IP:软IP是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP 通常是以硬件描述语言HDL源文件的形式出现。固IP是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬IP提供设计的最终阶段产品:掩模。 2-3 叙述ASIC的设计方法。P18~19 答:ASIC设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。 全定制方法是一种基于晶体管级的,手工设计版图的制造方法。 半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。 2-4 FPGA/CPLD在ASIC设计中有什么用途? P16,18 答:FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 2-5 简述在基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具,及其在整个流程中的作用。 P19~23答:基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具有:设计输入编辑器(作用:接受不同的设计输

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

EDA技术与VHDL语言课程设计

EDA技术与VHDL语言课程设计 课程设计 EDA技术与VHDL语言 课程设计报告 班级: 电信11-2班 姓名: 董元伟 学号: 1106110205 指导教师: 李铁 成绩: 电子与信息工程学院 信息与通信工程系 - 2 - 课程设计;数字密码锁 目录 摘 要 ..................................................................... .......................................... - 3 - 一、设计目 的 ..................................................................... ............................ - 4 - 二、设计内容和要 求 ..................................................................... .................. - 4 - 1、用户开 锁 ..................................................................... ......................... - 5 -

2、管理员解除警 报 ..................................................................... .............. - 5 - 3、管理员修改密 码 ..................................................................... .............. - 5 - 4、定时返 回 ..................................................................... ......................... - 6 - 三、设计思路和系统结构...................................................................... ............ - 6 - 1、设计模 块 ..................................................................... ......................... - 6 - 2、系统结构和数字密码锁原理 图 .............................................................. - 7 - 3、设计思 路 ..................................................................... ......................... - 8 - 四、实验设计程序 如 ..................................................................... ................... - 9 - 五、创建测试平台仿真结 果 ..................................................................... ....... - 21 - 参考文

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

EDA技术与VHDL语言设计

《EDA技术与VHDL语言设计》 课程设计 题目:交通灯控制器 姓名: ***** 院系:电子信息工程系 专业:电子信息工程 班级:电信112班 学号: ****** 指导教师: ****** 2013年6 月

交通灯控制器 *** (电子信息工程学系指导教师:**) 摘要:传统的交通灯控制器多数由单片机实现,本文介绍基于EDA技术设计交通灯控制器的 一种方案。EDA技术的一个重要特征是使用硬件描述语言来完成系统的设计文件,这在电子 设计领域已得到设计者的广泛采用。给出了交通灯控制器的源程序和仿真结果,仿真结果表明 该设计方案可行。 关键词:交通灯控制器;仿真;设计 1.设计原理 1.1设计要求 设计一个十字路口交通控制器,器示意图如图1.1所示,A方向和B方向歌设红(R)、黄(Y)、 绿(G)、和左拐(L)四盏灯,四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。A方向红、绿、黄、左拐灯亮的时间分别为65s、40s、5s、和15s,B方向红、绿、黄、左拐灯亮的时 间分别为55s、30s、5s、和15s。 1.2功能要求 两个方向各种灯亮的时间能够进行设置和修改,此外假设A方向是主干路,车流大,因此在 表1.2 交通灯控制器的状态 1.3设计思路和原理 根据交通灯控制器要求实现的功能,考虑用两个并行执行的always模块来分别控制A和B两个方向的四盏灯,这两个always模块使用同一个时钟信号,以进行同步。也就是说,两个always模块的敏感信号是同一个,每个模块控制一个方向的四种灯按如下顺序点亮,并往复循环:绿灯→黄灯→左拐灯→黄灯→红灯。 每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变计数器的

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

EDA技术与VHDL基础课后复习题答案

《EDA技术与VHDL基础》 课后习题答案 第一章 EDA技术概述 一、填空题 1、电子设计自动化 2、非常高速集成芯片硬件描述语言 3、CAD、CAE、EDA 4、原理图输入、状态图输入、文本输入 5、VHDL、Verilog HDL 6、硬件特性 二、选择题 1、A 2、C 3、A 4、D 5、C 6、D 7、A 第二章可编程逻辑器件基础 一、填空题 1、PLD 2、Altera公司、Xilinx公司、Lattice公司 3、基于反熔丝编程的 FPGA 4、配置芯片 二、选择题 1、D 2、C 3、C 4、D 第三章 VHDL程序初步——程序结构 一、填空题 1、结构、行为、功能、接口 2、库和程序包、实体、结构体、配置 3、实体名、类型表、端口表、实体说明部分

4、结构体说明语句、功能语句 5、端口的大小、实体中子元件的数目、实体的定时特性 6、设计库 7、元件、函数 8、进程PROCESS、过程PROCEDURE 9、顺序语句、并行语句 二、选择题 1、D 2、C 3、C 4、B 5、D 6、B 7、A 8、C 三、简答题 2、 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand_3in IS PORT(a,b,c:IN STD_LOGIC; y:OUT STD_LOGIC); END; ARCHITECTURE bhv OF nand_3in IS BEGIN y<=NOT(a AND b AND c); END bhv; 5、0000 6、11110111(247) 第四章 VHDL基础 一、填空题 1、顺序语句、并行语句 2、跳出本次循环 3、等待、信号发生变化时 4、函数、过程 5、值类属性、函数类属性、信号类属性、数据类型类属性、数据范围类属性 6、程序调试、时序仿真 7、子程序、子程序 二、选择题

vhdl实验报告

福建农林大学计算机与信息学院 信息工程类 实验报告 2013年11 月13 日

实验项目列表

福建农林大学计算机与信息学院信息工程类实验报告 系:电子信息工程系专业:电子信息工程年级: 2010级 姓名:学号:实验课程: VHDL数字系统设计 实验室号:__ 田C407 实验设备号: 07 实验时间: 11.12 指导教师签字:成绩: 实验一数控分频器的设计 1.实验目的和要求 学习数控分频器的设计、分析和测试方法。 2.实验原理 信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。 数控分频器的仿真波形如图1所示:输入不同的CLK频率和预置值D,给出如图1的时序波形。 100.0μs200.0μs300.0μs400.0μs 图1 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns) 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机一台 GW48 EDA实验开发系统一套 电源线一根 十芯JTAG口线一根 USB下载线一根 USB下载器一个 示波器 实验的软件环境是: Quartus II 9.0软件

4.操作方法与实验步骤 (1)创建工程,并命名位test。 (2)打开QuartusII,建立VHDL文件,并输入设计程序。保存为DVF. (3)选择目标器件。Acex1k—EP1K100QC208-3。 (4)启动编译。 (5)建立仿真波形图。 (6)仿真测试和波形分析。 (7)引脚锁定编译。 (8)编程下载。 (9)硬件测试 5.实验内容及实验数据记录 在实验系统上硬件验证例5-20的功能。可选实验电路模式1(第一章图4);键2/键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。 6.实验数据处理与分析 1)实验代码 【例1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF DVF IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = "11111111" THEN CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; --否则继续作加1计数 FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2; --如果溢出标志信号FULL为高电平,D触发器输出取反

完整word版,EDA技术与VHDL(A卷答案)

4.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是C。 A. FPGA是基于乘积项结构的可编程逻辑器件; B. FPGA是全称为复杂可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX3000系列属FPGA结构。 5.以下对于进程PROCESS的说法,正确的是: A A. 进程语句本身是并行语句 B. 进程内部由一组并行语句来描述进程功能 C. 进程之间可以通过变量进行通信 D. 一个进程可以同时描述多个时钟信号的同步时序逻辑 6.在VHDL语言中,下列对时钟上升沿检测描述中,错误的是C。 A. if clk’event and clk = ‘1’ then B. if rising_edge(clk) then C. if clk’event and clk = ‘0’ then D. if not clk’stable and clk = ‘1’ then 7.关于VHDL中的数字,请找出以下数字中数值最大的一个:B A. 2#1111_1110# B. 8#366# C. 10#169# D. 16#F#E1 8.下列标识符中,B是不合法的标识符。 A. State0 B. 9moon C. Not_Ack_0 D. signall 9.下列语句中,不属于并行语句的是:D A.进程语句 B.条件信号赋值语句 C.元件例化语句 D.IF语句 10. 状态机编码方式中,其中 C 占用触发器较多,但其实现比较适合FPGA的应用 A. 状态位直接输出型编码 B. 顺序编码 C. 一位热码编码 D. 以上都不是

VHDL实验报告一2选1多路选择器

实验一 实验目的: 熟悉quartus的vhdl文本设计流程全过程,学习简单的组合电路的设计,多层次的电路设计,仿真和硬件测试 二、实验内容 内容(一)用vhdl语言设计2选1多路选择器 参考例3-1程序设计如下: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one 全程编译后软件提示0错误,3警告,可以继续下面仿真操作。 程序分析: 这是一个2选1多路选择器,a和b分别为两个数字输入端的端口名,s为通道选择控制信号输入端的端口名,y为输出端的端口名。 时序仿真及分析: 时序仿真输入图: 时序仿真输出图: 时序分析: 由上面两图可以得知:当s=0时,y口输出a,当s=1时,y口输出b 下载和硬件测试: 引脚锁定图: 程序下载完成后,选择实验电路模式5,通过短路帽选择clock0接256Hz 信号,clock2接8Hz信号。通过键一控制s,当键一进行切换时,明显能听到扬声器发出两种不同音调的声音。 实验内容(二)双二选一多路选择器设计

程序设计: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one; entity muxk is port (a1,a2,a3,s0,s1:in bit; outy:out bit); end entity muxk; architecture bhv of muxk is component mux21a port (a,b,s:in bit; y:out bit); end component; signal tmp: bit; begin u1:mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp); u2:mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy); end architecture bhv; 全程编译后软件提示0错误,2警告 程序分析: 这是一个双2选1多路选择器,a1、a2和a3分别为两个数字输入端的端口名,s0、s1为通道选择控制信号输入端的端口名,outy为输出端的端口名。实体mux21a是一个2选一选通电路,实体muxk是元件的例化,其作用是将两个mux21a组合成一个3选1多路选择器。 时序仿真及分析: 时序仿真输入图 时序仿真输出图 时序分析: 从仿真出来的结果,我们不难发现,s0和s1做为a1、a2、a3的选通控制信号。当s0=0.、s1=0时,outy输出a1;当s0=0.、s1=1时,outy输出a2;当s0=1.、s1=0时,outy输出a1;当s1=1.、s2=1时,outy输出a3; 下载和硬件测试: 引脚锁定图

VHDL实验报告

VHDL实验报告 5080309563 李斌 实验三.4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 [设计思路及步骤]: 一.需求: 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高位,LEDR0为低位。 二.变量解释: 4位可逆计数器: 1.clk为时钟输入,clkout为分频后的时钟,cnt为分频计数,ctr为SW17模式 控制,rst为KEY3异步复位开关,tem为输出结果的中间变量; 2.本实验的时钟输入为50MHz,定义为clk,为此设计时需要将其分频为50Hz, 需225分频,因此,代码中,需要有一个cnt作为一个225计数器,同时,定义 分频后的时钟为clkout; 3.建立process,检测key是否为0,为0则复位。否则,检测clkout,触发上升 沿则检测模式控制,对tem加1或减1,同时应检测是否达到最大或最小值, 达到最值则直接返回到最初值,否则继续操作; 4.最后,转换tem的值为相应的4位二进制数,并于LED上反映出来。 四位可逆二进制代码-格雷码转换器: 1.检测模式,进行相应的操作; 2.ctr为0则格雷码转换成二进制码;ctr为1则为二进制码转换为格雷码 [源代码]: 1)4位可逆计数器: library ieee; use ieee.std_logic_1164.all; entity cnt is

《VHDL语言与EDA技术》课程试卷答案

《VHDL语言与EDA技术》课程试卷(1)答案 一、分析下列代码。 1、试分析,该代码描述的是什么功能电路? 答:模8计数器 2、 试分析,该代码描述的是什么功能电路? 答:四位二进制码输入,LED七段码显示电路 若不写第24行代码,是否可以?说明理由。 答:不可以,否则输入0000-1001以外的数据时就无法继续执行代码。 3、试分析,在该代码中,第8行“f<=temp1 XOR temp2;”写在第九行“temp1<=a AND b; ”和第十行“temp2<=c OR d;”前面,这种书写顺序对功能的实现有没有影响? 答:没有 该代码中有一个错误,在第4行,此行语句应改为END exam; 4、 试分析,该代码描述的是什么功能电路? 答:通用译码器 第4句中的端口ena 是使能信号输入端,在此代码描述的电路中,ena为0还是为1时电路能有效完成期望功能? 答:1 此代码描述中,第11句和第12句中,x'high 代表的值是多少? 答:7 二、填空,补全下列代码。 1、output: OUT std_logic_vector( 7 downto 0) ); (OTHERS=>' Z'); 2、 q:OUT STD_LOGIC_VECTOR (1 DOWNTO 0)); SIGNAL q_tmp: STD_LOGIC_VECTOR(1 DOWNTO 0); process( clk) IF(clk'event and clk=' 1 ')then q_tmp <= ( others =>'0'); end if; end process ;

end rtl; 三、设计程序,完成下列功能 1、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY fulladder IS PORT (a, b, cin: IN BIT; s, cout: OUT BIT); END fulladder; ARCHITECTURE rtl OF fulladder IS BEGIN s<=a XOR b XOR cin; cout<=(a AND B) OR (a AND cin) OR (b AND cin); END rtl; 2、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff1 IS PORT(d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC); END dff1; ARCHITECTURE behavior OF dff1 IS BEGIN PROCESS (rst, clk) BEGIN IF (rst='1') THEN q<='0'; ELSIF ( clk'EVENT AND clk='1' ) THEN q<=d; END IF; END PROCESS; END behavior; 四、简答题 1、 进程(process)内部的语句是一种顺序描述语句,其内部经常包括if,wait,case或loop语句。 特点: 1、进程与进程,或其它并发语句之间的并发性; 2、进程内部的顺序性; 3、要么使用敏感信号列表(sensitivity list),要么使用wait语句,二者不可同时使用。 4、进程必须包含在主代码段中,当敏感信号列表中的某个信号发生变化,或者wait语句的条件满足时,process内部的代码就顺序执行一次;

VHDL实验报告汇总

实验一4选一多路选择器 一:实验目的及实验环境 目的 1、熟悉ModelSim SE 6.5c的verilog 的文本设计流程,组合电路的设计、仿真和测试。 2、用verilog语言完成设计4选一多路选择器。 3、熟悉文本输入及仿真步骤。 4、初步了解可编程器件设计的全过程。 环境 1、P C 机一台 2、M odelSim SE 6.5c 二. 实验内容 1、用verilog语言完成设计4选一多路选择器, 2、用结构建模及数据流建模两种方法实现。 3、对于所设计的程序进行编译,检查纠错。 4、程序完善之后进行程序的仿真并进行波形的记录与分析 三.实验步骤 1、建立工程 2、添加文件到工程 3、编译文件 4、查看编译后的设计单元 5、将信号加入波形窗口 6、运行仿真 四.运行结果

五.总结 本次实验让我更加的熟悉modelsim使用方法,以及使用时应该注意的问题。在试验中也学习到了Verilog语法。在实验中我们应该注意verilog的格式要求,在用编程语言编程的时候,要自习留意语法标准,整理好逻辑思维的同时保证格式的正确。否则就会浪费大量的时间来完成实验。试验开始到结束这一过程中,我遇到了很多困难,后来都在同学的提醒和帮助下克服了。相信有了这次对这个语言和这个软件的接触,我们都有了更加深入的理解。 六.源代码 module mux41(a,b,c,d,s1,s0,out); input[1:0] a,b,c,d; input s1,s0; output[1:0] out; reg[1:0] out; always @(a or b or c or d or s 1 or s0) begin :mux41 case({s1,s0}) 2'b00: out<=a; 2'b01: out<=b; 2'b10: out<=c; 2'b11: out<=d; default: out=a; endcase end endmodule module sti; reg[1:0] a,b,c,d; reg s0,s1; wire[1:0] out; mux41 dtg(a,b,c,d,s0,s1,out); initial begin a=3'd0;b=3'd1;c=3'd2;d=3'd3; s0=0;s1=0; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=0;s1=1; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=1;s1=0; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=1;s1=1; end endmodule

相关文档