六分频加法电路的设计
信号波形合成实验电路+电路图

信号波形合成实验电路+电路图信号波形合成实验电路+电路图第一章技术指标1 系统功能要求2 系统结构要求第二章整体方案设计1 方案设计2 整体方案第三章单元电路设计1 方波振荡器2 分频电路设计3 滤波电路设计4 移相电路设计5加法电路设计6整体电路图第四章测试与调整1 分频电路调测2 滤波电路调测3 移相电路调测4加法电路调测5整体指标测试第五章设计小结1 设计任务完成情况2 问题与改进3 心得体会第一章技术指标1 系统功能要求1.1 基本要求(1)方波振荡器的信号经分频滤波处理,同时产生频率为10kHz和30kHz 的正弦波信号,这两种信号应具有确定的相位关系;(2)产生的信号波形无明显失真,幅度峰峰值分别为6V和2V;(3)制作一个由移相器和加法器构成的信号合成电路,将产生的10kH和 30kHz正弦波信号,作为基波和3次谐波,合成一个近似方波,波形幅度为5V,合成波形的形状如图1所示。
图1 利用基波和3次谐波合成的近似方波1.2 发挥部分再产生50kHz的正弦信号作为5次谐波,参与信号合成,使合成的波形更接近于方波。
2 系统结构要求2.1 方波振荡器:产生一个合适频率的方波,本实验中选择6MHz;2.2 分频器:将6MHz方波分频出10kHz、30kHz和50kHz的方波;2.3 滤波器:设计中心频率为10kHz、30kHz、50kHz三个滤波电路,产生相应频率的正弦波;2.4 移相器:调节三路正弦信号的相位;2.5 加法器:将10kHz、30kHz和50kHz三路波形通过加法电路合成,最终波形如图2。
2.6该系统整体结构如图3图2 基波、三次谐波和五次谐波合成的方波图3 电路示意图第二章整体方案设计1 方案设计1.1理论分析周期性函数的傅里叶分解就是将周期性函数展开成直流分量、基波和所有n阶谐波的迭加。
数学上可以证明方波可表示为:(1)其中A=4h/ ,h为方波信号峰值。
已知基波峰峰值要求为6V,故A=3 ,所以3次谐波对应的幅值为1V,5次谐波对应的幅值为0.6V。
第五组--信号波形合成电路实验(2010年电子竞赛C题论文)2

高,在高压、高频、大功率的场合不适用。 综合以上的分析,由 TI 公司生产的宽带低失真单位增益稳定的电压反馈运算放
大器 OPA842 组成的滤波电路满足本次设计的要求,因此选择方案二。 1.1.3 移相电路
方案一:用双极性运算放大器 OP07 组成的移相电路,由于 OP07 具有非常低的 输入失调电压,所以在很多应用场合不需要额外的调零措施。OP07 是一种低噪声, 非斩波稳零的双极性运算放大器,由它组成的移相电路具有电路简单、工作可靠、成 本低、波形好、适应性强,而且可以提供 180°的相移。
表一:信号编码表
A0
A1
X
1
0
0
1
0
波形 正弦波 方波 三角波
A0、A1 表示波形设定端;X 表示任意状态;1 为高电平;0 为低电平。 74LS14 非门对输出的信号进行整形,使输出的波形更加的理想。 3.1.2 分频电路 分频电路如附录图 3 所示,由 74LS90、74LS00、CD4013 三片芯片组成。先将 300KHz 的方波信号进行 3 分频、5 分频、15 分频,再通过 D 触发器二分频,最终得到 50KHz、 30KHz、10KHz 的正弦波信号。 74LS90 不仅可以用于计数,还能用于分频,一片 74LS90 可构成最大进制计数器 是十进制,若分频数大于 10,则要用两片或多片级联,级联后高位的周期即为分频 后的周期,但占空比并非 50%,这就需要用 D 触发器对分频后的方波进行整形。74LS00 是四集成与非门,在电路中起缓冲隔离的作用。CD4013 是由两个相同的、相互独立 的数据型触发器构成。每个触发器有独立的数据、置位、复位、时钟输入和 Q 及 Q
方案三:用 MAX038 精密、高频波形发生器来产生方波信号,电路结构简单,能产 生 0.1Hz~20MHz 的方波信号,波形的频率和占空比可以由电流、电压或电阻控制 。 MAX038 构成的电路低失真、低漂移、外围元件少、可靠性和稳定性好,但相对于上 面的方案而言,价格会稍高一点。
课程设计---时钟分频电路

第一章课程设计内容与目的1.1 设计内容:设计一个频率为100MHZ,60分频的时钟分频电路。
即输入的频率是100MHZ,分频倍数为60,最终实现对输入时钟正确的60分频功能。
用ISE,MODELSIM工具软件,编写时钟分频源程序,并通过综合后生成波形仿真文件,然后对设计进行仿真。
1.2 设计目的:1.掌握时钟分频工作原理.2.对60倍时钟分频模块进行基于VHDL的设计.3.对自己所设计的60倍时钟分频模块进行仿真验证。
第二章模块设计2.1 模块原理:时钟分频就是用同一个时钟信号通过一定的电路结构转变成不同频率的时钟信号。
例如四分频就是通过有分频作用的电路结构,在时钟每触发4个周期时,电路输出1个周期信号。
比如用一个脉冲时钟触发一个计数器,计数器每计4个数就清零一次并输出1个脉冲。
那么这个电路就实现了四分频功能。
在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。
分频电路包括整数分频和小数分频,其中整数分频又包括了奇分频和偶分频。
对于偶数 N 分频,通常是由模 N/2 计数器实现一个占空比为 1:1 的 N 分频电路,分频输出信号模 N/2 自动取反。
对于奇数 N 分频,上述方法就不适用了,而是由模 N 计数器实现非等占空比的奇数 N 分频,分频输出信号取得是模 N 计数中的某一位(不同 N 值范围会选不同位)。
这种方法同样适用于偶数 N 分频,但占空比不总是 1:1,只有 2 的 n 次方的偶数(如 4、8、16 等)分频占空比才是 1 :1 。
这种方法对于奇数、偶数具有通用性。
小数分频通过精确的控制器来控制内部分频器进行N分频还是N+1分频,从而在平均意义上实现分频系数为小数的分频器占空比指的是在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值(如右图所示)。
2.2 设计思路时钟分频电路中,偶分频是最基本也是比较简单的分频,本设计的分频倍数就是60分频,60分频就是通过有分频作用的电路结构,在时钟每触发60个周期时,电路输出1个周期信号。
数字电子技术基础第四章习题及参考答案

数字电子技术基础第四章习题及参考答案第四章习题1.分析图4-1中所示的同步时序逻辑电路,要求:(1)写出驱动方程、输出方程、状态方程;(2)画出状态转换图,并说出电路功能。
CPY图4-12.由D触发器组成的时序逻辑电路如图4-2所示,在图中所示的CP脉冲及D作用下,画出Q0、Q1的波形。
设触发器的初始状态为Q0=0,Q1=0。
D图4-23.试分析图4-3所示同步时序逻辑电路,要求:写出驱动方程、状态方程,列出状态真值表,画出状态图。
CP图4-34.一同步时序逻辑电路如图4-4所示,设各触发器的起始状态均为0态。
(1)作出电路的状态转换表;(2)画出电路的状态图;(3)画出CP作用下Q0、Q1、Q2的波形图;(4)说明电路的逻辑功能。
图4-45.试画出如图4-5所示电路在CP波形作用下的输出波形Q1及Q0,并说明它的功能(假设初态Q0Q1=00)。
CPQ1Q0CP图4-56.分析如图4-6所示同步时序逻辑电路的功能,写出分析过程。
Y图4-67.分析图4-7所示电路的逻辑功能。
(1)写出驱动方程、状态方程;(2)作出状态转移表、状态转移图;(3)指出电路的逻辑功能,并说明能否自启动;(4)画出在时钟作用下的各触发器输出波形。
CP图4-78.时序逻辑电路分析。
电路如图4-8所示:(1)列出方程式、状态表;(2)画出状态图、时序图。
并说明电路的功能。
1C图4-89.试分析图4-9下面时序逻辑电路:(1)写出该电路的驱动方程,状态方程和输出方程;(2)画出Q1Q0的状态转换图;(3)根据状态图分析其功能;1B图4-910.分析如图4-10所示同步时序逻辑电路,具体要求:写出它的激励方程组、状态方程组和输出方程,画出状态图并描述功能。
1Z图4-1011.已知某同步时序逻辑电路如图4-11所示,试:(1)分析电路的状态转移图,并要求给出详细分析过程。
(2)电路逻辑功能是什么,能否自启动?(3)若计数脉冲f CP频率等于700Hz,从Q2端输出时的脉冲频率是多少?CP图4-1112.分析图4-12所示同步时序逻辑电路,写出它的激励方程组、状态方程组,并画出状态转换图。
实验六Verilog设计分频器计数器电路

实验六Verilog设计分频器/计数器电路一、实验目的1进一步掌握最基本时序电路的实现方法;2学习分频器/计数器时序电路程序的编写方法;3进一步学习同步和异步时序电路程序的编写方法。
二、实验内容1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为5个clock周期的低电平,5个clock周期的高电平),文件命名为fenpinqi10.v。
2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为couter10.v。
3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。
4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5.v。
5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。
三、实验步骤:第一个实验:1、打开QuartusII,新建一个工程f_fenpinq10yjq2、新建一个Verilog HDL文件3、输入程序:module fenpinqi10(clk,reset,clkout);input clk,reset;output clkout;reg clkout;reg[2:0] cnt;always @(posedge clk , negedge reset)beginif(!reset)begin clkout<=0;cnt<=0;endelse if(cnt==4)begin cnt<=0;clkout<=~clkout;endelse cnt<=cnt+1;endendmodule4、设置顶层实体名(点settings>general >下拉选fenpinqi10)5、编译6、执行file>Create/Update>Create Symbol Files for Current Flie为VHDI设计文件生成原件符号7、建立波形文件8、导入引脚9、仿真结果如下:总结:仿真结果与实验一的题意相符,所以仿真正确。
6C16+FU50音色独特的高保真胆机功放电路

6C16+FU50音色独特的高保真胆机功放电路目前,电脑声卡音频、MP3、MP4以及CD、SACD、DVD甚至蓝光碟等多媒体音源,多为解压缩数模转换流,通常用晶体管或集成电路音频放大器放音,虽然具备一定的优点外,但音质略显直白生硬,缺泛韵味,少有临场感,即通常称之为数码声。
而用胆管(电子管)制作的音频放大器,播放多媒体音源,能够有效地改善音质,可获得良好的听感,有效克服多媒体音源音色冷板生硬,缺泛情调之嫌,使人声乐曲充满活力,久听不厌!为了解决这一问题,使后级重放乐声更传神,音色更美好,近些年来,流行用胆管(电子管)音频放大器,播放电脑等数码音源,以获得良好的听感,有效克服数码音源音色冷板生硬,使乐曲声充满活力,久听不厌!由于采用胆管这一器件,对基于数模转换音频这一脉冲信号波形的前沿后跌具有一种时滞作用,极大地改善了音响效果。
胆管音频放大器对音频信号具有独特的表现力,一些LP黑胶烧友也十分钟情于胆机,认为胆机是LP唱机的绝配。
单端胆机音质醇美剔透,十分迷人,尤其在表现音乐人声方面情感丰富,魅力独特。
为了进一步提高单端胆机的性能,增强对乐曲的表现力,使音质更好听,音色更完美!试制一部6C16电感直耦FU50单端机,在不悖电路原理的前提下,坚持简洁至上原则,多一个元件,多一份失真,能减的元件尽量减。
制作成功后的胆机功放保真度极高,有兴趣的话不妨一试。
一、电路原理整机电路如图所示,电压放大采用高跨导低噪声宽频带单三极管6C16担任,6C16与FU50之间采用电感直耦,既保证良好的幅频特性又能领略电磁耦合的魅力,电感直耦较阻容耦合、电感电容耦合及变压器耦合在性能上要好得多,可有效地克服数码声,增强乐声讨胆味。
为了提高线性减小失真,FU50采用三极管接法。
6C16系高跨导中屏流三极管,加之感性负载,在屏压150V电压下能输出80V左右推动电压,足以推动FU50,此管用于电压放大线性好失真小,音质醇美剔透,色彩斑斓,加之单管封装,声底清净,音场定位准确,声音解析力佳。
VHDL简单实例
第6章基本单元电路的VHDL设计本章提要:本章介绍了数字系统设计中经常用到的计数器,分频器,选择器,译码器,编码器,寄存器,存储器,输入电路,显示电路等基本单元电路的VHDL程序设计。
学习要求:在教师讲授这些基本单元电路的设计思想的基础上,通过上机调试熟练掌握这些基本单元电路的设计。
关键词:计数器(Counter),分频器(Divder),选择器(Multiplexer),译码器(Decoder),编码器(Encoder),寄存器(Register),存储器(Memory),输入电路(Input Circuit),显示电路(Display Circuit)6.1 计数器的设计6.1.1 同步计数器的设计6.1.2 异步计数器的设计6.2 分频器的设计6.3 选择器的设计6.4 译码器的设计6.5 编码器的设计6.5.1 一般编码器的设计6.5.2 优先级编码器的设计6.6 寄存器的设计6.6.1 数码寄存器的设计6.6.2 移位寄存器的设计6.6.3 并行加载移位寄存器的设计6.7 存储器的设计6.7.1 只读存储器ROM的设计6.7.2 读写存储器SRAM的设计6.8 输入电路的设计6.8.1 键盘扫描电路的设计6.8.2 键盘接口电路的设计6.9 显示电路的设计6.9.1 数码管静态显示电路的设计6.9.2 数码管动态显示电路的设计6.9.2 液晶显示控制电路的设计6.1 计数器的设计计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。
计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。
计数器分同步计数器和异步计数器两种。
6.1.1 同步计数器的设计所谓同步计数器,就是在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化的那一类计数器。
1) 六十进制计数器众所周知,用一个4位二进制计数器可构成1位十进制计数器,而2位十进制计数器连接起来可以构成一个六十进制的计数器。
方波信号合成电路
摘要:信号波形合成实验电路主要由120KHz的方波发生电路、分频电路、滤波电路、调理电路、加法电路等模块组成。
120KHz的方波信号通过30分频、10分频、6分频产生4KHz、12KHz、20KHz的方波信号。
经滤波电路和调理电路得到正弦波信号,通过加法电路将信号合成近似方波信号。
关键词:信号波形合成;30分频;10分频;6分频一、方案比较与论证(一)、项目总体方案分析(二)1.方波信号产生电路方案一:用555定时器接成的多谐振荡器,能使产生的方波占空比可调,即高电平持续时间与低电平持续时间的比值可调;占空比10%~90%。
产生频率约为1.5KHZ的矩形波,矩形的电压峰峰值为电源电压+5V。
该频率难达到150KHz。
方案二:用TLC083芯片,它是一种迟滞比较器,具有开环特性,压摆率可达到19V/us,带宽10MHz。
通过以上比较分析,我们选用方案二。
2.分频器:方案一:采用可编程逻辑控制器方案二:采用74LS161对120KHZ的方波信号进行分频可得占空比为50%的12K.20KHZ的信号,它的电路构成比较简单,成本较低3.滤波电路方案一:采用RC滤波电路,由于电阻R与频率变化无关,RC低通滤波器在器件选材方面要简单,但不适合大功率输出,仅可作为弱信号处理与微小功率应用。
方案二:采用TLC04芯片,四阶低通滤波器。
TLC04的截止频率的稳定性只与时钟频率稳定性相关,截止频率时钟可调,其时钟一截止频率比为50:1,因而设计截止频率为1/1.69×RF1×CF1×50=251.8Hz,满足了振动时效和振动焊接工艺的要求。
通过以上方案比较,我们选用方案二。
4.调整电路方案一:同相比例运算电路,它是深度电压串联负反馈电路,调节反馈电阻和反相输入电阻比值可调节比例系数,且比例系数大于或等于一方案二:反相比例运算电路,它是深度电压并联负反馈电路,可作为反相放大器,调节反馈电阻和反相输入电阻比值即可调节比例系数,比例系数既可大于一也可小于一,但它不可去处直流分量方案三:在反相比例运算电路的基础上将反相比例运算电路的正向输入端电阻改成可调电阻,并在可调电阻的另两端接上+、-5V 。
自动售票机、累加器电路图
实验报告一、设计方案1.设计选题A:累加器(1)个位数字的加法逻辑电路:图1.1 各位加法电路及其模块(2)十位及报警逻辑电路电路:图1.2 十位及报警电路及其模块(3)500Hz分频电路:图1.3 500Hz分频电路及其模块(4)消抖电路:图1.4 消抖电路及其模块(5) 数码管显示电路:图1.5 数码管显示电路及其模块(6) 累加器逻辑电路总图、下载电路及管脚分配电路:图1.6 累加器电路总图2.设计选题C:自动售票机(1)500Hz分频电路及其模块如图1.3所示。
(2)消抖电路及其模块如图1.4所示。
(3)钱币的输入及邮票的设置电路:图2.1 数据输入电路及其模块(4)数据比较电路:图2.2 数据比较电路及其模块(5)减法找零电路:图2.3 减法找零电路及其模块(6)累加器电路:图2.4 累加器电路及其模块其中,累加器电路中用到的“leijia”模块和“SHIWEI”模块均来自于设计选题A:累加器。
(7)3s计数器电路:图2.5 3s计数器电路及其模块(8)数码管显示电路:图2.6 数码管显示电路及其模块(9)彩灯显示电路:图2.7 彩灯显示电路及其模块(10)自动售票机逻辑电路总图、下载电路及管脚分配电路图2.7 自动售票机电路总图二、实验数据及结论1.设计选题A:累加器(1)仿真波形①CLK为时钟信号,CLRN为异步清零端,A1/A2/A3/A4为四位BCD码输入,QD/QC/QB/QA为低四位累加结果,C为进位输出,ENP为使能端。
从仿真波形可以看出当CLRN和ENP都为高电平时,累加器正常工作,行使累加的功能;当ENP为低电平时,输出处于保持状态,当ENP回到高电平时,输出继续累加;当CLRN为低电平时,输出清零,当CLRN回到高电平时,输出从新开始累加。
图2.11 个位加法电路波形仿真②CLK为信号输入端,CLRN为异步清零端,ENP为使能端,QD/QC/QB/QA为累加结果的高四位输出,BAOJING为累加溢出时的报警信号。
EDA 实验2简单分频时序逻辑电路设计 实验报告
时序电路设计实验目的:1.掌握条件语句在简单时序模块设计中的使用。
2.学习在Verilog模块中应用计数器。
实验环境:Windows 7、MAX+PlusⅡ10等。
实验内容:1.模为60的8421BCD码加法计数器的文本设计及仿真。
2.BCD码—七段数码管显示译码器的文本设计及仿真。
3.用For语句设计和仿真七人投票表决器。
4.1/20分频器的文本设计及仿真。
实验过程:一、模为60的8421BCD码加法计数器的文本设计及仿真:(1)新建文本:选择菜单File下的New,出现如图5.1所示的对话框,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。
图5.1 新建文本(2)另存为Verilog编辑文件,命名为“count60.v”如图5.2所示。
(3)在编辑窗口中输入程序,如图5.3所示。
图5.2 另存为.V编辑文件图5.4 设置当前仿真的文本设计图5.3 模为60的8421BCD码加法计数器的设计代码(4)设置当前文本:在MAX+PLUS II中,在编译一个项目前,必须确定一个设计文件作为当前项目。
按下列步骤确定项目名:在File菜单中选择Project 中的Name选项,将出现Project Name 对话框:在Files 框内,选择当前的设计文件。
选择“OK”。
如图5.4所示。
(5)打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler 项,即出现如图5.5的编译器窗口。
图5.5 编译器窗口选择Start即可开始编译,MAX+PLUS II编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。
(6)建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“Waveform Editor File”,单击OK后将出现波形编辑器子窗口。
(7)仿真节点插入:选择菜单Node下的Enter Nodes from SNF选项,出现如图5.6所示的选择信号结点对话框。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
六分频加法电路的设计1相关原理分析1.1计数器计数器是实现分频电路的基础,计数器包括普通计数器和约翰逊计数器两种,这两种电路均可用于分频电路中。
最普通的计数器莫过于加法(减法)计数器。
以3位二进制计数器为例,计数脉冲CP 通过计数器时,每输入一个计数脉冲,计数器的最低位(记为Q0,后面的依次记为Q1、Q2、)翻转一次,Q1、Q2、都以前一级的输出信号作为触发信号。
分析这个过程,不难得出输出波形。
图1-1 3位二进制计数器时序图由上很容易看出Q0 的频率是CP的1/2,即实现了2分频,Q1则实现了4分频,同理Q2实现了8分频。
这就是加法计数器实现分频的基本原理。
约翰逊计数器是一种移位寄存器,采用的是把输出的最高位取非,然后反馈送到最低位触发器的输入端。
约翰逊计数器在每一个时钟下只有一个输出发生变化。
同样以3为二进制为例。
假设最初值或复位状态是000,则依次是000、001、011、111、110、100、000这样循环。
由各位的输出可以看出,约翰逊计数器最起码能实现2分频。
1.2两种计数器的比较从以上分析可以看出约翰逊计数器没有充分有效地利用寄存器的所有状态,而且如果由于噪声引入一个无效状态,如010,则无法恢复到有效循环中去,需要加入错误恢复处理。
但其较之加法计数器也有它的好处。
同一时刻,加法计数器的输出可能有多位发生变化,因此当使用组合逻辑对输出进行译码时,会导致尖峰脉冲信号。
而约翰逊计数器可以避免这个问题。
1.3 计数器的选择本次训练要求设计的是加法分频电路,选择的是加法计数器。
加法计数器实现分频较之约翰逊计数器简单,编程也容易理解一些,对于初学者也较容易上手。
在前面已经讲过加法计数器实现2n的分频的方法,现在就不在赘述。
1.4 偶数分频器如前所述,分频器的基础是计数器,设计分频器的关键在于输出电平翻转的时机。
偶数分频最易于实现,要实现占空比为50%的偶数N分频,一般来说有两种方案:一是当计数器计数到N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输出为0到N/2-1时,时钟输出为0或1,计数器输出为N/2到N-1时,时钟输出为1或0,当计数器计数到N-1时,复位计数器,如此循环下去。
可以根据以上两种方案设计电路和程序。
2 六分频加法电路2.1 电路的结构设计前面已经讲到过关于2n分频可以直接通过计数器获得。
而对于一些非2的整数次幂的分频,如本次课设的6分频,还需要在基本计数器电路描述中加上复位控制电路。
图2-1 加法分频电路的RTL视图2.2 电路的程序设计由偶数分频器的设计原理我们可以得到两种设计方案:1)当计数器计数到2的时候,将输出电平取反,同时给输出电路一个复位信号,如此循环,这就是第一种方案;2)当计数器输出为0到2时,时钟输出为0(或1),而当计数器输出为3到5时,时钟输出为1(或0),且当计数器输出为5时,复位计数器,如此循环下去,此为第二种方案。
根据以上方案,设计出的程序如下:--filename clk_div1.vhd--description: 占空比为50%的6 分频Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all ;entity clk_div1 is --定义实体clk_div1port(clk_in: in std_logic; clk_out: out std_logic); --定义输入输出端口end clk_div1;--第一种方案architecture a of clk_div1 issignal clk_outQ: std_logic : ='0';--赋初始值仅供仿真使用signal countQ: std_logic_vector (2 downto 0) := "000";beginprocess(clk_in)beginif(clk_in'event and clk_in = '1') then --检测信号的上升沿if(countQ /= 2) thenCountQ <= CountQ + 1; --判断计数器是否计数到2,没有就加1elseclk_outQ <= not clk_outQ; --计数器计数到2,取反CountQ <= (others=>'0');end if;end if;end process;clk_out <= clk_outQ; --计数器没有技术到2,保留原值end a;--第二种方案architecture b of clk_div1 issignal countQ: std_logic_vector(2 downto 0);beginprocess(clk_in)beginif(clk_in'event and clk_in = '1') then --检测时钟信号的上升沿if (countQ < 5) thencountQ <= countQ + 1; --计数器是否计数到5,没有则加1 elsecountQ <='0'; --计数器计数到5,复位end if;end if;end process;process(countQ)beginif(countQ < 3) thenclk_out <= '0'; --计数器没有计数到3,则令计数器为0elseclk_out <= '1';--计数器计数到3以上,则令计数器为1end if;end process;end b;configuration cfg of clk_div1 is --把a配置到机构体clk_div1for aend for;end cfg;2.3仿真结果两种方案得到的结果相同,具体结果见下图:图2-2 仿真结果2.4 方案比较第一种方案的适用性不强,不及第二种方案,它仅仅能实现占空比为50%的分频器。
第二种方案则可以有限度的调整占空比,通过调节输出段来实现。
如调节计数器,当计数器计数到0到3时,时钟输出为0(或1),当计数器计数到4到5是,时钟输出为1(或0),当计数器计数到5时,复位计数器,如此循环。
本次课设没有特别要求考虑占空比,所以两种方案都可以。
第一种方案是大家最容易想到,也是最容易理解的一种,实现起来的思路也比较明朗。
第二种方案也比较容易理解,但是它最大的优点是能有限度的调整占空比。
在实际的应用中可操作性更强,更适合实际的需要。
3 流程图3.1方案一流程图图3-1 方案一流程图开始初始化计数器检测时钟信号的上升沿判断:countQ=2?对clk_outQ 取反,同时计数器归0计数器countQ+1输出clk_outQYN3.2 方案二流程图图3-2 方案二流程图开始检测时钟信号的上升沿判断:countQ=5?计数器复位计数器countQ+1判断:countQ<3?输出countQ 为111输出countQ 为000NYNY4程序说明4.1 VHDL语言重点语句说明(1)Entity:实体,是VHDL语言程序设计的基本组成部分之一。
用来描述设计实体的外部接口信号(即输入/输出信号)。
实体中的每一个I/O信号被称为端口,其功能对应于电路图符号的一个引脚。
端口说明则是对一个实体的一组端口的定义,即对基本设计实体与外部接口的描述。
端口是设计实体和外部环境动态通信的通道。
实体的一般格式为:ENTITY 实体名IS[类属参数说明];[端口说明];END;(2)Architecture:结构体,也是VHDL语言程序设计的基本组成部分之一。
用来描述实体的内部结构和逻辑功能。
结构体的一般格式如下:ARCHITECTURE 结构体名OF 实体名IS[结构体说明部分];BEGIN[功能描述语句] ;END [ARCHITECTURE] 结构体名;(3)Process:进程。
PROCESS语句是一种并发处理语句,在一个构造体中多个PROCESS语句可以同时并发运行。
PROCESS语句是VHDL中描述硬件系统并发行为的最常用、最基本的语句。
进程语句的一般格式为;[进程名:] PROCESS (敏感信号表)[进程说明语句]BEGIN顺序描述语句;END PROCESS [进程名];(4)Library:库,是经编译后的数据的集合。
库是用来放置可编译的设计单元(它存放包定义、实体定义、构造定义和配置定义)的地方,通过其目录可查询和调用。
VHDL中的库大致可归纳为5种:IEEE库、STD库、ASIC矢量库、WORK库和用户定义库。
IEEE库:常用的资源库。
IEEE库包含经过IEEE正式认可的STD_LOGIC_1164包集合和某些公司提供的一些包集合,如STD_LOGIC_ARITH(算术运算包集合)等。
STD库:VHDL的标准库。
库中存放有称为“standard”的标准包集合,其中定义了多种常用的数据类型,均不加说明可直接引用。
(5)Configuration:配置。
配置语句描述了层与层之间的连接关系,以及实体与构造体之间的连接关系。
(一个实体(ENTITY)可以有多个构造体)设计者可以利用配置语句选择不同的构造体,使其与要设计的实体相对应;在仿真某一个实体时,可以利用配置选择不同的构造体进行性能对比实验,以得到性能最佳的构造体。
配置的基本格式为:CONFIGURATION 配置名OF 实体名ISFOR 选配结构体名END FOR;END 配置名;4.2程序中主要语句说明本次课设中重点用到的语句莫过于If语句的使用了,现在具体说明一下此语句的用法细则。
IF语句是根据所指定的一种或多种条件来决定执行哪些语句的一种重要顺序语句,因此也可以说成是一种控制转向语句。
(1)跳转控制。
格式如下:IF 条件THEN顺序语句;END IF;当程序执行到IF语句时,先判断IF语句指定的条件是否成立。
如果成立,IF语句所包含的顺序处理语句将被执行;如果条件不成立,程序跳过IF语句包含的顺序语句,而执行END IF语句后面的语句,这里的条件起到决定是否跳转的作用。
(2)二选一控制。
格式如下:IF 条件THEN顺序语句;ELSE顺序语句;END IF;根据IF所指定的条件是否成立,程序可以选择两种不同的执行路径,当条件成立时,程序执行THEN和ELSE之间的顺序语句部分,再执行END IF之后的语句;当IF语句的条件不成立时,程序执行ELSE和END IF之间的顺序语句,再执行END IF之后的语句在本次课设中的应用举例:if(clk_in'event and clk_in = '1') then --检测时钟信号的上升沿if (countQ < 5) thencountQ <= countQ + 1; --判断计数器是否计数到5,没有则加1 elsecountQ <='0'; --计数器计数到5,复位end if;end if;以最外面的If而论,它使用的是第一种作用,即跳转控制,只对时钟信号的上升沿起作用。