EDA实验三

合集下载

EDA实验三-七段译码显示

EDA实验三-七段译码显示

河北科技大学实验报告2013级电信专业132 班学号130701213 2016年6月7日姓名田继辉同组人指导教师于国庆实验名称实验三七段译码显示成绩实验类型设计型批阅教师一、实验目的(1)掌握VHDL语言的行为描述设计时序电路。

(2)掌握FPGA动态扫描显示电路设计方法。

(3)熟悉进程(process)和顺序语句的应用。

二、实验原理:用4个开关作为加法器的一组输入变量,共4组输入变量;对每组变量进行译码,变换成0~F标准段码,段码中“1”表示段亮,“0”表示段灭。

一位时钟输入作为扫描显示位扫时钟,四位位扫输出,依次输出高电平。

8位段码输出,根据位选状态选择输出四组输入变量的相应译码结果。

四组输入采用试验箱K1~K16,时钟输入选择试验箱CP1或CP2;试验箱LED显示选择动态显示方式(CZ1开关ST选择OFF),段码、位码分别扫描输出,某个管的位码有效期间,将其对应的段码输出,各位码依次有效,实现循环扫描显示,将输入的16位二进制数,每4位一组,分别显示到4个数码管上(0~F)。

三、实验内容及步骤1.打开MUXPLUS II VHDL编辑器,完成七段译码显示的设计。

包括VHDL程序输入、编译、综合。

实验程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY alpher ISPORT(1 / 6clk : IN STD_LOGIC;choice : OUT STD_LOGIC_VECTOR(7 downto 0);data : OUT STD_LOGIC_VECTOR(7 downto 0)); END alpher;ARCHITECTURE a OF alpher ISSIGNAL count : STD_LOGIC_VECTOR(3 downto 0); SIGNAL temp : STD_LOGIC_VECTOR(3 downto 0);BEGINchoice<="10000000";clk1_label:PROCESS (clk)BEGINIF clk'event and clk='1' THENcount<=count+1;END IF;END PROCESS clk1_label;WITH count selectdata <= "11111100" WHEN "0000","01100000" WHEN "0001","11011010" WHEN "0010","11110010" WHEN "0011","01100110" WHEN "0100","10110110" WHEN "0101","10111110" WHEN "0110","11100000" WHEN "0111","11111110" WHEN "1000","11110110" WHEN "1001","11101110" WHEN "1010","00111110" WHEN "1011","10011100" WHEN "1100","01111010" WHEN "1101","10011110" WHEN "1110","10001110" WHEN OTHERS;END a;2、建立仿真波形文件,使用MAXPLUS II Simulator功能进行功能仿真。

《EDA技术》实验报告

《EDA技术》实验报告

《EDA技术》课程实验报告姓名:学号:班级:同组者:指导教师:信息科学与工程学院2013-2014学年第二学期《EDA技术》课程实验报告学生姓名:所在班级:电信1101班指导教师:老师记分及评价:一、实验名称实验1-3:简单数字电子钟的设计(原理图输入设计方法)二、任务及要求【基本部分】1、在QuartusII平台上,采用原理图输入设计方法,调用两片74160十进制计数器,采用反馈置数法,完成一个24进制同步计数器的设计,并进行时序仿真。

要求具备使能功能和异步清零功能,设计完成后封装成一个元件。

2、同1,采用原理图输入设计方法,调用两片74160十进制计数器,采用反馈置数法,完成一个60进制同步计数器的设计,并进行时序仿真。

要求具备使能功能和异步清零功能,设计完成后封装成一个元件。

3、利用1和2所设计的60进制计数器和24进制计数器元件,采用同步的方式设计一个简单的数字电子钟并进行时序仿真,要求具有时分秒功能显示功能、使能功能和异步清零功能。

【发挥部分】1、思考:采用反馈清零法设计的计数器与反馈置数法有何不同?请用实例进行仿真。

2、如何实现电子钟时分秒连续可调的功能?三、原理图1、如图3.1为24进制计数器原理图,2、如图3.2为60进制计数器的原理图,该图在24进制的基础上进行改进3、如图3.3为电子时钟原理图,4、图3.4a、3.4b分别为24、60进制原理图的封装元件1、g[3..0]OUTPUT s[3..0]OUTPUT图3.1 24进制计数器原理图2、g[3..0]OUTPUT s[3..0]OUTPUT图3.2 60进制原理图3、图3.3 数字电子时钟4、24jinzhi insten clr clk 24co co g[3..0]s[3..0]24jinzhi2insten clr clk 60co co g[3..0]s[3..0]3.4a 24进制原理图封装图 3.4b 60进制原理图封装四、仿真及结果分析1、图4.1 24进制时序仿真图2、图4.2 60进制时序仿真图3、图4.3 电子时钟时序仿真图五、小结在实验中需要注意的是创建的文件名需要和工程名字保持一致,若不一致,在进行功能仿真和时序仿真时会出现错误。

EDA实验报告三(3-8译码器的设计)

EDA实验报告三(3-8译码器的设计)

EDA实验报告三(3-8译码器的设计)实验三:3-8译码器的设计⼀、实验⽬的1、学习Quartus II 7.2软件设计平台。

2、了解EDA的设计过程。

3、通过实例,学习和掌握Quartus II 7.2平台下的⽂本输⼊法。

4、学习和掌握3-8译码器的⼯作和设计原理。

5、初步掌握该实验的软件仿真过程。

⼆、实验仪器PC机,操作系统为Windows7/XP,本课程所⽤系统均为WindowsXP(下同),Quartus II 7.2设计平台。

三、实验步骤1、创建⼯程,在File菜单中选择New Project Wizard,弹出对话框如下图所⽰在这个窗⼝中第⼀⾏为⼯程保存路径,第⼆⾏为⼯程名,第三⾏为顶层⽂件实体名,和⼯程名⼀样。

2、新建设计⽂本⽂件,在file中选择new,出现如下对话框:选择VHDL File 点击OK。

3、⽂本输⼊,在⽂本中输⼊如下程序代码:library ieee;use ieee.std_logic_1164.all;entity variable_decoder isport(A:in STD_LOGIC;B:in STD_LOGIC;C:in STD_LOGIC;Y:out STD_LOGIC_VECTOR(7 downto 0));end variable_decoder;architecture rtl of variable_decoder isbeginprocess(A,B,C)variable COMB:std_logic_vector(2 downto 0);beginCOMB:=C&B&Acase COMB iswhen "000"=>Y<="11111110";when "001"=>Y<="11111101";when "010"=>Y<="11111011";when "011"=>Y<="11110111";when "100"=>Y<="11101111";when "101"=>Y<="11011111";when "110"=>Y<="10111111";when "111"=>Y<="01111111";when others=>Y<="XXXXXXXX";end case;end process;end rtl;然后保存到⼯程中,结果如下图所⽰:4、编译,如果有多个⽂件要把这个⽂件设为当前顶层实体,这样软件编译时就只编译这个⽂件。

EDA技术实验1-3

EDA技术实验1-3

《EDA技术》实验一——熟悉Maxplus开发工具的设计流程一、实验目的1、掌握Maxplus开发工具的原理图输入的设计步骤及方法;2、初步学会用现成的中规模集成器件:数据选择器74151、译码器74138、计数器74160/74161等设计相关的组合逻辑及时序逻辑电路。

二、实验内容及要求1、数据选择器74151的应用(必做,具体要求见后);2、译码器74138的应用(必做,具体要求见后);3、计数器74160/74161的应用(至少必做其中一题,具体要求见后);4、补充设计应用(选做,具体要求见后)。

三、设计提示(课堂讲解)1、讲解采用现成的中规模集成电路设计组合逻辑电路及时序逻辑电路的一般步骤和技巧;2、讲解数据选择器74151、译码器74138的引脚功能及使用技巧;3、讲解十进制计数器74160、十六进制计数器74161的引脚功能,并对复位法和置位法的使用方法加以描述;2.2.1 数据选择器74151的应用1、设计要求:用八选一数据选择器74151实现一个四位二进制数输入中含偶数个‘0’的判断电路,可附加必要的外围电路。

2、输入/输出信号情况:四位二进制数信号输入X[3..0],判别信号输出F;3、设计文件命名为lianxi221.gdf。

4、对设计文件进行语法检查、项目编译,无误后加以仿真验证设计是否正确。

5、参考设计电路(略)2.2.2 译码器74138的应用1、设计要求:试用中规模的集成器件74138(3-8译码器),实现逻辑函数表达式,可以附加必要的门电路。

2、输入/输出信号情况:A、B、C为三个输入信号,输出信号为F;3、设计文件命名为lianxi222.gdf。

4、对设计文件进行语法检查、项目编译,无误后加以仿真验证设计是否正确。

5、参考设计电路(略)1.安装Maxplus工具软件,练习原理图输入设计及仿真方法(见下页图),可对照本次课程讲述内容进行;2.设计一个三输入的奇数检测电路,作出其原理图并建立仿真加以验证。

数码管动态显示EDA实验三

数码管动态显示EDA实验三

实验三数码管动态显示姓名:赵佳伟学号:1002100449一、实验目的l、实现实现0~9十个数的动态显示。

2、掌握数码管的工作状态。

二、实验的硬件要求1、输入:CLK时钟信号2、输出:LED灯3、主芯片:ALTERA下载板三、实验内容用VHDL语言输入法设计一个数码管动态显示电路,要求能够使之在0~9循环显示。

四、实验步骤(1)进入windows操作系统,打开MAX+PLUSⅡ10.0。

1、启动File/Project Name菜单,输入设计项目的名字。

点Assign/Device菜单,选择器件(本设计全选用EPM7128) 。

见图2.2.1。

2、启动菜单File/New,选择Text Editor file,打开编程编辑器,进行原理图设计输入。

图2.2.1(2)输入代码(下图2.2.2)3、保存单击保存按钮,扩展名为.vhd,本实验中取名为:p4_5.vhd。

(3)编译启动MAX+PLUS II\COMPILER菜单,按START开始编译,生成.SOF和.POF等文件,以便硬件下载和编程时调用,同时生成.RPT文件,如图2.2.3。

图2.2.3(4)仿真1、创建波形文件:①首先,将设计指定为当前项目。

②创建一个波形文件。

选择菜单MAX+PLUSⅡ\Waveform Editor,打开仿真工具Waveform Editor,或选择新建一个Waveform Editor文件,将创建一个新的无标题波形文件,如图2.2.4所示:③储存波形文件。

选择File\Save As,在File Name框中,输入相应文件名,单击OK 按钮存盘。

④设定时间轴网格大小。

选择菜单Option\Grid Size,输入时间间隔(20ns),单击OK 按钮。

⑤设定时间轴长度。

选择菜单File\End Time并输入文件的结束时间(1s )。

图2.2.42、选择欲仿真的引线端子:①选择菜单Node\Enter Nodes Nodes from SNF出现如图2.2.5所示对话框。

EDA实验报告

EDA实验报告

EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。

将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。

整个设计过程完整的学习了QuartusII的整个设计流程。

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

本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。

例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。

接有高电平段发亮,于是数码管显示“5”。

实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。

运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。

新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。

EDA-实验报告

EDA-实验报告

实验一五人表决器设计一、实验目的1 加深对电路理论概念的理解3 加深计算机辅助分析及设计的概念4 了解及初步掌握对电路进行计算机辅助分析的过程二、实验要求制作一个五人表决器,共五个输入信号,一个输出信号。

若输入信号高电平数目多于低电平数目,则输出为高,否则为低。

三、实验原理根据设计要求可知,输入信号共有2^5=32种可能,然而输出为高则有15种可能。

对于本设计,只需一个模块就能完成任务,并采用列写真值表是最简单易懂的方法。

四、计算机辅助设计设A,B,C,D,E引脚为输入引脚,F为输出引脚。

则原理图如1所示图1.1 五人表决器原理图实验程序清单如下:MODULE VOTEA,B,C,D,E PIN;F PIN ISTYPE 'COM';TRUTH_TABLE([A,B,C,D,E]->[F])[0,0,1,1,1]->[1];[0,1,1,1,0]->[1];[0,1,0,1,1]->[1];[0,1,1,0,1]->[1];[1,0,1,1,1]->[1];[1,1,0,1,1]->[1];[1,1,1,0,1]->[1];[1,1,1,1,0]->[1];[1,1,1,0,0]->[1];[1,1,0,1,0]->[1];[1,1,1,1,1]->[1];[1,1,0,0,1]->[1];[1,0,0,1,1]->[1];[1,0,1,0,1]->[1];[1,0,1,1,0]->[1];END五、实验测试与仿真根据题目要求,可设输入分别为:0,0,0,0,0;1,1,1,1,1;1,0,1,0,0;0,1,0,1,1。

其测试程序如下所示:MODULE fivevoteA,B,C,D,E,F PIN;X=.X.;TEST_VECTORS([A,B,C,D,E]->[F])[0,0,0,0,0]->[X];[1,1,1,1,1]->[X];[1,0,1,0,0]->[X];[0,1,0,1,1]->[X];END测试仿真结果如图1.2所示:图1.2 五人表决器设计仿真图可知,设计基本符合题目要求。

EDA实验三七段数码管显示译码

EDA实验三七段数码管显示译码

实验三:七段数码管显示译码一、实验目的:1 设计并实现一个7段数码管控制接口,要求:在输入四位数据为0~15时,数码管显示0~F;2设计并实现一个两位7段数码管控制接口,实现输入八位二进制,结果由两位7段数码管显示功能。

3 熟悉ISE9.1软件中电路的设计仿真及综合实现方法;4 熟悉下载方法及实验系统调试方法。

二、实验原理七段数码管显示译码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hex2led ISPORT(hex : IN STD_LOGIC_VECTOR(3 downto 0);ledout : OUT STD_LOGIC_VECTOR(6 downto 0));END hex2led;ARCHITECTURE rtl OF hex2led ISSIGNAL led :STD_LOGIC_VECTOR(6 downto 0);BEGINledout<= NOT led;WITH hex SELECTled<="1111001" when "0001","0100100" when "0010","0110000" when "0011","0011001" when "0100","0010010" when "0101","0000010" when "0110","1111000" when "0111","0000000" when "1000","0010000" when "1001","0001000" when "1010","0000011" when "1011","1000110" when "1100","0100001" when "1101","0000110" when "1110","0001110" when "1111","1000000" when others;END rtl;三、实验处理激励代码:tb : PROCESSBEGINhex<="0000";wait for 50 ns;for i in 0 to 15 loophex<=hex+1;wait for 50 ns;end loop;功能仿真图时序仿真图(图中黄线可以看出延时)延时报告:Data Sheet report:All values displayed in nanoseconds (ns) Pad to PadSource Pad |Destination Pad| Delay | hex<0> |ledout<0> | 5.963| hex<0> |ledout<1> | 5.963| hex<0> |ledout<2> | 5.963| hex<0> |ledout<3> | 5.958| hex<0> |ledout<4> | 5.963| hex<0> |ledout<5> | 5.958| hex<0> |ledout<6> | 5.958| hex<1> |ledout<0> | 5.963| hex<1> |ledout<1> | 5.963| hex<1> |ledout<2> | 5.963| hex<1> |ledout<3> | 5.958| hex<1> |ledout<4> | 5.963| hex<1> |ledout<5> | 5.958| hex<1> |ledout<6> | 5.958| hex<2> |ledout<0> | 5.963| hex<2> |ledout<1> | 5.963| hex<2> |ledout<2> | 5.963| hex<2> |ledout<3> | 5.958| hex<2> |ledout<4> | 5.963| hex<2> |ledout<5> | 5.958| hex<2> |ledout<6> | 5.958| hex<3> |ledout<0> | 5.963| hex<3> |ledout<1> | 5.963| hex<3> |ledout<2> | 5.963| hex<3> |ledout<3> | 5.958| hex<3> |ledout<4> | 5.963| hex<3> |ledout<5> | 5.958| hex<3> |ledout<6> | 5.958| ---------------+---------------+---------+可编程器件、拨码开关、与发光二极管关系#PACE: Start of PACE I/O Pin AssignmentsNET "hex<0>" LOC = "N17" ;NET "hex<1>" LOC = "H18" ;NET "hex<2>" LOC = "L14" ;NET "hex<3>" LOC = "L13" ;NET "ledout<0>" LOC = "B4" ;NET "ledout<1>" LOC = "A4" ;NET "ledout<2>" LOC = "D5" ;拨码开关状态数码管显示D1D2D3D4下下下下0下下下上1下下上下2下下上上3下上下下4下上下上5下上上下6下上上上7上下下下8上下下上9上下上下A 上下上上B 上上下下C 上上下上D 上上上下E 上上上上FNET "ledout<3>" LOC = "C5" ;NET "ledout<4>" LOC = "A6" ;NET "ledout<5>" LOC = "B6" ;NET "ledout<6>" LOC = "E7" ;设计表格记录实验结果,并分析其结果的正确性。

EDA实验三组合逻辑电路设计(一)--编译码器设计

EDA实验三组合逻辑电路设计(一)--编译码器设计

西安邮电学院实验中心实验报告院系电子工程学院班级学号姓名成绩教师签字实验日期实验名称组合逻辑电路设计(一)--编译码器设计_______________________________________________________一、实验目的二、实验所用仪表及主要器材三、实验原理简述四、实验测量记录:(如数据、表格、曲线、计算等)五、实验遇到的问题及解决办法:(余留问题,体会等)一、实验目的(1)熟悉组合逻辑电路的VHDL描述方法。

(2)掌握利用CPL器件实现组合逻辑数字电路的方法和过程。

(3)熟练掌握“case”语句与“if…else…”语句的用法。

二、实验所用仪表及主要器材PC,可编程逻辑实验电路板,下载线,USB电源线,双踪示波器,数字万用表,导线若干。

三、实验原理简述应用VHDL设计简单的逻辑电路四、实验内容在MAX+PULSII环境下,用VHDL语言按照输入—>编译—>仿真。

(1)8421BCD码转换为余3码转换表.在MAX+plusII 环境下,用VHDL 语言描述下列逻辑电路,并编译,仿真。

程序仿真结果:(2)设计一个优先编码器。

程序实现如下:仿真结果:五、实验结果见上述内容。

六、实验心得在本次实验中我学会了使用MAX+PLUSII软件的文本编程的方式设计电路。

在本次实验的文本编译环节中出现不少问题:(1)保存时文件名与实体名不一致,导致程序编译结果不正确。

(2)写程序时没有按照语法规则编写,使得文件编译频繁报错,标点的错误也会导致整个程序无法编译。

经过本次实验,加深了我对VHDL的文本编译设计的理解,今后我应该多练习MAX+PLUSII软件以减少错误。

EDA 实验报告

EDA 实验报告

EDA 实验报告系(部、中心)电气信息工程学院姓名王海棠学号 40409125 专业/班级电信09101 成绩教师签名实验一QUARTUSII软件使用一、实验目的1、了解QUARTUSII软件安装与配置的基本方法。

2、熟悉QUARTUSII集成开发环境。

二、实验内容1、安装并配置QUARTUSII。

2、通过创建一个简单的应用工程,初步熟悉QUARTUSII的使用,了解程序开发调试过程。

三、实验设备与仪器1、计算机四、实验步骤一、安装前的准备1.1、Windows XP操作系统(最好不要用Ghost精简版)关掉杀毒软件和防护软件(例如瑞星、360安全卫士),防止安装过程中出现不必要的麻烦。

1.2、QuartusII 7.2安装文件QuartusII和Altera公司配套的IP库。

1.3、QuartusII 7.2破解文件主要有3个文件:license.DAT、Quartus_II_7.2_b151破解器.exe、读我.txt。

二、Tips最好不要把Quartus软件安装到C盘。

三、安装过程3.1、光碟的内容3.2、安装过程选择安装的程序选择了QuartusII和IP库,用户自定义安装(稍后可以选择安装路径)。

EDA 实验报告系(部、中心)电气信息工程学院姓名王海棠学号 40409125 专业/班级电信09101 成绩教师签名实验二LED设计实验一、实验目的通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及Verilog HDL的编程方法。

本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。

二、实验内容在DCPLD-2 型CPLD 实验板上准备了8 个发光二极管L1~L8,其硬件原理图如图1 所示。

在DCPLD-2 型CPLD 实验板中,标号LEDl~LED8 与芯片的30、31、33~37 和39 引脚相连,只要正确分配并锁定引脚后,在相应的引脚上输出低电平“o”,就可实现点亮该发光二极管的功能。

EDA实验报告-实验3计数器电路设计

EDA实验报告-实验3计数器电路设计

暨南大学本科实验报告专用纸课程名称 EDA实验成绩评定实验项目名称计数器电路设计指导教师郭江陵实验项目编号 03 实验项目类型验证实验地点 B305 学院电气信息学院系专业物联网工程组号: A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。

EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为; EDAPRO/240H实验仪主板的VCCIO 跳线器组中“”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为。

请参考前面第二章中关于“电源模块”的说明。

二、实验目的1、了解各种进制计数器设计方法2、了解同步计数器、异步计数器的设计方法3、通过任意编码计数器体会语言编程设计电路的便利三、实验原理时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。

计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。

利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。

输出显示模块用VHDL实现。

四、实验内容1、用74161构成8位二进制同步计数器(程序为T3-1);2、用74390构成8位二——十进制异步计数器(程序为T3-2);3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):0,2,5,3,4,6,1五、实验要求学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。

六、设计框图首先要熟悉传统数字电路中同步、异步计数器的工作与设计。

在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。

EDA实验报告

EDA实验报告

EDA实验报告学院:班级:姓名:学号:实验三译码器、选择器实验实验内容:1:按照教材第5 章内容,编写BCD-七段显示译码器、数据选择器、数据分配器、数字比较器的Verilog HDL 程序,并实现其仿真;(一)BCD-七段显示译码器程序代码如下:modulebcd_decorder(y,a);output[6:0]y;input[3:0]a;reg[6:0]y;always@(a)begincase(a[3:0])4'b0000:y[6:0]=7 'b1111110;4'b0001:y[6:0]=7 'b0110000;4'b0010:y[6:0]=7 'b1101101;4'b0011:y[6:0]=7'b1111001;4'b0100:y[6:0]=7'b0110011;4'b0101:y[6:0]=7'b1011011;4'b0110:y[6:0]=7'b1011111;4'b0111:y[6:0]=7'b1110000;4'b1000:y[6:0]=7'b1111111;4'b1001:y[6:0]=7'b1111011;4'b1010:y[6:0]=7'b1110111;4'b1011:y[6:0]=7'b0011111;4'b1100:y[6:0]=7'b1001110;4'b1101:y[6:0]=7'b0111101;4'b1110:y[6:0]=7'b1001111;4'b1111:y[6:0]=7'b1000111;endcaseendendmodule功能仿真如下:时序仿真如下:包装如下:(二)数据选择器程序代码如下:modulemux4(y,d0,d1,d2,d3,g,a);output y;input d0,d1,d2,d3;input g;input[1:0]a;reg y;always@(d0 or d1or d2 or d3 or g or a)beginif(g==0) y=0;elsecase(a[1:0])2'b00:y=d0;2'b01:y=d1;2'b10:y=d2;2'b11:y=d3;default:y=0;endcaseendendmodule功能仿真如下:时序仿真如下:包装如下:(三)数据分配器程序代码如下:module demux4(y0,y1,y2,y3,din,a);output y0,y1,y2,y3;input din;input[1:0]a; reg y0,y1,y2,y3; always@(din,a) begin y0=0;y1=0;y2=0;y3=0;case(a[1:0])2'b00:y0=din;2'b01:y1=din;2'b10:y2=din;2'b11:y3=din;default:;endcaseendendmodule功能仿真如下:时序仿真如下:包装如下:(四)数字比较器程序代码如下:module comparator_4(y1,y2,y3,a, b);output y1,y2,y3;input[3:0]a,b;reg y1,y2,y3;always@(a,b)begin if(a>b)beginy1=1;y2=0;y3=0;endelse if(a==b)beginy1=0;y2=1;y3=0;endelse if(a<b)beginy1=0;y2=0;y3=1;endendendmodule功能仿真如下:时序仿真如下:包装如下:2:按照教材第6 章内容,编写RS 触发器、JK 触发器Verilog HDL 程序,并实现其仿真;(五)RS 触发器程序代码如下:moduleRS(q,qn,s,r);output q,qn;input s,r;reg q,qn; reg q1,qn1;always@(*)beginq1=~(s&qn1);qn1=~(r&q1);q=q1;qn=qn1;endendmodule功能仿真如下:时序仿真如下:包装如下:(六)JK 触发器程序代码如下:moduleJK(q,qn,j,k,r,s,cp);output q,qn;input j,k,r,s,cp;reg q,qn;always@(posedge cp)beginif({r,s}==2'b01)beginq<=0;qn<=1;endelse if({r,s}==2'b10)beginq<=q;qn<=qn;endelse if({r,s}==2'b11)beginif ({j,k}=='b00)beginq<=q;qn<=qn;endelse if ({j,k}=='b01)beginq<=0;qn<=1;endelse if ({j,k}=='b10)beginq<=1;qn<=0;endelse if ({j,k}=='b11)beginq<=~q;qn<=~qn;endendendendmodule功能仿真如下:时序仿真如下:包装如下:实验四时序逻辑电路实验实验内容:1:按照教材第7 章内容,编写同步4 位二进制计数器、异步计数器、减法计数器、寄存器的Verilog HDL 程序,并实现其仿真(1)同步4 位二进制计数器程序如下:modulecnt16(co,q,clk,r,s,en,d); output[3:0]q;output co;input clk,r,s,en;input[3:0]d;reg[3:0]q;reg co;always@(posedge clk) if(r) begin q=0;endelsebeginif(s)begin q=d;endelseif(en)beginq=q+1;if(q==4'b1111)begin co=1;endelsebegin co=0;endendelsebegin q=q;endendendmodule功能仿真如下:时序仿真如下:包装如下:(2)异步计数器程序如下:moduleyb_cnt16(q,clk,rst); output[3:0]q;input clk,rst;reg[3:0]q;reg[3:0]qn;always@(posedge clk) beginif(!rst)beginq[0]=0;qn[0]=1;end elsebeginq[0]=~q[0];qn[0]=~q[0]; endendalways@(posedge qn[0])beginif(!rst)beginq[1]=0;qn[1]=1;endelsebeginq[1]=~q[1];qn[1]=~q[1];endendalways@(posedgeqn[1])beginif(!rst)beginq[2]=0;qn[2]=1;endelsebeginq[2]=~q[2];qn[2]=~q[2];endendalways@(posedgeqn[2])beginif(!rst)beginq[3]=0;qn[3]=1;endelsebeginq[3]=~q[3];qn[3]=~q[3];endendendmodule功能仿真如下:时序仿真如下:包装如下:(3)减法计数器程序如下:modulejian_cnt10(q,clk,rst); output[3:0]q;input clk,rst;reg[3:0]q;always@(posedge clk) beginif(rst)begin q<=0;endelse if(q==4'b0000)beginq<=4'b1001;endelsebegin q<=q-1;endendendmodule功能仿真如下:时序仿真如下:包装如下:(4)寄存器程序如下:modulereg8_1(q,d,oe,clk); output[7:0]q; input[7:0]d;input oe,clk; reg[7:0]q;always @(posedge clk)beginif(oe)begin q<=8'bz;endelsebegin q<=d;endendendmodule功能仿真如下:时序仿真如下:包装如下:。

EDA实验指导书

EDA实验指导书

EDA 实验指导书2011年9月30日目录1.实验一LED实验(验证性实验)2.实验二LED点阵实验(综合性实验)3.实验三 LCD显示实验(设计性实验)实验一:LED实验一、实验目的1. 熟悉ISE8.2开发环境,掌握工程的生成方法;2. 熟悉SEED-XDTK_V4实验环境;二、实验内容1. 创建工程;2. 添加HDL资源文件;3. 配置一个应用程序完成设计。

三、实验准备1. 通过USB口下载电缆将计算机的USB口及SEED-FEM025板的J9 连接好;2. 启动计算机,打开SEED-XDTK_V4实验箱电源开关。

观察SEED-FEM025板上的+5V(D11)的电源指示灯是否均亮。

若有不亮的,请断开电源,检查电源。

四、实验步骤1. 创建工程1) 双击桌面Xilinx ISE8.2快捷方式打开ISE工程管理器(Project Navigator);2) 打开Project Navigator后,选择File → New Project,弹出新建工程对话框;3) 在工程路径中单击“…”按钮,将工程指定到如下目录D: \02. V4_lab,单击确定;4) 在工程名称中输入led,点击Next按钮,如图1.1所示;图1.15) 弹出器件特性对话框。

器件族类型(Device Family)选择“Virtex4”,器件型号(Device)选“XC4VSX25 FF668 -10”,综合工具(Synthesis T ool)选“XST(VHDL/Verilog)”,仿真器(Simulator)选“ISE Simulator”,如图1.2;图1.26) 单击Next按钮,弹出创建新资源(Create New Soure)对话框,可以使用这个对话框来创建新的HDL资源文件,或者也可以创建工程后,新建HDL资源文件,如图1.3;图1.37) 单击Next按钮,弹出添加存在资源对话框;可以使用这个对话框来添加已经存在的HDL资源文件,或者也可以创建工程后,添加HDL资源文件;在本实验中我们采用创建工程后,添加HDL资源文件的方式,如图1.4;图1.48) 单击Next按钮,将弹出工程建立完成对话框,单击finish按钮完成工程建立流程;9) 观察工程资源管理窗口,将会看到工程已经建立成功,如图1.5。

EDA实验报告含结果图

EDA实验报告含结果图

EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的1、熟悉Quartus II软件的使用。

2、熟悉EDA-IV实验箱。

3、熟悉EDA开发的基本流程。

二硬件需求1、RC-EDA-IV型实验箱一台;2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、PC机一台。

三实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。

实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。

表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。

四实验内容VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity EXP3 isport(k1,K2,K3,K4 : in std_logic;ledag : out std_logic_vector(3 downto 0);m_Result : out std_logic);end EXP3;--------------------------------------------------------------------architecture behave of EXP3 issignal K_Num : std_logic_vector(2 downto 0); signal K1_Num,K2_Num: std_logic_vector(2 downto 0); signal K3_Num,K4_Num: std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4)beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num;end process;process(K_Num) beginif(K_Num>2) thenm_Result<='1';elsem_Result<='0';end if;end process;end behave;实验电路实验二格雷码转换一实验目的1、了解格雷码变换的原理。

EDA实验报告

EDA实验报告

实验三: 二位比较器的设计与实现一.实验简介:这个实验将指导你通过使用ISE软件进行简单的二位比较器的设计与实现。

二.实验目的:•使用ISE软件设计并仿真。

•学会程序下载。

三.实验原理:1.ISE软件是一个支持数字系统设计的开发2.用ISE软件进行设计开发时基于相应器件型号的。

注意:软件设计时选择的器件型号是与实际下载板上的器件型号相同。

3.图2-1所示为二位比较器的真值表,本实验中用Verilog语句来描述。

b[1] b[0] a[1] d[0]0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1a_eq_b a_gt_b a_lt_b1 0 00 1 00 1 00 1 00 0 11 0 00 1 00 1 00 0 10 0 11 0 00 1 00 0 10 0 10 0 11 0 0四.实验步骤:1.新建工程(1)双击桌面上“”图标,启动ISE软件(也可从开始菜单启动)。

每次打开ISE都会默认恢复到最近使用过的工程界面。

当第一次使用时,由于还没有历史工程记录,所以工程管理区显示空白。

选择File—New Project选项,在弹出的对话框中输入工程名称并指定工程路径。

(2)点击Next按钮进入下一页,选择所使用的芯片及综合、仿真工具。

计算机上安装的所有用于仿真和综合的第三方EDA工具都可以在下拉菜单中找到。

在图中我们选用了Spartan6 XC6SLX16芯片,采用CSG324封装,这是NEXYS3开发板所用的芯片。

另外,我们选择Verilog作为默认的硬件描述语言。

(3)再点击Next按钮进入下一页,这里显示了新建工程的信息,确认无误后,点击Finish 就可以建立一个完整的工程了。

(1)在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,选择Verilog Module输入,并输入Verilog文件名。

EDA实验三报告

EDA实验三报告

山东大学(威海)机电与信息工程学院2011级本科生题目:八位二进制加法器姓名:学号:专业班级《电子设计自动化技术与应用》基础实验报告11 实验要求八位二进制加法器输入两个加数,输出为八进制,两个加数用十六进制在数码管显示,输出的和同样用十六进制在数码管显示,输入输出受锁存器控制,有时钟脉冲时进行加法,还有一个D触发器构成的异步复位键,结果进位用LED灯显示,输出的八位二进制数用LED 灯显示。

22 实验设计1 先写一个半加器程序,然后用两个半加器构成一个全加器。

2 以一位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件。

3 写一个锁存器,和一个D触发器(异步复位)。

4 写一个数码管显示的程序,高八位,低八位分别显示。

5 写总程序,用元件例化语句调用8位并行二进制全加器,锁存器,D触发器(异步复位),和数码管显示程序。

6 锁定引脚。

运行程序。

33 实验结果电路功能描述定义了8位二进制全加器顶层设计元件端口信号,输入端口:AIN1, BIN1,是八个二进制数,数据类型被定义为STD_LOGIC_VECTOR。

CLK1是时序脉冲信号,CIN1是输入的进位,数据类型IN STD_LOGIC;输出端口:SUM为和,数据类型STD_LOGIC_VECTOR(7 DOWNTO 0); COUT为输出的进位。

LED为数码管显示端。

Info: Clock "CLK1" has Internal fmax of 205.0 MHz between source register "LATCH1:U1|BUFFERIN[0]" and destination register "LATCH1:U5|BUFFERIN[6]" (period= 4.878 ns)44 实验总结在这一次实验课中,我觉得自己收获不少。

做实验过程中,我遇到了许多问题,但是通过对课本的理解和在网上资料的查找,以及不懈的努力,锻炼了我动手实验和独立思考的能力。

EDA实验报告

EDA实验报告

EDA实验报告班级:学号:姓名:实验一组合逻辑设计一、实验目的:通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。

二、实验的硬件要求:1、输入:DIP拨码开关3位2、输出:LED灯3、主芯片:EP2C8Q208C8三、实验原理:三八译码器三输入,八输出。

当输入信号按二进制方式的表示为N时,输出端从零标记到八。

因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位有效的情况下,能表示所有的输入组合。

3-8译码器真值表四、实验程序图:建立工程后,新建Block diagram/schematic file程序,在编辑窗口中选择相应原件用鼠标拖入文件中编辑,绘制完成后保存原理图,对程序进行编译,编译无误后,进行管脚配置,下图为程序图。

文本程序:library ieee;use ieee.std_logic_1164.all;entity program1 isport (A,B,C:in std_logic;D0,D1,D2,D3,D4,D5,D6,D7:out std_logic); end entity program1;architecture one of program1 issignal abc :std_logic_vector(2 downto 0); signal D :std_logic_vector(7 downto 0); beginabc <= A&B&C;process(abc)begincase abc iswhen "000"=>D<="10000000";when "100"=>D<="01000000";when "010"=>D<="00100000";when "110"=>D<="00010000";when "001"=>D<="00001000";when "101"=>D<="00000100";when "011"=>D<="00000010";when "111"=>D<="00000001";when others => null;end case;end process;D0<=D(7);D1<=D(6);D2<=D(5);D3<=D(4);D4<=D(3);D5<=D(2);D6<=D(1);D7<=D(0);end architecture one;五、实验仿真结果:仿真波形图如下:进行波形仿真完成后,用拨码开关的低三位代表译码器输入,将之与配置好的管脚相连;用led灯代表译码器的输出,将之与配置好的管脚相连。

eda 实验 3

eda 实验 3

分频器(偶数次分频)一、实验目的1.学习分频器的设计,进一步了解、熟悉和掌握 FPGA开发软件 QuartusII 的使用方法2.学习 Verilog HDL 和 VHDL 的编程方法3.学会使用Vector Wave 功能仿真4.掌握使用多种方法分配管脚二、实验内容编写一个分频器的 Verilog 代码和 VHDL 代码并仿真,编译下载验证。

三、实验原理在数字电路中,时钟信号的分频是很常见的电路。

分频器除了可以对时钟信号频率做除以二的计算外,分频器同时很类似涟波计数器。

涟波计数器是计数器的一种,它属于异步设计。

因为触发器并非皆由同一个时钟信号同步操作,所以它非常节省电路面积。

本实验要设一个带选择的分 SEL[1:0]用于选择是几分频。

分频器设计原理框图如图所示:图1 设计原理框图从原理图中可见,核心板的时钟是50MHz,通过sel[1:0]选择分频数,00:不分频;01:12.5M分频;10:25M 四分频;11:50M 分频。

采用 SW1‐SW2 设置分频值,SW3 复位。

LED1 为时钟的输出,通过调整 SW1、SW2,可以得到不同的闪烁频率。

引脚分配情况表1 引脚分配设计端口芯片引脚开发平台模块设计端口芯片引脚开发平台模块clk PIN_P2 CLK1 rst PIN_W10 SW3sel[1] PIN_Y13 SW2 sel[0] PIN_AA16 SW1clkout PIN_AB20 LED1四、实验步骤1.新建工程,取名为 frediv2.新建 VHDL 设计文件,选择“File|New”,在 New对话框中选择 DeviceDesignFiles 下的 VHDLFile,单击 OK,完成新建设计文件。

3.在新建设计文件中输入 VHDL 程序,源代码如下:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;entity frediv isport( clk :in std_logic;rst :in std_logic;sel :in std_logic_vector(1 downto 0);clkout:out std_logic);end frediv;architecture rt1 of frediv isbeginprocess(rst,clk)variable cn1,cn2,cn3:integer range 0 to 50000000;beginif rst='1'thenclkout<='0';elsif clk'event and clk='1'thenif sel="01"thenif cn1=12499999 thencn1:=0;elsecn1:=cn1+1;if cn1<=6249999 thenclkout<='1';elseclkout<='0';end if;end if;elsif sel="10" thenif cn2=24999999 thencn2:=0;elsecn2:=cn2+1;if cn2<=12499999 thenclkout<='1';elseclkout<='0';end if;end if;elsif sel="11" thenif cn3=49999999 thencn3:=0;elsecn3:=cn3+1;if cn3<=24999999 thenclkout<='1';elseclkout<='0';end if;end if;elseclkout<=clk;end if;end if;end process;end rt1;4.生成“Symbol”文件,新建“Block Diagram/Schematic File”文件,在文件中添加刚2所示刚生成的“Symbol”以及输入输出管脚,最后完整的系统顶层模块图如图图2顶层模块图5.保存文件,使用 qsf或者 tcl 进行管脚分配6.对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。

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

一、实验目的
1.能够了解BCD 七段显示译码器的设计原理。

2.能够用VHDL语言设计一个BCD 七段显示译码器电路。

3.能够自行验证设计电路的正确性。

二、实验设计内容及要求:
1.用vhdl语言设计一个BCD 七段显示译码器,并下载到实验板上。

2.要求输入信号为四位,并按照BCD 码的值进行显示。

三、实验器材:
1.软件:Altera公司的QuartusII软件。

2.芯片:Altera公司的EP2C8T144C8。

3.开发平台:台湾掌宇公司的CIC—310智能型可编程数字开发系统。

四、实验步骤
1.建立名为bcd_decorder的工程文件,并建立VHDL文本编辑文件在编辑环境中编写VHDL程序。

代码如下:
library ieee;
use ieee.std_logic_1164.all;
entity bcd_decoder is
port(i:in std_logic_vector(3 downto 0);
y:out std_logic_vector(7 downto 0));
end;
architecture one of bcd_decoder is
begin
process(i)
begin
case i is
when"0000"=>y<="11111100";
when"0001"=>y<="01100000";
when"0010"=>y<="11011010";
when"0011"=>y<="11110010";
when"0100"=>y<="01100110";
when"0101"=>y<="10110110";
when"0110"=>y<="10111110";
when"0111"=>y<="11100000";
when"1000"=>y<="11111110";
when"1001"=>y<="11110110";
when"1010"=>y<="11101110";
when"1011"=>y<="00111110";
when"1100"=>y<="10011100";
when"1101"=>y<="01111010";
when"1110"=>y<="10011110";
when"1111"=>y<="10001110";
when others=>y<="11111111";
end case;
end process;
end;
2.保存文件,并检查编译。

3.建立波形文件,进行功能仿真后波形如下图所示:图表1
4.测试电路功能,完成下表
5.单击“file”菜单中的“creat/update”选项,选择“creat symbol files for current file”选项后,生成图元文件,方便以后电路编辑使用。

相关文档
最新文档