文档库 最新最全的文档下载
当前位置:文档库 › 用Verilog_3分频_5分频_7分频

用Verilog_3分频_5分频_7分频

用Verilog_3分频_5分频_7分频
用Verilog_3分频_5分频_7分频

(笔记)用Verilog语言实现奇数倍分频电路 3分频 5分频 7分频

2010年07月01日星期四 15:34

众所周知,分频器是FPGA设计中使用频率非常高的基本设计之一,尽管在目前大部分设计中,广泛使用芯片厂家集成的锁相环资源,如altera的PLL,Xilinx的DLL.来进行时钟的分频,倍频以及相移。但是对于时钟要求不高的基本设计,通过语言进行时钟的分频相移仍然非常流行,首先这种方法可以节省芯片内部的锁相环资源,再者,消耗不多的逻辑单元就可以达到对时钟操作的目的。另一方面,通过语言设计进行时钟分频,可以看出设计者对设计语言的理解程度。因此很多招聘单位在招聘时往往要求应聘者写一个分频器(比如奇数分频)以考核应聘人员的设计水平和理解程度。下面讲讲对各种分频系数进行分频的方法:

第一,偶数倍分频:偶数倍分频应该是大家都比较熟悉的分频,通过计数器计数是完全可以实现的。如进行N倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0

计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。这种方法可以实现任意的偶数分频。

第二,奇数倍分频:奇数倍分频常常在论坛上有人问起,实际上,奇数倍分频有两种实现方法:

首先,占空比不限定时,完全可以通过计数器来实现,如进行三分频,通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到邻近值进行两次翻转,比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。即是在计数值在邻近的1和2进行了两次翻转。这样实现的三分频占空比为1/3或者2/3。

如果要实现占空比为50%的三分频时钟,可以通过待分频时钟下降沿触发计数,和上升沿同样的方法计数进行三分频,然后下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算,即可得到占空比为50%的三分频时钟。这种方法可以实现任意的奇数分频。归类为一般的方法为:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。再者同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。

另外一种方法:对进行奇数倍n分频时钟,首先进行n/2分频(带小数,即等于(n-1)/2+0.5),然后再进行二分频得到。得到占空比为50%的奇数倍分频。下面讲讲进行小数分频的设计方法

第三,小数分频:首先讲讲如何进行n+0.5分频,这种分频需要对输入时钟进行操作。基本的设计思想:对于进行n+0.5分频,首先进行模n的计数,在计数到n-1时,输出时钟赋为‘1’,回到计数0时,又赋为0,因此,可以知道,当计数值为n-1时,输出时钟才为1,因此,只要保持计数值n-1为半个输入时钟周期,即实现了n+0.5分频时钟,因此保持n-1为半个时钟周期即是一个难点。从中可以发现,因为计数器是通过时钟上升沿计数,因此可以在计数为n-1时对计数触发时钟进行翻转,那么时钟的下降沿变成了上升沿。即在计数值为n-1期间的时钟下降沿变成了上升沿,则计数值n-1只保持了半个时钟周期,由于时钟翻转下降沿变成上升沿,因此计数值变为0。因此,每产生一个n+0.5分频时钟的周期,触发时钟都是要翻转一次.

举例:

用Verilog语言写的三分频电路

方法一:

//上升沿触发的分频设计

module three(clkin, clkout);

input clkin;//定义输入端口

output clkout;//定义输出端?

reg [1:0] step1, step;

always @(posedge clkin)

begin

case (step)

2'b00: step<=2'b01;

2'b01: step<=2'b10;

2'b10: step<=2'b00;

default :step<=2'b00;

endcase

end

always @(negedge clkin)

begin

case (step1)

2'b00: step1<=2'b01;

2'b01: step1<=2'b10;

2'b10: step1<=2'b00;

default :step1<=2'b00;

endcase

end

assign clkout=~(step[1]|step1[1]); endmodule

方法二:

// 如果duty cycle =50%, 可以第一个周期第二个周期输出原先clock,第三个周期输出低这样可以实现三分频,

输出是占空比1:1的三分频.

module three(clk,throut) ;

input clk ;

output throut;

reg q1,q2,d,throut;

always @(posedge clk)

if(!d)

q1=1'b1;

else

q1=~q1 ;

always @(negedge clk)

if(!d)

q2=1'b1;

else

q2=~q2 ;

always @(q1 or q2)

d=q1&q2 ;

always @(posedge d)

throut=~throut;

endmodule

用Verilog语言写五分频电路,占空比为50%:module div_5 ( clkin,rst,clkout );

input clkin,rst;

output clkout;

reg [2:0] step1, step2;

always @(posedge clkin )

if(!rst)

step1<=3'b000;

else

begin

case (step1)

3'b000: step1<=3'b001;

3'b001: step1<=3'b011;

3'b011: step1<=3'b100;

3'b100: step1<=3'b010;

3'b010: step1<=3'b000;

default:step1<=3'b000;

endcase

end

always @(negedge clkin )

if(!rst)

step2<=3'b000;

else

begin

case (step2)

3'b000: step2<=3'b001;

3'b001: step2<=3'b011;

3'b011: step2<=3'b100;

3'b100: step2<=3'b010;

3'b010: step2<=3'b000;

default:step2<=3'b000;

endcase

end

assign clkout=step1[0]|step2[0]; endmodule

六分频加法电路的设计

六分频加法电路的设计 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视图

网上下载的一个三分频电路说明

always@( negedge resetn or posedge clk or negedge clk) begin if (resetn==1'b0) begin counter[2:0]<=3'd0; out_clk<=1'b0; end else begin if (counter[2:0]==3'd5) begin counter[2:0]<=3'd0; end else beign counter[2:0]<= counter[2:0]+1; end

//////////////////////////////////////////////////// if (counter[2:0]==3'd5 || counter[2:0]==3'd2) begin out_clk<=~out_clk; end end end 其仿真结果是正确的 这个逻辑无法综合。存在半导体工艺问题。 2.下面给出一个逻辑图。

逻辑是用器件画出来的,保证不存在物理上的实现问题。 仿真图如下: 也许有人要问,既然仿真都是对的,那么为什么要说实际中是80%工作呢? 看到波形图上的clk1(黄色)上的那些毛刺了么,毛刺并不可怕,但是这个电路工作的基础却是那些毛刺,准确地说,那些毛刺是必须有的,是工作过程的比不可少的部份。这样的电路是否能正常工作就很让人匪夷所思了。 我们能不能让电路的正常功能不依赖于毛刺呢? 小结一下: 以上的思路都是试图在输入的clk上做改造,试图在恰当的地 方取正沿,恰当的地方取反沿。但是要知道,这一定会导致竞争和冒险。虽然逻辑上是可性的,但是实践中却没有那么简单。这个时候,我们需要调整一下思路了:

组合逻辑电路的设计题目

1、在一旅游胜地,有两辆缆车可供游客上下山,请设计一个控制缆车正常运行的逻辑电路。要求:缆车A和B在同一时刻只能允许一上一下的行驶,并且必须同时把缆车的门关好后才能行使。设输入为A、B、C,输出为Y。(设缆车上行为“1”,门关上为“1”,允许行驶为“1”) (1) 列真值表;(4分) (2)写出逻辑函数式;(3分) (3)用基本门画出实现上述逻辑功能的逻辑电路图。(5分) 解:(1)列真值表:(3)逻辑电路图: A B C Y 000 001 010 011 100 101 110 111 (2)逻辑函数式: 2、某同学参加三类课程考试,规定如下:文化课程(A)及格得2分,不及格得0分;专业理论课程(B)及格得3分,不及格得0分;专业技能课程(C)及格得5分,不及格得0分。若总分大于6分则可顺利过关(Y),试根据上述内容完成: (1)列出真值表; (2)写出逻辑函数表达式,并化简成最简式; (3)用与非门画出实现上述功能的逻辑电路。 (3)逻辑电路图 A B C Y 000 001 010 011 100 101 110 111 (2)逻辑函数表达式3、中等职业学校规定机电专业的学生,至少取得钳工(A)、车工(B)、电工(C)中级技能证书的任意两种,才允许毕业(Y)。试根据上述要求:(1)列出真值表;(2)写出逻辑表达式,并化成最简的与非—与非形式;(3)用与非门画出完成上述功能的逻辑电路。 解:(1(3)逻辑电路: A B C Y 000 001 010 011 100 101 110 111 (2)逻辑表达式: 最简的与非—与非形式: 4、人的血型有A、B、AB和O型四种,假定输血规则是:相同血型者之间可输出,AB血型者可接受其他任意血型,任意血型者可接受O型血。图1是一个输血判断电路框图,其中A1A0表示供血者血型,B1B0表示受血者型,现分别用00、01、10和11表示A、B、AB和O四种血型。Y 为判断结果,Y=1表示可以输血,Y=0表示不允许输血。请写出该判断电路的真值表、最简与—或表达式,并画出用与非门组成的逻辑图。 输血判断电路框图: 解:(1)真值表:(3)逻辑图: 输入输出 A1A0B1B0Y 0000 0001 0010 0011

EDA交通灯实验报告

实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间。 主干道 图1 路口交通管理示意图 设计要求: (1)采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明

(1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。 因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号:led7s1: 负责红绿灯的显示秒数个位。 led7s2:负责红绿灯的显示秒数十位。 三、设计方案

EDA课程设计(交通灯控制器)

课程设计 年月日

大课程设计任务书 课程EDA技术课程设计 题目交通灯控制器 专业姓名学号 主要内容、基本要求、主要参考资料等 主要内容: 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 基本要求: 1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。 2、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。 4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 主要参考资料: [1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005. [2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006. [3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003. 完成期限2010.3.12 指导教师 专业负责人 2010年3月8日

一、总体设计思想 1.基本原理 计数模块、置数模块、主控制器模块和译码器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。其中,核心部分是主控 2.设计框图 图一.交通灯控制系统的原理框图 图二.交通灯控制器的流程图 脉冲发生器 控制器 译码器 甲车信号灯 乙车信号灯 定时器

分频电路的设计

分频电路的设计 在数字电路的设计中,我们会经常遇到分频电路,而且分频电路输出信号频率的稳定性、精确度与整个电路的稳定性有着很大的关系。本文就一些常用分频电路作一总结。 一、n2分频 众所周知,2分频是最简单的分频,通常用D触发器用作反相器即可以实现2分频,要 想实现n2分频,最简单的方法就是将2分频电路级联,n级联在一起就构成了n2分频。 我们以n=5为例,用MAX+plus II进行仿真,电路如图1所示,我们得到的波形如图2所示: 图1 图2 由波形我们可以看出,该电路能实现32分频,但由于它采用的是行波时钟,Q4的输出t。n越大,延时就越大。 与CLK之间延时为5 co 改进图1的电路,我们可以采用同步计数来实现32分频,如图2所示,其中5BITcounter 是在MAX+plus II中用生成的5位二进制加法计数器。Q4输出就是32分频的信号,波形如图4所示。

图3 图4 t。保证了系统的同由于图3是采用同步计数器,所以每个输出的延时都一样,都为 co 步运行。 同样的道理,若n增大时,我们只要改变计数器的位数即可。 二、2n分频 在数字电路的设计中,2n分频也是经常遇到的。对于2n分频,我们常采用两级分频的方法,第一级用来n分频,第二级用作2分频,这样做的目的就是保证输出信号有50%的占空比,若对占空比无要求则可任意实现n分频。 以n=25为例,在MAX+plus II中,利用构造一个5bit模为25的加法计数器,电路如图5所示,out即为50分频后的输出,波形如图6所示。 图5

图6 从图6可以看出,out 与输入时钟CLK 之间的延时是2co t =6ns 。 三、M N 2分频 在一些特殊的数字电路中,可能会用到M N 2分频,由于分频是小数,我们不可能对输入 信号精确地分频,只能保证输出信号的平均频率与理想的分频频率相等。我们这里以26/3分频为例来介绍这种分频方法。 分析:26/3分频的实质就是在26个CLK 周期内产生3个周期的输出信号。我们还是采用采用两级分频方法,目的是为了保证占空比为50%,第一级分频倍数为13/3,即13个CLK 周期内产生3个周期的输出信号。这样我们构造一个模13的4bit 加法计数器,利用门电路输出三个周期信号,计数器从0计到3时A 输出1,计到7时B 输出1,计到12时C 输出1,将A 、B 、C 三路信号相或就得到我们想要的波形,电路如图7所示,波形如图8所示。 图7

3分频器的设计

三分频器的设计 时钟输入端(clkin)首先反向和不反向分别接到两个D触发器的时钟输入端,两个D触发器的输出接到一个二输入或非门的输入端,或非门的输出反馈到前面两个D触发器的D输入端,并且或非门的输出后面接一二分频器,得到占空比为50%的三分频波形。 图1:图形设计 VHDL程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity fen3 is port (clkin : in std_logic; --时钟输入 qout1 : buffer std_logic; qout2 : buffer std_logic; qout3 : buffer std_logic; clkout : out std_logic --占空比为1/2的三分频输出 ); end fen3; architecture behave of fen3 is begin qout3<=qout1 nor qout2; process(clkin) begin if clkin'event and clkin='1' then --在上升沿触发 qout1<=qout3; end if;

end process; process(clkin) begin if clkin'event and clkin='0' then --在下降沿触发 qout2<=qout3; end if; end process; process(qout3) variable tem:std_logic; begin if qout3'event and qout3='1' then --二分频tem:=not tem; end if; clkout<=tem; end process; end behave; 图3:仿真结果

交通灯控制器的设计

EDA实验报告 一、课程设计题目及要求 题目: 十字路口交通灯 具体要求: 设计一个十字路口得交通灯控制器,能显示十字路口东西、南北两个方向红、黄、绿灯得指示状态。用两组红、黄、绿三种颜色得灯分别作为东西、南北两个方向红、黄、绿等。变化规律为:东西绿灯亮,南北红灯亮——东西黄灯亮,南北红灯亮——东西红灯亮,南北绿灯亮——东西红灯亮,南北黄灯亮——东西绿灯亮,南北红灯亮······,这样循环下去。南北方向每次通行时间为45秒,东西方向每次通行时间为45秒,要求两条交叉道路上得车辆交替运行,时间可设置修改。绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。并要求所有交通灯得状态变化在时钟脉冲上升沿处。 二、实验编程环境 QuartusII 8、0 三、课程设计得详细设计方案 (一)、总体设计方案得描述 1、1、根据交通灯系统设计要求,可以用一个有限状态机来实现这个交通灯控制器。首先根据功能要求,明确两组交通灯得状态,这两组交通灯总共共有四种状态,我们用ST0,ST1,ST2,ST3 来表示: St0表示东西路绿灯亮,南北路红灯亮; St1表示东西路黄灯亮,南北路红灯亮; St2表示东西路红灯亮,南北路绿灯亮; St3表示东西路红灯亮,南北路黄灯亮; 1、2、根据上述四种状态描述列出得状态转换表 1、3、根据状态转换表得到交通灯控制器得状态转移图如图所示。

交通灯控制器得状态转移图 (二)各个模块设计 2、1、控制器模块 控制器模块示意图 其中,clk 为时钟信号,时钟上升沿有效。hold 为紧急制动信号,低电平有效。ared,agreen,ayellow 分别表示东西方向得红灯,黄灯,绿灯显示信号,高电平有效。 bred,bgreen,byellow 分别表示南北方向得红灯,黄灯,绿灯显示信号,高电平有效。 用于控制红绿黄灯得亮暗情况。 2、2、45秒倒计时计数器模块 45秒倒计时计数器模块示意图 其中,CLK 为时钟信号,时钟上升沿有效。EN 为使能端,高电平有效。CR 为紧急制动信号低电平有效。QL{3、、0}就是计数低位。QH{3、、0}就是计数高位。 用于45秒得倒计时计数。 2、3、7位译码器模块 7位译码器模块示意图 其中dat{3、、0}为要译码得信号。a,b,c,d,e,f,g 为译码后得信号。 用于将45秒倒计时计数得信号译码成数码管可以识别得信号。 2、4、50MHZ 分频器模块 50MHZ 分频器模块示意图 其中clk 为50MHZ 时钟信号,时钟上升沿有效。输出clk_out 为1HZ 时钟信号,时钟上升CLK EN CR QL[3、、0] QH[3、、0] OC m45 inst2

实验六--Verilog设计分频器计数器电路答案

实验六 Verilog设计分频器/计数器电路 一、实验目的 1、进一步掌握最基本时序电路的实现方法; 2、学习分频器/计数器时序电路程序的编写方法; 3、进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为4个clock周期的低电平,4个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、建立工程

简单分频时序电路的设计(三分频)

单位:嵌入式系统实验室 姓名:汤晓东 内容:简单分频时序电路的设计(三分频) 时间:2010-7-7 3.练习三 模块源代码: //-------------------文件名div3.v---------------------------------- module div3(clk_in,clk_out,reset ); input clk_in,reset; output clk_out; wire clk_out; integer n1,n2; reg clk1,clk2; always @(posedge clk_in or negedge reset) //检测clk_in的上升沿 begin if (!reset) begin n1=0; clk1<=1'b0; //clk1是对clk_in的三分频 end // 但是占空比为1/3 else if (n1==2) begin n1=0; clk1<=1'b1; end else begin n1=n1+1; clk1<=1'b0; end end always @(negedge clk_in or negedge reset) //检测clk_in的下降沿 begin if (!reset) begin n2=0; clk2<=1'b0; //clk2也是对clk_in的三分频 end else if (n2==2) //占空比为1/3,但是与clk1相差begin //半个时钟周期 n2=0; clk2<=1'b1; end else begin n2=n2+1; clk2<=1'b0; end

实验一组合逻辑电路设计

电子信息工程刘晓旭 2011117147 实验一组合逻辑电路设计(含门电路功能测试) 一.实验目的 1掌握常用门电路的逻辑功能。 2掌握用小规模集成电路设计组合逻辑电路的方法。 3掌握组合逻辑电路的功能测试方法。 二.实验设备与器材 数字电路实验箱一个 双踪示波器一部 稳压电源一部 数字多用表一个 74LS20 二4 输入与非门一片 74LS00 四2 输入与非门一片 74LS10 三3 输入与非门一片 三 .实验任务 1对74LS00,74LS20逻辑门进行功能测试。静态测试列出真值表,动态测试画出波形图,并说明测试的门电路功能是否正常。 2分析测试1.7中各个电路逻辑功能并根据测试结果写出它们的逻辑表达式。 3设计控制楼梯电灯的开关控制器。设楼上,楼下各装一个开关,要求两个开关均可以控制楼梯电灯。 4某公司设计一个邮件优先级区分器。该公司收到有A,B,C,三类邮件,A,类的优先级最高,B类次之,C类最低。邮件到达时,其对应的指示灯亮起,提醒工作人员及时处理。当不同类的邮件同时到达时,对优先级最高的邮件先做处理,其对应的指示灯亮,优先级低的暂不理会。按组合逻辑电路的一般设计步骤设计电路完成此功能,输入输

实验一: (1)74LS00的静态逻辑功能测试 实验器材:直流电压源,电阻,发光二极管,74LS00,与非门,开关,三极管 实验目的:静态逻辑功能测试用来检查门电路的真值表,确认门电路的逻辑功能正确与否 实验过程:将74LS00中的一个与非门的输入端A,B分别作为输入逻辑变量,加高低电平,观测输出电平是否符合真值表描述功能。 电路如图1: 图1 真值表1.1: 实验问题:与非门的引脚要连接正确,注意接地线及直流电源 实验结果:由二极管的发光情况可判断出74LS00 实现二输入与非门的功能 (2)71LS00的动态逻辑功能测试 实验器材:函数发生器,示波器,74LS00,与非门,开关,直流电压源 实验目的:测试74LS00与非门的逻辑功能 实验内容:动态测试适合用于数字系统中逻辑功能的检查,测试时,电路输入串行数

EDA交通灯课程设计(得过优的哦)

EDA交通灯课程设计 姓名:XXX 学号:********* 专业:******* 学院:电气与信息工程学院

1 系统功能设计要求 1. 东西各设有一个绿、黄、红指示灯;一个2位7段数码管(1)南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s; (2)当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。 (3)用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的剩余时间。 3. 能实现正常的倒计时显示功能。能实现总体清理功能,计数器由初始状态开始计数,对应状态的指示灯亮。 2 设计原理 2.1 交通灯控制器的状态转换 根据论文题目要求,将红绿灯的状态转换列成如下表 上表为交通灯控制器的状态转换表

2.2设计方案 1、显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向3个发光二极管。 2、每个方向有一组2位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。 3、控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。 2.2 LED动态显示与频率 由于交通灯需要使用2位7段LED数码管指示通行剩余时间,故采用LED动态扫描方式显示当前时间。 频率设定CLK1k对应的频率为1024hz

3 电路符号 交通控制器的电路符号如图1.3所示。其中,CLK1K为系统时钟信号输入端,SN为禁止通行信号输入通行信号输入端,light0为东西红灯信号输出端,light1为东西黄灯信号输出端,light2为东西绿灯信号输出端,light3为南北红灯信号输出端,light4为南北黄灯信号输出端,light5为南北绿灯信号输出端,led1、led2、led3、led4、为数码管地址选择信号输出端。 4 设计方法 采用文本编辑法,既采用vhdl语言描述交通控制器,代码如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity traffic IS port (clk1k,SN:in std_logic; led1, led2, led3, led4 :out std_logic_vector (3 downto 0); --显示管显示时间用 light:out std_logic_vector (5 downto 0)); --红绿黄灯 end traffic; architecture traffic1 of traffic IS signal S:std_logic_vector (1 downto 0); --状态 signal DXT:std_logic_vector(7 downto 0):=X"01";

分频器的设计2014-1-10 10.29.8

武汉理工大学《微机原理与接口技术》课程设计报告书

号:
0121105830129
课 程 设 计
题 学 专 班 姓
目 院 业 级 名
分频信号发生器的分析与设计 自动化学院 电气工程及自动化 电气 1107 班 成涛 陈静 教授
指导教师
2014 年
01 月
09 日

武汉理工大学《微机原理与接口技术》课程设计报告书
课程设计任务书
学生姓名: 指导教师: 题 目: 成涛 专业班级: 电气 1107 班 陈静 教授 工作单位: 自动化学院 分频信号发生器的分析与设计
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰 写等具体要求) 1. 设:有一输入方波信号 f0(<1MHz) 。要求输出信号:f1=f0/N,N 通过键盘 输入。 2. 画出简要的硬件原理图,编写程序。 3. 撰写课程设计说明书。 内容包括:摘要、 目录、 正文、 参考文献、 附录 (程 序清单) 。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软 件思想,流程,源程序设计及说明等) 、程序调试说明和结果分析、课程设计收 获及心得体会。
时间安排: 12 月 26 日----- 12 月 28 日 查阅资料及方案设计 12 月 29 日----- 01 月 0 2 日 编程 01 月 03 日-----0 1 月 07 日 调试程序 01 月 08 日----- 01 月 09 日 撰写课程设计报告
指导教师签名: 系主任(或责任教师)签名:
年 年
月 月
日 日

基于EDA的交通灯控制系统设计

EDA 课程设计报告书 课题名称 基于EDA 的交通灯控制系统设计 姓 名 陈 勇 学 号 0812201-08 院 系 物理与电信工程系 专 业 电子信息工程 指导教师 田旺兰 讲师 ※※※※※※※※※ ※※ ※ ※ ※ ※ 2008级学生 EDA 课程设计

2011年 6月10日

基于EDA的交通灯控制系统设计 1 设计目的 (1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实验程序,进一步对所学的EDA知识进行掌握与实际应用。 (2)学会在quartusII软件环境中仿真,熟悉软件的基本操作和运行环境。 (3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。 2设计的主要内容和要求 设计一个基于EDA的交通灯控制系统,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。 3 整体设计方案 根据设计要求和系统所具有功能,并参考相关的文献资料,经行方案设计,画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如

图3.1所示。并且可以得出系统的状态图如图3.2所示,其中:S0:支干道没有车辆行驶,支干道绿灯,支干道红灯 S1:支干道有车辆行驶,支干道绿灯,支干道红灯 S2:主干道黄灯,支干道绿灯 S3:主干道红灯,支干道绿灯 S4:主干道红灯,支干道黄灯 图3.1 整体设计方框图

EDA课程设计 交通灯_设计报告

课程设计报告 课程EDA课程设计 题目十字路口交通灯设计 系别物理与电子工程学院 年级08级专业电子科学与技术班级三学号04 06 10 11 学生姓名张崇光张浩赵峰章维 指导教师张惠国职称讲师 设计时间2011.6.18-7.8

目录 前言 (2) 第一章题目 (3) 1.1题目名称 (3) 1.2题目内容及要求 (3) 1.3 题目设计意义 (3) 第二章分析与设计 (4) 2.1交通灯硬件电路控制原理 (4) 2.2交通灯程序设计构想 (4) 2.3程序设计论证 (4) 2.4 系统设计框图 (5) 第三章VHDL程序设计 (6) 3.1系统输入输出端口设计 (6) 3.2系统整体设计 (6) 3.2.1系统控制状态机 (6) 3.2.2 VHDL状态机代码设计 (7) 3.3 红、黄、绿灯控制设计 (9) 3.4 数码管显示模块设计 (11) 第四章系统仿真及功能描述 (13) 4.1 QuartusⅡ时序仿真 (13) 4.2 系统功能描述 (13) 4.2.1工作模式选择 (13) 4.2.2 正常工作模式下的运行状况 (13) 4.2.3 其它工作模式介绍 (14) 第五章总结与体会 (15) 参考文献 (16) 附录 (17)

前言 现代电子产品正在以前所未有的革新速度,向着功能多样化、体积最小化、功耗最低化的方向迅速发展。它与传统电子产品在设计上的显著区别之一就是大量使用大规模可编程逻辑器件,以提高产品性能、缩写产品体积、降低产品消耗;区别之二就是广泛运用现代计算机技术,以提高电子设计自动化程度,缩短开发周期,提高产品竞争力。EDA (Electronic Design Automation,电子设计自动化)技术正是为了适应现代电子产品设计的要求,吸收多学科最新成果而形成的一门新技术。 EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,简称CAD)、计算机辅助工程设计(Computer Assist Engineering Design,简称CAE)和电子设计自动化(Electronic Design Automation,简称EDA)三个发展阶段。 利用EDA技术进行电子系统的设计,具有以下几个特点:○1用软件的方式设计硬件;○2用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;○3设计过程中可用有关软件进行各种仿真;○4系统可现场编程,在线升级;○5整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 EDA技术是一门涉及多学科的综合性技术,内容广泛,所谓EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。 可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。现在,FPGA和CPLD 器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。 FPGA在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。 高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级。结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC机可能跑飞等问题。FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。 由于FPGA/CPLD的集成规模非常大,因此可利用先进的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构无关,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。它几乎可用于任何型号和规模的FPGA/CPLD中,从而使得产品设计效率大幅度提高,可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。

实验六Verilog设计分频器计数器电路答案

实验六V e r i l o g设计分频器/计数器电路 一、实验目的 1、进一步掌握最基本时序电路的实现方法; 2、学习分频器/计数器时序电路程序的编写方法; 3、进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为4个clock周期的低电平,4个clock 周期的高电平),文件命名为。 2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK (上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为。 3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN 为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为。 4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk 上升沿有效,文件命名为。 5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是

时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR 是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。 三、实验步骤 实验一:分频器 1、建立工程 2、创建Verilog HDL文件 3、输入10分频器程序代码并保存 4、进行综合编译 5、新建波形文件 6、导入引脚 7、设置信号源并保存 8、生成网表 9、功能仿真 10、仿真结果分析 由仿真结果可以看出clockout输出5个clock周期的低电平和5个clock 的高电平达到10分频的效果,设计正确。 实验二:十进制加法计数器(异步清零) 1、建立工程 2、创建Verilog HDL文件 3、输入加法计数器代码并保存 4、进行综合编译 5、新建波形文件 6、导入引脚 7、设置信号源并保存 8、生成网表 9、功能仿真 10、仿真结果分析

组合逻辑电路的设计

组合逻辑电路的设计 一.实验目的 1、加深理解组合逻辑电路的工作原理。 2、掌握组合逻辑电路的设计方法。 3、掌握组合逻辑电路的功能测试方法。 二.实验器材 实验室提供的芯片:74LS00与非门、74LS86异或门,74LS54与或非门,实验室提供的实验箱。 三.实验任务及要求 1、设计要求 (1)用与非门和与或非门或者异或门设计一个半加器。 (2)用与非门和与或非门或者异或门设计一个四位奇偶位判断电路。 2、实验内容 (1)测试所用芯片的逻辑功能。 (2)组装所设计的组合逻辑电路,并验证其功能是否正确。 三.实验原理及说明 1、简述组合逻辑电路的设计方法。 (1)分析实际情况是否能用逻辑变量来表示。 (2) 确定输入、输出逻辑变量并用逻辑变量字母表示,作出逻辑规定。 (3) 根据实际情况列出逻辑真值表。 (4) 根据逻辑真值表写出逻辑表达式并化简。 (5) 画出逻辑电路图,并标明使用的集成电路和相应的引脚。 (6) 根据逻辑电路图焊接电路,调试并进一步验证逻辑关系是否与实际情况相符。 2、写出实验电路的设计过程,并画出设计电路图。 (1)半加器的设计 如果不考虑有来自低位的进位将两个1位二进制数相加。 A、B是两个加数,S是相加的和,CO是向高位的进位。 逻辑表达式 S=A’B+A’B=A⊕B CO=AB (2)设计一个四位奇偶位判断电路。 当四位数中有奇数个1时输出结果为1;否则为0。 A, B, C, D 分别为校验器的四个输入端,Y时校验器的输出端

逻辑表达式 Y=AB’C’D’+A’BC’D’+A’B’C D’+A’B’C’D+A’BCD+AB’CD+ABC’D+ABCD’ =(A⊕B)⊕(C⊕D) 四.实验结果 1、列出所设计电路的MULTISM仿真分析结果。 (1)半加器的设计,1-A被加数,2-B加数,XMMI(和数S)XMM2(进位数CO) (2)设计一个四位奇偶位判断电路。

eda课程设计交通灯控制器的设计

题目交通灯控制器的设计 摘要 交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯信号控制器电路简单、可靠性好。本设计可控制2个路口的红、黄、绿三盏灯.让其按特定的规律进行变化。利用QuartusⅡ对设计结果进行仿真,发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。 关键词:交通灯自动控制手动控制

目录 摘要 0 1.概述 (2) 1.1课程设计目的 (2) 1.2 课程设计题目及要求 (2) 1.3 实验环境 (2) 2. 系统总体设计 (2) 2.2系统组成 (3) 3. 系统层次化设计与软件仿真 (3) 3.1 系统时序发生电路 (3) 3.1.2系统时序发生电路clk_gen的仿真输出波形和元件符号 (5) 3.2 红绿灯计数时间选择模块 (5) 3.2.1 VHDL源代码: (6) 3.2.2计数时间选择模块traffic_mux的仿真输出波形和元件符号 (7) 3.3定时控制电路 (7) 3.3.1 VHDL源代码: (7) 3.3.2 定时控制电路count_down的仿真输出波形和元件符号 (9) 3.4 红绿灯信号译码电路 (9) 3.4.1 VHDL源代码 (10) 3.4.2 信号译码电路 (12) 3.5 红绿灯交通控制器顶层电路 (13) 3.5.1 VHDL源代码: (14) 3.5.2 交通控制器顶层电路Traffic_TOP的仿真输出波形和元件符号 (16) 4. 系统硬件仿真 (17) 5.结论与体会 (18) 参考文献 (18)

1.概述 1.1课程设计目的 此次课程设计是根据《VHDL程序设计》这门课程开设的综合设计课程,要求学生利用VHDL编程语言,基于EDA开发平台Quartus 错误!未找到引用源。,设计相应的数字系统,通过对系统进行编程、仿真、调试与实现,体验设计的全过程,进一步加深对所学基础知识的理解,培养学生将理论知识应用于实践的能力、学生自学与创新能力和分析解决实际问题的能力。培养学生设计、绘图、计算机应用、文献查阅、实验研究、报告撰写等基本技能;提高学生独立分析和解决工程实际问题的能力;增强学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。 1.2 课程设计题目及要求 交通灯控制器的设计: 随着各种交通工具的发展和交通指挥的需要,交通灯的诞生大大改善了城市交通状况。要求设计一个交通灯控制器,假设某个交通十字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄灯3种信号灯,红灯亮禁止通行,绿灯亮允许通行。黄灯亮允许车辆有时间停靠到禁止线以外。 在自动控制模式时,主干道(东西)每次放行时间为30s,次干道(南北)每次放行时间为20s,主干道红灯、次干道黄灯、主干道黄灯、次干道红灯持续时间为5s。 绿灯转为红灯时,要求黄灯先亮5s,才能变换运行车道。 要求交通灯控制器有复位功能,并要求所有交通灯的状态变化在时钟脉冲上升沿处。1.3 实验环境 软件仿真采用QuartusII 6.0; 硬件仿真采用KFH-1型CPLD/FPGA实验开发系统; 2. 系统总体设计 根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下述所示的交通信号灯控制器的系统流程图与系统框图。我们选择按照自顶向下的层次化设计方法,整个系统可分为4个模块,系统时序发生电路、红绿灯计数时间选择模块、定时

相关文档