广工quartus 24进制计数器
- 格式:doc
- 大小:274.74 KB
- 文档页数:4
实验二十进制计数器实验该实验将使用Verilog 硬件描述语言在DE2-70 开发平台上设计一个基本时序逻辑电路——1 位十进制计数器。
通过这个实验,读者可以了解使用Quartus 工具设计硬件的基本流程以及使用Quartus II 内置的工具进行仿真的基本方法和使用SignalTap II 实际观察电路运行输出情况。
SignalTap II 是Quartus 工具的一个组件,是一个片上的逻辑分析仪,可以通过JTAG 电缆将电路运行的实际输出传回Quartus 进行观察,从而省去了外界逻辑分析仪时的很多麻烦。
实验步骤3.1建立工程并完成硬件描述设计1. 打开Quartus II 工作环境,如图3-1 所示。
图3-1 Quartus II工作环境界面2. 点击菜单项File->New Project Wizard 帮助新建工程。
参看图3-2。
图3-2 选择New Project Wizard打开Wizard 之后,界面如图3-3 所示。
点击Next,如图3-3。
第23 页共208 页图3-3 New Project Wizard界面3. 输入工程工作路径、工程文件名以及顶层实体名。
这次实验会帮助读者理解顶层实体名和工程名的关系,记住目前指定的工程名与顶层实体名都是Counter10,输入结束后,如图3-4 所示。
点击Next。
图3-4输入设计工程信息4. 添加设计文件。
界面如图3-5 所示。
如果用户之前已经有设计文件(比如.v 文件)。
第24 页共208 页那么再次添加相应文件,如果没有完成的设计文件,点击Next 之后添加并且编辑设计文件。
图3-5添加设计文件5. 选择设计所用器件。
由于本次实验使用Altera 公司提供的DE2-70 开发板,用户必须选择与DE2-70 开发板相对应的FPGA 器件型号。
在Family 菜单中选择Cyclone II,Package 选FBGA,Pin Count 选896,Speed grade 选6,确认Available devices 中选中EP2C70F896C6,如图3-6。
VERILOG24小时多功能数字钟的设计班级:自动化学生:XXXXX 学号:XXXXXX1 设计目标掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;熟悉一种EDA软件使用与实验系统介绍;掌握Verilog HDL设计方法,设计一个多功能数字钟,满足以下要求:①能显示小时、分钟、秒钟(小时以24进制,时、分用显示器,秒用LED);②能调整小时、分钟的时间;③复位;2 实验装置586计算机,MAX+plusⅡ 10.2软件,专用编程电缆,EDA Pro2K数字实验装置等。
3 设计步骤和要求①在MAX+plusⅡ 10.2软件中,输入设计的原理图,采用Verilog HDL输入方式,采用分层模块的设计方法设计电路②对电路进行仿真分析;③选择器件,分配引脚,重新对设计项目进行编译和逻辑综合;④对EDA Pro2K数字实验装置中的FPGA器件进行在系统编程,并实际测试电路的逻辑功能(用实验板上的译码显示电路显示结果);4 具体步骤4.1 建立 Quartus 工程;1.打开 Quartus II 工作环境2.点击菜单项 File->New Project Wizard 帮助新建工程3.输入工程工作路径、工程文件名以及顶层实体名4.添加设计文件5.选择设计所用器件6.设置EDA工具7.查看新建工程总结在完成新建后,Quartus II 界面中Project Navigator 的Hierarchy 标签栏中会出现用户正在设计的工程名以及所选用的器件型号4.2 使用 Verilog HDL 完成设计输入代码如下:(1)数字钟顶层模块://*****************timeclock top block(top_clock.v)***************module clock_24(CLK,CP,nCR,EN,Adj_Min,Adj_Hour,SEG7_1,SEG7_2,SEG7_3,SEG7_4);input CLK,nCR,EN,Adj_Min,Adj_Hour; //定义输入端口变量output[7:0]SEG7_1,SEG7_2,SEG7_3,SEG7_4;output CP;wire CP;wire[7:0]Hour,Minute,Second; //说明变量的类型supply1 Vdd;wire MinL_EN,MinH_EN,Hour_EN; //定义中间变量freqDiv UO(CLK,CP);counter10 U1(Second[3:0],nCR,EN,CP); //秒计数器个位counter6 U2(Second[7:4],nCR,(Second[3:0]==4'h9),CP); //秒计数器十位assign MinL_EN=Adj_Min?Vdd:(Second==8'h59);assignMinH_EN=(Adj_Min&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8' h59);counter10 U3(Minute[3:0],nCR,MinL_EN,CP); //分计数器个位counter6 U4(Minute[7:4],nCR,MinH_EN,CP); //分计数器十位//产生小时计数器使能信号。
北京科技大学实验报告学院:高等工程师学院专业:自动化(卓越计划)班级:自E181姓名:杨威学号:41818074 实验日期:2020 年5月26日一、实验名称:集成计数器及其应用1、实验内容与要求(1)用74161和必要逻辑门设计一个带进位输出的10进制计数器,采用同步置数方法设计;(2)用两个74161和必要的逻辑门设计一个带进位输出的60进制秒计数器;2、实验相关知识与原理(1)74161是常用的同步集成计数器,4位2进制,同步预置,异步清零。
引脚图功能表其中X。
3、10进制计数器(1)实验设计1)确定输入/输出变量输入变量:时钟信号CLK、复位信号CLRN;输出变量:计数输出QD、QC、QB、QA,进位输出RCO,显示译码输出OA、OB、OC、OD、OE、OF、OG2)计数范围:0000-10013)预置数值:00004)置数控制端LDN:计数到1001时输出低电平5)进位输出RCO:计数到1001时输出高电平画出如下状态转换表:CP QDQCQBQA0 00001 00012 00103 00114 01005 01016 01107 01117 10009 100110 0000(2)原理图截图仿真波形如下功能验证表格CLRN QD QC QB QA RCO0 0 0 0 0 01 0 0 0 1 01 0 0 1 0 01 0 0 1 1 01 0 1 0 0 01 0 1 0 1 01 0 1 1 0 01 0 1 1 1 01 1 0 0 0 01 1 0 0 1 11 0 0 0 0 04、60进制秒计数器(1)实验设计1)确定输入/输出变量输入变量:时钟信号CLK、复位信号CLRN;输出变量:计数十位输出QD2、QC2、QB2、QA2和计数个位输出QD1、QC1、QB1、QA1,进位输出RCO2)计数范围:0000 0000-0101 10013)预置数值:0000 00004)置数控制端LDN1(个位):计数到0101 1001时输出低电平5)清零端CLRN2(十位):计数到0110时输出低电平6)ENT:个位计数到1001时输出高电平7)进位输出RCO:计数到1001时输出高电平画出如下状态转换表CP QD2QC2QB2QA2QD1QC1QB1QA1CPQD2QC2QB2QA2QD1QC1QB1QA1CPQD2QC2QB2QA2QD1QC1QB1QA10 0000 0000 20 0010 0000 40 0100 00001 0000 0001 21 0010 0001 41 0100 00012 0000 0010 22 0010 0010 42 0100 00103 0000 0011 23 0010 0011 43 0100 00114 0000 0100 24 0010 0100 44 0100 01005 0000 0101 25 0010 0101 45 0100 01016 0000 0110 26 0010 0110 46 0100 01107 0000 0111 27 0010 0111 47 0100 01118 0000 1000 28 0010 1000 48 0100 10009 0000 1001 29 0010 1001 49 0100 100110 0001 0000 30 0011 0000 50 0101 000011 0001 0001 31 0011 0001 51 0101 000112 0001 0010 32 0011 0010 52 0101 001013 0001 0011 33 0011 0011 53 0101 001114 0001 0100 34 0011 0100 54 0101 010015 0001 0101 35 0011 0101 55 0101 010116 0001 0110 36 0011 0110 56 0101 011017 0001 0111 37 0011 0111 57 0101 011118 0001 1000 38 0011 1000 58 0101 100019 0001 1001 39 0011 1001 59 0101 100160 0000 0000 (2)设计原理图截图(3)实验仿真仿真波形:仿真结果表:5、实验思考题:(1)总结任意模计数器的设计方法。
目录1.绪论 (1)1.1课题背景 (1)1.2设计目的 (2)1.3设计意义 (2)1.4本课题研究内容 (2)2.研究方案 (2)3.系统硬件设计 (3)3.1 计数器电路 (3)3.1.1 计数部分74LS90: (3)3.1.2 74LS00功能: (5)3.1.3 译码部分74LS48: (6)3.1.4 74Ls48功能表 (7)3.1.5 脉冲555多谐振荡器: (7)3.2 共阴极七段数码管显示器 (8)4.系统仿真与调试 (9)4.1软件平台 (9)4.2系统仿真结果与分析 (9)4.2.1 原理图: (9)4.2.2 预测方案 (10)4.2.3 测试步骤: (10)4.3 分析仿真: (11)5系统硬件焊接与调试 (11)5.1焊接步骤 (12)5.2元件清单 (12)5.3实物图 (12)5.4硬件电路测试 (14)5.5电路板的测试情况、参数分析与实际效果 (15)6.缺点及改进 (15)6.1焊接缺点 (15)6.2 改进 (15)总结 (17)致谢 (18)参考文献 (19)24进制计数器的设计摘要:24进制数字钟是一种用数字电路技术实现时计时的装置,与机械式时钟相比具有更高的准确性和直观性。
此次设计与制作24进制电子数字钟时计数、译码、显示电路需要了解组合逻辑电路和时序逻辑电路;了解集成电路的引脚安排;了解各种时计数、译码芯片的逻辑功能及使用方法;了解数字钟的原理。
本次设计是基于24进制电子数字钟的原理,实现具有24进制清零功能的电子钟,它主要由555多谐振荡器、二-五-十进制加法器74LS90、译码器74LS48、74LS00、共阴极LED数码管等四个模块构成。
各功能模块在EWB软件中先由仿真出,然后将其打包成可调用的元件,再利用原理图输入法将各模块按功能连接起来就得到顶层文件的原理图。
这时,再进行时序仿真、引脚锁定和嵌入逻辑分析仪之后,就编译下载至硬件中,选择正确的模式和各种设置后即可实现这次设计所要求的功能。
用VHDL语言描述一个24进制的计数器电路,1)要求输出计数值用二进制数表示;2)要求输出计数值用8421BCD码表示。
输出计数值用二进制数表示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ersijinzhi ISPORT (CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));END ersijinzhi;ARCHITECTURE ERJINZHI OF ersijinzhi ISBEGINPROCESS(CLK,RST)V ARIABLE CQI:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINIF RST='1' THEN CQI:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF CQI<23 THEN CQI:=CQI+1;ELSE CQI:=(OTHERS=>'0');END IF;END IF;END IF;CQ<=CQI;END PROCESS;END ERJINZHI;输出计数值用8421BCD码表示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY ersijinzhibcd ISPORT(CLK,RST : IN STD_LOGIC;EN : IN STD_LOGIC;LOW : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HIGH : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ersijinzhibcd;ARCHITECTURE rtl of ersijinzhibcd ISSIGNAL LOW_REG : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL HIGH_REG : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CLR : STD_LOGIC:='0';BEGIN--个位计数LOW_PROC:PROCESS(CLK,EN,CLR)BEGINIF RST='1' THEN LOW_REG<=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN = '1' THENIF LOW_REG = 9 OR CLR = '1' THENLOW_REG <=(OTHERS=>'0');ELSE LOW_REG <= LOW_REG + 1;END IF;END IF;END IF;END PROCESS;LOW <= LOW_REG;--十位计数HIGH_PROC:PROCESS(CLK,EN,CLR)BEGINIF RST='1' THEN HIGH_REG<=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN = '1' THENIF CLR = '1' THENHIGH_REG <=(OTHERS=>'0');ELSIF LOW_REG = 9 THENHIGH_REG <= HIGH_REG + 1;END IF;END IF;END IF;END PROCESS;HIGH <= HIGH_REG;CLR <= '1' WHEN LOW_REG = 3 AND HIGH_REG = 2 ELSE '0'; END rtl;。
基于QuartusII的同步计数器设计精心整理精心整理精心整理1.1软件介绍:Quartus II是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其优点是功能强大、界面友好、使用便捷。
它支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II支持Altera的IP内核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加精心整理快了设计速度。
此外,Quartus II通过和DSP Builder工具与Matlab/Simulink的相结合,可以方便的实现各种DSP应用系统;支持Altera的片上可编程系统开发,集系统设计、嵌入式软件开发。
可编程逻辑设计于一体,是一个综合性的开发平台。
Quartus II有严格的设计流程,分为设计输入与约束、分析和综合、布局布线、仿真及编程与配置等。
本次仿真设计所用到的版本为Quartus II 9.0,其用户界面如下图所示:1.2 Verilog HDL语言概述:Verilog HDL即Verilog硬件描述语言,它主要应用于数字电路和系统设计、数字电路和系统仿真等,即利用计算机和相关软件对用Verilog HDL等硬件语言建模的复杂数字逻辑电路设计进行仿真验证,再利用综合软件将设计的数字电路自动综合,以得到符合功能需求并且在相应的硬件电路结构上可以映射实现的数字逻辑网表,然后布局布线,根据网表和选定的实现器件工艺特性自动生成具体电路,同时软件生成选定器件的延时模型,经过仿真验证确定无误后写入器件中,精心整理最终实现电路设计。
Verilog HDL语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。
工业大学《数字电子技术基础》结课报告题目:用2片74LS161实现224进制计数器:王倩倩学号:**********班级:1111201用2片74LS161实现224进制的计数器摘要:74LS161是集成4位二进制计数器,异步置零,同步置数,用两片74LS161最高可以实现256进制计数器,级联方法主要是同步并行和异步串行。
本文介绍用两片74LS161实现224进制计数器,通过清零法和置数法改变其进制。
用Multisim 进行仿真,以波形及灯泡亮灭两种方式,显示计数器的计数过程、过渡状态形成清零或置数信号的过程,用四踪示波器以面板部分重叠显示方法同步显示时钟脉冲信号、清零或置数信号以及状态输出信号,分析了计数至最高位返回0的过渡态。
关键词:74LS161 224进制清零法置数法同步并行异步串行正文:74LS161是集成4位二进制加法计数器,其功能表如表1所示:表1 74LS161功能表74LS161是异步置零、同步置数,利用74LS161的预置数控制LD端或者清零端CR在计数循环过程跳过一些状态,可构成任意进制的计数器。
用两片74LS161级联最高可以构成256进制的计数器,级联方式主要是同步并行和异步串行。
根据两片74LS161芯片的级联方式和控制计数进制的方法的不同,我们可以采取四大类方式,实现用两片74LS161芯片实现224进制的计数器。
下面,我们分别简要介绍这四种方法,并用软件Multisim进行仿真以检验设计的正确性。
一. 同步并行-清零法1.电路设计分析74LS161是四位二进制的加法计数器,要想实现224进制的加法计数器,必须使用两片74LS161芯片,这就这就涉及到级联,我们先用同步并行的方式进行级联。
同步并行,就必须在CP端接同一个脉冲信号,作为高位的芯片通过低位芯片的RCO端进行控制,当低位芯片计数到最高位的时候,RCO由0变为1,低位RCO接高位的两个使能端,这样就能实现低位芯片计数到最大的时候,在高位记一位数。
EDA技术实践课程设计2014年7月25日EDA技术实践课程设计任务书课程EDA技术实践课程设计题目六十进制计数器专业姓名学号主要内容:利用QuartusII设计一个六十进制计数器。
该电路是采用整体置数法接成的六十进制计数器。
首先需要两片74160接成一百进制的计数器,然后将电路的59状态译码产生LD′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)到达时,将0000同时置入两片74160中,从而得到六十进制计数器。
主要要求如下:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。
主要参考资料:[1] 朱正伟.EDA技术及应用[M].第2版.北京:清华大学出版社,2013.[2] 李国洪.EDA技术与实验[M].北京:机械工业出版社,2009.[3] 陈忠平,高金定,高见芳.基于QuartusII的FPGA/CPLD设计与实践[M].北京:电子工业出版社,2010.[4] 杨颂华.数字电子技术基础[M].第2版.西安:西安电子科技大学出版社,2009.[5] 阎石.数字电子技术基础[M].第5版.北京:高等教育出版社,2006.[6] 康华光.电子技术基础:数字部分[M].北京:高等教育出版社,2000.完成期限2014.7.21——2014.7.25指导教师专业负责人2014年7 月18日目录1 设计 (1)2 方案选择与电路原理图的设计 (1)2.1 单元电路一:十进制计数器电路(个位) (2)2.2 单元电路二:十进制计数器(十位) (3)2.3 单元电路三:置数与进位电路 (3)3 元件选取与电路图的绘制 (4)3.1 元件选取 (4)3.2 电路图的绘制 (4)4 编译设计文件 (5)5 仿真设计文件 (6)6 总结 (10)参考文献 (11)1 设计六十进制计数器的功能要求:(1)每隔1个周期脉冲,计数器增1;(2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数;(3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。
use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk40M: in std_logic;clk1hz,clk1000hz: out std_logic);end fenpin;architecture one of fenpin issignal a: integer range 0 to 19999 :=0;signal clk1000,clk1: std_logic;beginprocess(clk40M)beginif rising_edge(clk40M) thenif a=19999 thenclk1000<=not clk1000; a<=0;else a<=a+1;end if ; end if;end process;clk1000hz<=clk1000;process(clk1000)variable a1: integer range 0 to 499 :=0;beginif rising_edge(clk1000) thenif a1=499 then clk1<=not clk1;a1:=0;else a1:=a1+1;end if;end if;end process;clk1hz<=clk1;end one;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport(clk1hz: in std_logic;mg,ms: buffer std_logic_vector(3 downto 0));architecture two of cnt10 issignal jw: std_logic;signal mg1,ms1,mg2,ms2: std_logic_vector(3 downto 0);signal q1,q2,q3,q4,q5,q6: std_logic_vector(3 downto 0):="0000";beginprocess(clk1hz)beginq5<=q3;if q5="0000" then q5<="0001" ;q1<="0000";elsif rising_edge(clk1hz) thenif q1="1001" then jw<='1';q1<="0000";else q1<=q1+1;jw<='0';end if;end if;end process;mg1<=q1;process(jw)beginq6<=q4;if q6="0000" then q6<="0001" ;q2<="0000";elsif rising_edge(jw)then q2<=q2+1;end if;end process;ms1<=q2;process(mg1,ms1)beginmg2<=mg1;ms2<=ms1;if mg2="0100" and ms2="0010" thenmg2<="0000";ms2<="0000";q3<="0000";q4<="0000";elsemg2<=mg1;ms2<=ms1;q3<="0001";q4<="0001";end if;end process;mg<=mg2;ms<=ms2;end two;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decode isport(clk1000hz: in std_logic;mg,ms: in std_logic_vector(3 downto 0);atog: out std_logic_vector(6 downto 0);sel: out std_logic_vector(1 downto 0));end decode;architecture four of decode issignal q: std_logic_vector(0 to 3) ;signal count : integer range 0 to 1:=0;beginprocess(clk1000hz)beginif rising_edge(clk1000hz) thencount<=count+1;end if;end process;process(count,mg,ms)beginif count=0 then q<=mg;sel<="01";elsif count=1 then q<=ms;sel<="10";end if;end process;process(q)begincase q iswhen "0000" => atog<="0111111";when "0001" => atog<="0000110";when "0010" => atog<="1011011";when "0011" => atog<="1001111";when "0100" => atog<="1100110";when "0101" => atog<="1101101";when "0110" => atog<="1111101";when "0111" => atog<="0000111";when "1000" => atog<="1111111";when "1001" => atog<="1101111";when others => atog<=null;end case;end process;end four;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity aa isport(clk40M: in std_logic;atog: out std_logic_vector(6 downto 0);sel: out std_logic_vector(1 downto 0));end aa;architecture one of aa iscomponent fenpin isport(clk40M: in std_logic;clk1000hz,clk1hz: out std_logic);end component;component cnt10 isport(clk1hz: in std_logic;mg,ms: out std_logic_vector(3 downto 0));end component;component decode isport(clk1000hz: in std_logic;mg,ms: in std_logic_vector(3 downto 0);atog: out std_logic_vector(6 downto 0);sel: out std_logic_vector(1 downto 0));end component;signal clk1000,clk1:std_logic;signal mg1,ms1:std_logic_vector(3 downto 0); signal cc: integer;beginU1: fenpin port map(clk40M,clk1000,clk1);U2: cnt10 port map(clk1,mg1,ms1);U3: decode port map(clk1000,mg1,ms1,atog,sel);end one;。
24进制计数器的VHDL语言设计2008-01-11 09:55:57 阅读1145 评论2字号:大中小摘要: 介绍了使用VHDL语言设计24进制计数器,给出了功能仿真波形,举例说明了实现电子设计自动化(EDA ) 的过程。
关键词: VHDL语言; 24进制计数器; 功能仿真; 电子设计自动化一、前言:EDA技术的应用:电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用:在教学方面:让学生了解EDA的基本原理和基本概念、描述系统逻辑的方法、使用工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。
具有代表性的是全国每两年举办一次大学生电子设计竞赛活动。
在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA 基站必须能判别这些不同观点的码序列才能分辨出不同的传呼进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探调到特定的码序列;FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域方面获得广泛应用。
在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在P哪的制作、电子设备的研制与生产、电路板的焊接、朋比的制作过程等有重要作用。
可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。
EDA技术发展趋势:EDA技术在进入21世纪后,,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。
1.模拟电子设计部分1.1 课程设计的目的与作用1.1.1目的1. 掌握multisim软件的应用及设计方法和各种元器件的作用及参数调整方法。
2. 能正确理解锯齿波发生电路的电路组成、工作原理、和主要参数的估算方法。
3. 掌握RC串并联网络振荡电路的组成,工作原理、振荡频率、起振条件以及电路的特点。
1.1.2作用1. 能够更加熟练的应用软件对电路进行仿真设计以及分析仿真结果。
2. 能够加强自己动手设计电路的能力以及增强对模拟电子设计的兴趣。
1.2 设计任务、及所用Multisim软件环境介绍1.2.1设计任务1. 利用multisim软件建立电路模型对RC串并联网络震荡电路和锯齿波发生电路的进行仿真设计。
2. 对电路进行分析和理论计算并对仿真结果进行分析。
1.2.2Multisim软件环境介绍Multisim是加拿大IIT公司推出的基于Windows的电路仿真软件,适用于板级的模拟数字电路版的设计工作。
它包含了电路原理图的图形输入,电路硬件描述语言输入方式,具有丰富的仿真分析能力。
由于采用交互式界面,比较直观,操作方便,具有丰富的元器件库和品种繁多的虚拟仪器,以及强大的分析功能等特点,因而得到了广泛的应用。
Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。
它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
为适应不同的应用场合,Multisim推出了许多版本,用户可以根据自己的需要加以选择。
在本课程中将以教育版为演示软件,结合教学的实际需要,简要地介绍该软件的概况和使用方法,并在“实验讲授”中给出若干个应用实例,其对应msm文件见“实验仿真文件”。
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。
实验一
译码器的设计(2-4 译码器)姓名:
学号:
专业:自动化
年级:2008
译码器的设计(2-4 译码器)
一:实验目的
1:能了解组合逻辑中译码器电路的设计原理。
2:能利用CPLD数字发展实验系统设计一个二对四译码器。
3:能自行验证所设计电路的正确性。
二:实验内容及要求
设计一个2-4译码器,并下载到实验板进行验证。
三:实验器材
1.软件:Altera公司的Quartus || 软件。
2.芯片:Altera公司的EP2C8T144C8。
3.开发平台:台湾掌宇公司的CIC-31智能型可编程数字开发系统。
四:实验步骤
1.建立名为 decoder2-4的工程文件,并在 Quartus || 原理图编辑环境中绘制电路图,如下图所示。
2.保存文件,检查及编译。
3.建立波形文件,并进行功能仿真,仿真结果如下图所示。
输入输出
S1 (P132)
S0
(P129)
m3
(P100)
m2
(P101)
m1
(P112)
m0
(P113)
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0 1 1 1 0 0 0。
哈尔滨工业大学《数字电子技术基础》结课报告题目:用2片74LS161实现224进制计数器姓名:王倩倩学号:1111120124班级:1111201用2片74LS161实现224进制的计数器摘要:74LS161是集成4位二进制计数器,异步置零,同步置数,用两片74LS161最高可以实现256进制计数器,级联方法主要是同步并行和异步串行。
本文介绍用两片74LS161实现224进制计数器,通过清零法和置数法改变其进制。
用Multisim进行仿真,以波形及灯泡亮灭两种方式,显示计数器的计数过程、过渡状态形成清零或置数信号的过程,用四踪示波器以面板部分重叠显示方法同步显示时钟脉冲信号、清零或置数信号以及状态输出信号,分析了计数至最高位返回0的过渡态。
关键词:74LS161 224进制清零法置数法同步并行异步串行正文:74LS161是集成4位二进制加法计数器,其功能表如表1所示:表174LS161功能表74LS161是异步置零、同步置数,利用74LS161的预置数控制LD端或者清零端CR在计数循环过程跳过一些状态,可构成任意进制的计数器。
用两片74LS161级联最高可以构成256进制的计数器,级联方式主要是同步并行和异步串行。
根据两片74LS161芯片的级联方式和控制计数进制的方法的不同,我们可以采取四大类方式,实现用两片74LS161芯片实现224进制的计数器。
下面,我们分别简要介绍这四种方法,并用软件Multisim进行仿真以检验设计的正确性。
一.同步并行-清零法1.电路设计分析74LS161是四位二进制的加法计数器,要想实现224进制的加法计数器,必须使用两片74LS161芯片,这就这就涉及到级联,我们先用同步并行的方式进行级联。
同步并行,就必须在CP端接同一个脉冲信号,作为高位的芯片通过低位芯片的RCO端进行控制,当低位芯片计数到最高位的时候,RCO由0变为1,低位RCO接高位的两个使能端,这样就能实现低位芯片计数到最大的时候,在高位记一位数。
实验报告——简易计算器目录:一、实验目的 (1)二、实验任务 (1)三、电路设计及仿真 (2)1. 结构设计图示如下: (2)2. 设计描述 (2)3. 一位全加器: (2)4. 四位全加器: (2)5. 补码器 (3)6. 四位加减器 (4)7. 八位全加器 (5)8. 乘法器 (5)9. 整体电路: (6)四、实验总结 (7)1. 实验收获: (8)2. 实验中出现的问题及解决: (8)一、实验目的1. 学习面向可编程器件(FPGA)的简单数字系统的设计流程。
2. 熟练掌握EDA设计软件Quartus II的原理图输入方式和层次化设计模式。
3. 熟悉实验装置——实验箱。
二、实验任务1. 设计1位全加器,并将其封装成1位全加器模块,仿真验证运算结果;2. 设计4位加/减运算器。
用封装好的1位全加器模块组成成4位加/减运算器。
仿真验证运算结果;3. 以全加器为基础设计一个4位乘法器并封装成乘法器模块,输出显示乘积和正负数标志。
仿真验证运算结果;4. 使用已生成的器件模块为基础设计一个简易计算器,根据控制端的状态,完成加、减、乘法运算,用十进制显示运算结果;用发光二极管显示负数标志。
仿真验证运算结果;即实现如下设计:三、电路设计及仿真1.结构设计图示如下:2.设计描述①利用门电路组合成1位全加器,封装;②调用1位全加器组合4位全加器和4位补码全加器(实现补码和相加),分别封装;③利用门电路实现补码器,封装;(可改进——使用4位全加器实现,见下);④调用4位补码全加器和补码器实现4位加减器;⑤调用4位全加器实现8位全加器,封装;⑥调用8位全加器实现乘法器;⑦译码(二进制码——BCD码);⑧组合4位加减器和乘法器成简易计算器;3.一位全加器:①利用门电路组合而成4位全加器;电路图如下:②将其封装成1位全加器模块。
4.四位全加器:①利用1位全加器模块搭建4位补码全加器(实现补码后相加),电路如下:② 将其封装成4位补码全加器模块。
数电实验报告
实验名称可编程逻辑器件制作任意进制计数器学院自动化学院
年级班别
学号
学生姓名
指导教师
年月日
用可编程逻辑器件设计计数器任意进制计数器
一、实验目标
1)掌握中规模集成计数器的逻辑功能,以及用中规模集成技术器构成任意进制计数器的方法
2)熟悉译码器和数据显示器的使用方法
3)了解数字可编程器件实现的集成计数、译码电路功能
二、实验方案+步骤
用中规模集成计数器(74LS160)设计一个二十四进制计数器,并与译码、显示电路连接起来。
⑴ 设计总框架:
⑵ 设计总原理图如下:
⑶ 分步分析:
①分频器模块:
分频器 计数器 B C D 七
段字符
显示译
码器 数码管
50MHz 2Hz BCD 码 译码
输出
本实验采用DEII 板进行验证,DEII 板上有两个内置的频率源,它们的振荡频率分别是50MHz 与27MHz 。
但是这样的频率对于我们时序电路的应用而言,显然太高了。
为此我们在内置频率源后应加一个分频器(74LS292),以得到我们需要的比较适中的频率(比如1~2Hz )
DE2上有内置的50MHz 时钟CLOCK_50
EDCBA = (11001 )2= (25)10
②计数器模块
本实验采用两片10进制计数器74LS160芯片来进行24进制计数器的设计。
③显示模块
由实验板的数码管是共阳性,所以采用7446译码器来驱动。
三、时序仿真
①计数器模块
24个脉冲输出一个进位脉冲,即代表24进制。
②显示模块
Hz MHz CLK f Q 6.1250212525≈==
四、实验验证
实验板上的两个数码管循环显示数字从0-23,即实现24进制电路的设计。
五、实验心得
本实验主要需要先想好要用什么芯片来设计24进制电路,记忆最后需要用什么译码器来显示结果。
24进制的电路设计原理可以推广到其他任意进制的设计。