基于QuartusII的同步计数器设计
北京科技大学数电实验四 Quartus II集成计数器及移位寄存器应用

北京科技大学实验报告学院:高等工程师学院专业:自动化(卓越计划)班级:自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)总结任意模计数器的设计方法。
基于quartusⅡ的通用运算器的设计与实现

在集成电路设计领域中,各类微处理器已经成为了整个芯片系统的核心。
运算器作为其核心部件,得到广泛的发展。
与此同时,为了增加电子产品产出效率,降低制造成本,诸如Quartus II9.0等电子仿真软件相继出现,为产品开发提供了良好的开发平台。
本文根据运算器具有物美价廉、使用方便、功能性强等特点,分别对半加器、全加器、乘法器、除法器进行了仿真设计。
首先本文介绍了课题的背景、意义、发展现状及未来走向,并对研究内容及设计方案进行了简单介绍。
其次对设计环境QuartusⅡ平台及VHDL做了介绍。
之后对半加器、全加器、乘法器、除法器的设计进行了详细描述,包括工作原理、真值表及流程图,还把乘法器分成各个模块,并对各个模块进行了详细的介绍与设计分析。
随后对半加器、全加器、乘法器、除法器进行了编程、仿真以及在QuartusⅡ平台上对仿真结果进行验证。
从而做到了从理论到实践,学以致用。
关键词:运算器;QuartusⅡ;VHDLIn the field of integrated circuit design, all kinds of microprocessors has become the core of the whole chip system. Unit as its core component, is widely development.At the same time, in order to increase the electronic products output efficiency, reduce manufacturing cost, such as the QuartusII 9.0 electronic simulation software appeared, such as for product development provides a good development platform.Based on the arithmetic unit has the good and inexpensive, easy to use, functional characteristics, respectively, half adder, full adder, multiplier and divider design has carried on the simulation. First this article introduces the topic background, significance, status quo and future development, and research contents and the design scheme of a simple introduction. Secondly on the design environment QuartusII platform and VHDL is presented. After full adder and full adder, multiplier and divider design are described in detail, including the working principle, the truth table and flow chart, also the multiplier is divided into various modules, and each module are analyzed in detail and design. Then half adder, full adder, multiplier and divider for programming, simulation, and in the QuartusII platform of simulation results to validate. Thus did it from theory to practice, to practice.Keywords: Arithmetic unit;VHDL;QuartusII1 引言 (1)1.1 课题背景及意义 (1)1.2 课题的现状与发展 (1)1.3 研究内容与设计方案 (1)2 开发环境 (3)2.1 Quartus II平台介绍 (3)2.1.1 Quartus II简介 (3)2.1.2 Quartus II总体设计 (4)2.1.3 Quartus II总体仿真 (8)2.2 VHDL语言介绍 (9)2.2.1 VHDL语言概述 (9)2.2.2 VHDL语言介绍 (10)2.2.3 VHDL应用开发介绍 (12)3 基于Quartus II的半加、全加器的设计与实现 (13)3.1 基于Quartus II的半加器运算 (13)3.1.1 半加器的原理与真值表 (13)3.1.2 半加器的设计与实现 (13)3.2 基于Quartus II的全加器运算 (22)3.2.1 全加器的原理、真值表和原理图 (22)3.2.2全加器的设计与实现 (24)4 基于Quartus II的乘法、除法器的设计与实现 (25)4.1 基于Quartus II的乘法器运算 (25)4.1.1 乘法器的原理和流程图 (25)4.1.2 四位二进制加法器模块 (28)4.1.3 八位二进制加法器模块 (29)4.1.4 一位乘法器模块 (31)4.1.5 8位右移寄存器模块 (33)4.1.6 乘法器的其他模块 (34)4.2 基于Quartus II的除法器运算 (39)4.2.1 除法器的原理与流程图 (39)4.2.2 除法器的设计与实现 (40)结论 (43)致谢 (44)参考文献 (45)附录A 英语原文 (46)附录B 汉语翻译 (56)1 引言1.1 课题背景及意义Quartus II具有界面友好、操作简单的特点,作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Quartus II平台。
基于QuartusⅡ的九十九进制计数器设计与仿真

OI T论坛o
21 年 00
第 l 期 3
基于 Q ats u r Ⅱ的九十九进制 u 计数器设计与仿真
马莹敏 ( 南师 范大 学计算 机 与信 息技 术学 院 河南 新 乡 河
【 摘
43 0 ) 5 0 7
要J Qu r sⅡ 50软件环境 下, 在 at u . 将两片四位 同步二进制加 法计数 器 7 11芯片通过一定方式连接在一起 。 46 可构成 同步九十九进 制
1 问题 分析
集成计数器是厂家 的定型产品 , 函数关 系已被固化在芯片 中, 其 其状态 分配即编码是不可 能更 改的 , 而且多 为纯 自然态序编码 , 这 但 些芯片一般都设有清零输入端和置数输入端 。利用 清零端 或置数端 , 让电路跳过某些状态 , 就可以获得 九十九进制计数器日 。 集成计数器的清零或置数端都有 同步和异步之分。 同步是指当计 数 脉冲 C K触发沿到来时才能完成清零或置数任务 ;异步是 指通 过 L 时钟触发器异步输入端实现清零或置数 , C K信号无关口 与 L l 。 在 Q a u . 软 件环 境下 ,用 两片 四位 同 步二进 制计 数器 ur sI5 t I 0 7 11 4 6 设计一个九 十九进制 的同步加法计数 器 , 整体置数法实 现 , 用 第一种设计方法是高位和低位都采用 7 1 1 4 6 原有 的十六进制 ; 种 第二 设计方法是个位 和十位都采用 8 2 B D B a dd e m 1 的编 4 1 C (i r C e c a 码 nyo D i )
码方式 。 2 设 计 方 法
图 1 十 六 进 制 法 设 计 九 十 九 进 制 计数 器 原 理 图
21 四位同步二进制加法计数器 7 1 1 . 4 6 简介 7 11 4 6 芯片是输入 计数脉冲 C K上 升沿触发 的同步 四位二进制 L 加法计数器。 它共 有 1 个引脚 , 4 其中 L N为预置数控制端 , 、 、 、 D ABcD ( D是最高位 )为数据输入端 ,N 、 N E T E P为工作状 态控制 端 , L N为 CR 置零端 , L C K为计数 脉冲输 人端 , A Q 、 c Q ( D是最 高位 ) Q 、B Q 、D Q 为数 据输 出端 , C R O为进位位 。当 7 1 1 于计数 状态时 , 46 处 每来一个 C K L 上升沿 , 它就会 累计加 1 当第 l 个计数脉 冲的上升沿到来时 , 1 1 , 5 7 6 4 自动产生进位信号 , 再下一个脉冲上升沿到达时 , 数据输出端 回零 , 因 此 ,4 6 7 11又被称为十六进制计数器。 711 4 6 的功能表如表 1 所示 :
实验四四位二进制同步计数器

实验四四位二进制同步计数器一、目的:1.能了解四位元二进制同步计数器的设计原理及其特性。
2.能设计一个四位元二进制同步计数器。
3.能自行以CPLD数位发展实验系统验证所设计电路的正确性。
二、电路图:三、实验器配置图:四、实验步骤与画面:1.建立一个名为count16.vhd的新文件,并在QuartusⅡ文字编辑器中,以VHDL语言来设计程式,图为四位二进制计数器的VHDL代码。
其中clk为时钟端口,clk为异步清零端,Q为计数输出端口,co为进位输出端口。
2.存储、检查及编译。
3.创建元件符号。
4.创建波形文件,设定合适的端口信号,仿真元件的波形。
观察波形图可以看出当芯片可以实现16进制计数功能。
五、相关说明:1.同步计数器的意义是将所有正反器的时脉连接在一起,当时脉进来时,所有的正反器同时被触发而动作,因此传递延迟时间就可以大为缩短,计数的速度就会增快。
2.我们可以利用MAX+plusⅡ的Timing Analyzer来比较同步计数器与非同步计数器(单元十)的传递延迟状况,图U12-3(a)与图U12-3(b)为分析所得结果,从图中可以发现,同步计数器从时脉输入到各级的输出,其传递延迟时间皆相同,而非同步计数器则越到后级传递延迟时间越长。
3.图U12-2的程式设计方法,也可以改用D型正反器来设计,如图U12-4所示,您可以发现此种设计同步计数器的方法较简洁。
4.若要将图U12-4改成下数计数器,只要将叙述ff[].d=ff[].q+1;改成ff[].d=ff[].q-l;即可。
5.图U12-5为四位元含致能及清除的模10上下数计数器,其中的设计重点为:(1)为了能在高频计数电路应用,本电路的清除方式采同步清除式设计,并不利用正反器本身的elrn脚,而是当clr脚输入为鬲态时,令所有正反器的D输入脚为o,达到清除的目的。
(2)程式中使用了巢状的IF THEN叙述,须注意每一层的IF THEN、 ELSIF、ELSE及END IF的对应,不要弄乱了,否则会很麻烦。
简述基于QuartusⅡ设计的频率计

重庆师范大学期末考核提交材料课程名称: EDA原理及应用院系:物理与电子工程学院时间: 2012—2013学年度第2学期专业:电子信息科学与技术(职教师资)年级: 2011级培养层次:本科学生姓名:学号:成绩:基于QuartusⅡ设计的频率计摘要:计数器在数字电路中有着广泛的应用,现提出一种计数器设计穿插在电子电路设计的教学方法,使学生能够快速地根据现有的数字电路知识转化到EDA 的应用。
关键词频率计;电子设计自动化;Verilog0 引言:随着EDA技术的发展和应用领域的扩大,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。
同时,随着技术市场对EDA技术需求的不断提高,产品的市场效率和技术要求也必然会反映到数学和科研领域中来。
以最近的十届全国大学生电子设计竞赛为例,涉及EDA技术的赛题从未缺席过。
对诸如斯坦福大学、麻省理工学院等美国一些著名院校的电子与计算机实验室建设情况的调研表明,其EDA技术的教学与实践的内容也十分密集;在其本科和研究生教学中有两个明显的特点:其一,各专业中EDA教学实验课程的普及率和渗透率极高;其二,几乎所有实验项目都部分或全部地融入了EDA技术,其中包括数字电路、计算机组成与设计、计算机接口技术、数字通信技术、嵌入式系统、DSP等实验内容,并且更多地注重创新性实验。
这显然是科技发展和市场需求双重影响下自然产生的结果。
1.QuartusⅡ简介:QuartusⅡ是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大的可编程逻辑器件供应商之一。
QuartusⅡ在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plusⅡ的更新换代产品,其界面友好,使用便捷。
2.计数器设计这里首先设计测频用的、含时钟使能控制的2位十进制计数器。
2.1:设计电路原理图。
频率计的核心元件之一是含有时钟使能及进位扩展输出的十进制计数器。
设计含异步清零和同步使能的加法计数器

实验二设计含异步清零和同步使能的加法计数器1.实验目的学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
2.实验内容或原理在Quartus II 上对源程序进行编辑、编译、综合、适配、仿真。
说明源程序各语句的作用,详细描述其功能特点,给出其所有信号的时序仿真波形。
RST为异步清零信号,高电平有效;CLK是锁存信号;EN为计数使能信号。
当时钟信号CLK、复位信号RST或时钟使能信号EN中任一信号发生变化,都将启动进程语句PROCESS。
此时如果RST为‘1’,将对计数器清零,即复位,这项操作是独立于CLK的,因而称异步。
3.实验仪器(1)GW48系列SOPC/EDA实验开发系统(2)配套计算机及Quartus II 软件4.实验步骤(1)完成含异步清零和同步使能的加法计数器的VHDL描述,并对其进行波形仿真,确定结果正确。
(2)建议选择实验电路模式5对该设计进行硬件验证。
5. VHDL仿真实验(1)为此工程新建一个文件夹。
启动QuartusII软件工作平台,新建工程设计文件名为CNT10.vhd。
在新建的VHDL模型窗口下编写源程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT: OUT STD_LOGIC);END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK,RST,EN)V ARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='1'THEN CQI := (OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1'THENIF EN='1'THENIF CQI<9 THEN CQI :=CQI+1;ELSE CQI :=(OTHERS=>'0');END IF;END IF;END IF;IF CQI=9 THEN COUT<='1';ELSE COUT<='0';END IF;CQ<=CQI;END PROCESS;END behav;(2)创建工程及全程编译。
qurtusii位计数器

实验三计数器设计1.实验目的(1)掌握时序电路的设计方法。
(2)掌握带有复位和时钟使能的十六进制计数器的原理。
(3)掌握计数器的设计方法。
(4)学习VHDL语言设计较复杂的电路方法。
2.实验仪器设备(1) PC机一台。
(2) Quartus II开发软件一套。
3.实验要求(1)预习计数器的相关知识。
(2)用VHDL方式完成程序设计。
(3)设计一个带异步复位和同步时钟使能的十六进制加法和减法计数器,以及十进制加法计数器,并分别仿真。
4.实验任务和原理所谓同步或异步计数器都是相对于时钟信号而言的,不依赖于时钟而有效的信号称为异步信号,否则称为同步信号。
本实验要求设计一个带有异步复位和同步时钟使能的十六进制加法和减法计数器,以及一个十进制加法计数器。
1)设计一个带有异步复位和同步时钟使能的十六进制加法计数器利用VHDL语言设计一个带有复位和时钟使能Array的十六进制加法计数器。
设CLK为时钟使能信号,RST为复位信号,EN为计数器使能信号,COUT为计数输出端,Co为进位输出端。
电路模块符号如图1所示。
2)设计一个带有异步复位和同步时钟使能的十六进制减法计数器图1 带有复位和时钟使能利用VHDL语言设计一个带有复位和时钟使能的十六进制计数器的十六进制减法计数器,电路符号如图1所示。
设CLK为时钟使能信号,RST为复位信号,EN为计数器使能信号,COUT为计数输出端,Co为借位输出端。
电路模块符号如图1所示。
3)设计一个十进制加法计数器。
5.实验报告及总结(1)根据实验内容,写出设计方案。
(2)分析计数器实验原理。
(3)写出VHDL程序,画出仿真波形图。
(4)总结带有复位和时钟使能的十六进制计数器电路设计的方法。
含异步清零和同步使能的加法计数器设计与仿真

实验二含异步清零和同步使能的加法计数器并用数码管显示一、实验目的1、了解二进制计数器的工作原理。
2、进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。
3、时钟在编程过程中的作用。
二、实验内容本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。
实验中时钟信号使用数字时钟源模块的1HZ 信号,用一位en表示使能端信号,用复位开关rest 表示复位信号,用LED 模块的LED1~LED7 来表示计数的二进制结果。
实验LED亮表示对应的位为‘1’LED灭表示对应的位为‘0’。
通过输入不同的值模拟计数器的工作时序,观察计数的结果。
实验箱中的拨动开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
三实验步骤1、打开QUARTUSII 软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。
3、在VHDL 编辑窗口编写VHDL 程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exp4 isport( clk ,clr,en : in std_logic;co:out std_logic;key : in std_logic_vector(3 downto 0);ledag : out std_logic_vector(6 downto 0);del : out std_logic_vector(3 downto 0));end exp4;architecture whbkrc of exp4 issignal dount : std_logic_vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif clr='1'thendount<=(others=>'0');elsif en='1'thenif key="1111"thendount<="0000";co<='1';elsedount<=dount+'1';co<='0';end if;end if;end if;del<=dount;end process;process(key)begincase key iswhen "0000" => ledag <="0111111";when "0001" => ledag <="0000110";when "0010" => ledag <="1011011";when "0011" => ledag <="1001111";when "0100" => ledag <="1100110";when "0101" => ledag <="1101101";when "0110" => ledag <="1111101";when "0111" => ledag <="0000111";when "1000" => ledag <="1111111";when "1001" => ledag <="1101111";when "1010" => ledag <="1110111";when "1011" => ledag <="1111100";when "1100" => ledag <="0111001";when "1101" => ledag <="1011110";when "1110" => ledag <="1111001";when "1111" => ledag <="1110001";when others => null;end case;end process;end whbkrc;(4)分配管脚(5)功能仿真。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。
因此用这种语言编写的模型能够使用Verilog仿真器进行验证。
语言从C编程语言中继承了多种操作符和结构。
Verilog HDL提供了扩展的建模能力其中许多扩展最初很难理解。
但是Verilog HDL语言的核心子集非常易于学习和使用这对大多数建模应用来说已经足够。
当然完整的硬件描述
语言足以对从最复杂的芯片到完整的电子系统进行描述。
二、实验设计
计数器的逻辑功能是用于记录时钟脉冲的具体个数。
通常计数器最多能记忆时钟的最大数目m称为计数器的模2,即计数器的范围为0到m-1或m-1到0.其基本原理就是将几个触发器按照一定的顺序连接起来,然后根据触发器的组合状态,按照一定的技术规律随着时钟的变化来记忆时钟脉冲的个数。
计数器按照不同的分类方法可分为不同的类型,按照计数器中各个触发器时钟脉冲输入方式的不同分为同步计数器和异步计数器。
其中,同步计数器是指构成计数器的各个触发器的状态只在同一时钟信号的触发下才会发生变化的计数器。
在这里,我主要以同步4位二进制计数器为设计对象。
2.1状态表
同步4位二进制计数器的状态表
2.2设计步骤
在菜单栏中,选择File,新建一个工程,在根据工程向导设置相关内容。
所
有选项设置好后就可以在文本编辑框中输入相应的程序了。
这里有个重要的点就是,保存时文件名必须和设计时所用的模块名保持一致。
采用文本编辑法,利用Verilog HDL语言来描述同步4位二进制计数器,代码如下:
module tongbu_cnt(co,q,clk,r,s,d,en);
output[3:0] q;
output co;
input clk,r,s,en;
input[3:0] d;
reg[3:0] q;
reg co;
always(posedge clk)
begin
if(r)
begin q=d;end
else
if(s)
begin q=d;end
else
if(en)
begin q=q+1;
if(q==4'b1111)
begin co=1;end
else
begin co=0;end
end
else
begin q=q;end
end
endmodule
程序编写完成后再进行进行编译,根据编译后的结果提示,修改响应的错误,直到所有错误被修改完成。
编译成功后,如下图所示:
再新建波形仿真文件,弹出对话框如下图所示:
再选择需要添加的输入输出引脚的名字,如下图所示:
然后再对相应的信号进行初始设置,最后点击保存。
接下来就是进行仿真步骤,先进行功能仿真:
再进行时序仿真:
仿真结果:
同步4位二进制计数器的功能仿真结果如图1所示,时序仿真结果如图2所示。
其中,将q设置为buffer类型是为了方便计数。
图1 同步4位二进制计数器的功能仿真结果
图2 同步4位二进制计数器的时序仿真结果
三、学习感悟:
初次接触FPGA时,就感觉它功能很强大。
同时,我也了解到要想学好这门技术也并不容易,需要花大量的时间去专研,其相关的学习开发板也比较昂贵。
另外,对于编程语言来讲,我也是第一次听说Verilog HDL,它的一些编程语句和C语言很像。
在学习这门课程时,我也从中收获了许多。
从第一节课开始,老师推荐的几个学习网站,我觉得对我们技能的提升很有帮助。
除此之外,我觉得像电子发烧友网、电子工程网等,也是不错的学习平台,里面有许多有用的资料和最新的行业动态,这对我们电子信息类的学生来说很有帮助。
在上课过程中,我觉得还是有点更不上节奏,内容不仅多,大部分还是新知识。
基于此,我也到图书馆借阅了相关的书籍,主要是和编程语言相关的。
虽然,现在课程结束了,但我仍然还是会继续学习下去,作为一门技能去掌握。
另一方面,老师在上课提到了半导体在今后发展趋势,为此我感到比较欣喜,因为我现在的学习内容和这个方向相关。
起初,我觉得作为传统制造业来说,它的发展优势并不明显,多年来一直不温不火,技术革新的地方也不多。
但是,现在随着人工智能的兴起,对于集成电路的要求也就越来越高,进而也就可能带动半导体行业的发展和进步。
除此之外,老师在课堂上提到的Python语言,我觉得在今后也大有用途,这也应该是我学习任务的一部分。
通过这次实例设计,我对Quartus ii软件和Verilog HDL语言有了更深一步的了解。
这次所用到的软件版本是在网上找的9.0版,我觉得软件的安装过程比较复杂。
结合网上的基础视频讲解和书本上的介绍,我对软件的基础使用有了一
.. .
.. .
个大致的认识。
由于是第一次接触这方面的内容,这次的设计实验我也是选择了一个比较简单的同步4位计数器设计。
按照书上的例子,一步一步的去设置,编译,最后还是勉强实现了基本要求。
当然,在这个学习过程中,我也有遇到过许多问题。
从一开始的软件安装,到编译时的语句修改,再到最后的波形仿真,我都反复进行了许多次。
虽然,这次仅仅只是做了一个小的实验设计,涉及到的知识还不够多,难度也不算大,但是对于我来说收获却很多。
这其中也得到了老师和同学们的帮助,才使我更快的了解了相关的知识点。
借助这次实验设计,我在网上找到了学习视频和相关的学习资料,接下来就是准备买一快小的学习开发板,进行更加深入的学习研究。
同时,我也会关注相关行业的动态,了解更多新闻资讯。
四、参考文献:
[1]潘松.EDA技术实用教程.:科学出版社;
[2]周新.轻松学会FPGA设计与开发.:电子工业出版社;
[3]黄平.基于Quartus II的FPGA/CPLD数字系统设计与应用.:化学工业出版
社;
..
v .. .。