




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇报总结1、偶数分频偶数倍分频相对简单,可以通过计数器对预分频的脉冲沿计数实现,如果要进行N倍〔N为整数〕偶数分频,可由预分频的时钟触发计数器计数,当计数器从0计数到N/2—1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数,以此循环下去。分频的主体程序如下:`definediv_en8modulefreq_div_even(clk_in,reset,clk_out);inputclk_in;inputreset;outputclk_out;regclk_out;reg[2:0]count;initialbegincount=0;clk_out=0;endalways@(posedgeclk_in)beginif(!reset)begin count<=0; clk_out<=0; endelse if(count==(`div_en/2-1))begin clk_out<=~clk_out; count<=0; end elsebegin count<=count+1; endendendmodule下面定义N为8,对一个脉冲8分频,测试程序如下:`timescale1ns/1nsmoduletestbench;regreset;regclk_in;reg[2:0]count;wireclk_out;freq_div_eventest(.clk_in(clk_in),.reset(reset),.clk_out(clk_out));initialbeginreset=0;clk_in=0;#5reset=1;endalways#10clk_in=~clk_in;endmodule波形图如下:2、奇数分频对于对占空比没有特殊要求的奇数分频,需要对上升沿和下降沿脉冲进行计数,利用下降沿产生的波形移相半个输入脉冲的作用,最后用错位“异或〞法实现。一个n(n=3)分频的程序如下:moduleclk_divN(clk_in,reset,clk_out); inputclk_in; inputreset; outputclk_out; integercnt1,cnt2; regclk_divp; regclk_divn; parametern=3; always@(posedgeclk_in)begin if(!reset)begin clk_divp<=0;cnt1<=0;end else if(cnt1==(n-1)) cnt1<=0; else if(cnt1==0|cnt1==(n-1)/2)begincnt1<=cnt1+1; clk_divp<=~clk_divp;endelsecnt1<=cnt1+1; end always@(negedgeclk_in)beginif(!reset)begin clk_divn<=0;cnt2<=0;endelseif(cnt2==(n-1))cnt2<=0;elseif(cnt1==0|cnt1==(n-1)/2)begincnt2<=cnt2+1;clk_divn<=~clk_divn;end elsecnt2<=cnt2+1;end assignclk_out=clk_divp|clk_divn;endmodule测试程序如下:`timescale1ns/1nsmoduleclk_div3_tb; regclk_in; regreset;wireclk_out; clk_divNuut(.clk_in(clk_in),.reset(reset),.clk_out(clk_out)); initialbegin clk_in=0; reset=0; #10reset=1;end always#5clk_in=~clk_in;endmodule3分频、5分频和7分频仿真波形分别如下:3分频5分频7分频3、状态机状态机分为两种、一种称为Mealy状态机,它的时序逻辑输出不但取决于状态还取决于输入;另外一种称为Moore状态机,它的输出只取决于当前的状态。实际的设计工作中大局部都是Mealy状态机。有限状态机设计一般步骤:1、逻辑抽象,得出状态转换图;2、状态化简;3、状态分配;4、选定触发器的类型并求出状态方程、驱动方程和输出方程;5、按照方程得出逻辑图。FSM的描述方法有3中:1、在1个always模块里面,该模块中既描述状态转移,又描述状态的输入和输出,这种写法一般被称为一段式FSM描述方法;2、还有一种写法是将用2个always模块,其中一个always模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律,这种写法被称为两段式FSM描述方法;3、还有一种写法是在两段式描述方法根底上开展出来的,这种写法使用3个always模块,一个always模块采用同步时序描述状态转移;第二个采用组合逻辑判断状态转移条件,描述状态转移规律;第三个always模块使用同步时序电路描述每个状态的输出,这种写法本书称为三段式。三种描述方式的优缺点比拟如下表:表6-13种FSM描述方法比拟表比拟工程一段式描述方法两段式描述方法三段式描述方法推荐等级不推荐推荐最优推荐代码简洁程度(对于相对复杂的FSM)冗长最简洁简洁always模块个数123是否利于时序约束不利于利于利于是否有组合逻辑输出可以无组合逻辑输出多数情况有组合逻辑输出无组合逻辑输出是否利于综合与布局布线不利于利于利于代码的可靠性与可维护度低高最好代码风格的标准性低,任意度较大,格式化标准,格式化标准我们主要学习三段式的FSM描述方法。例如:需要编写下列图所示状态机:现状态输入次状态输出S0(00)0S0(00)00S0(00)1S1(01)00S1(01)0S0(00)01S1(01)1S2(10)01S2(10)0S0(00)10S2(10)1S3(11)10S3(11)0S0(00)11S3(11)1S3(11)11一段式的的程序,如下://state_1paragraph.vmodulestate_1para(reset,clk,x,out);inputreset,clk;inputx;outputout;reg[1:0]out;reg[2:0]Next_state;//NextStateparameter[2:0]//onehotwithzeroidleS0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;always@(posedgeclkornegedgereset)if(!reset)beginNext_state<=S0;out<=2'b00;endelsebeginNext_state<=2'bx;out<=2'b00;case(Next_state)S0:beginif(x==0)beginout<=2'b00;Next_state<=S0;endelsebeginout<=2'b01;//输出要看下一状态Next_state<=S1;endendS1:beginif(x==0)beginout<=2'b00;Next_state<=S0;endelsebeginout <=2'b10;Next_state<=S2;endendS2:beginif(x==0)beginout<=2'b00;Next_state<=S0;endelsebeginout<=2'b11;Next_state<=S3;endendS3:beginif(x==0)beginout<=2'b00;Next_state<=S0;endelsebeginout<=2'b11;Next_state<=S3;endendendcaseendendmodule两段式的程序如下:modulestate_2para(reset,clk,x,out);inputreset,clk;inputx;outputout;reg[1:0]out;reg[2:0]Next_state,Current_state;parameter[2:0]//onehotwithzeroidleS0=2’b00,S1=2’b01,S2=2’b10,S3=2’b11;//描述状态转移,非阻塞方式赋值always@(posedgeclkornegedgereset)if(!reset)Current_state<=S0;elseCurrent_state<=Next_state;//描述状态转移的条件,阻塞方式赋值always@(Current_stateorx)beginNext_state=2’bx;S3_out;case(Current_state)S0:beginS0_out;if(x==0)Next_state=S0;elseNext_state=S1;endS1:beginS1_out;if(x==0)Next_state=S0;elseNext_state=S2;endS2:beginS2_out;if(x==0)Next_state=S0;elseNext_state=S3;endS3:beginS3_out;if(x==0)Next_state=S0;elseNext_state=S3;endendcaseend//定义输出任务taskS0_out;out=2'b00;endtasktaskS1_out;out=2'b01;endtasktaskS2_out;out=2'b10;endtasktaskS3_out;out=2'b11;endtaskendmodule三段式的程序如下:modulestate3(reset,clk,x,out);inputreset,clk;inputx,;outputout;reg[1:0]out;reg[2:0]Next_state,Current_state;parameter[2:0]S0=2’b00,S1=2’b01,S2=2'b10,S3=2’b11;always@(posedgeclkornegedgereset)if(!reset)Current_state<=S0;elseCurrent_state<=Next_state;always@(resetorCurrent_stateorx)//与二段式区别beginNext_state=2’bx;case(Current_state)//注意S0:beginif(x==0)Next_state=S0;elseNext_state=S1;endS1:beginif(x==0)Next_state=S0;elseNext_state=S2;endS2:beginif(x==0)Next_state=S0;elseNext_state=S3;endS3:beginif(x==0)Next_state=S0;elseNext_state=S3;endendcaseenda
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年体育休闲广场健身俱乐部市场分析初步评估报告
- 药品调剂分装管理制度
- 药品间接销售管理制度
- 药店员工奖罚管理制度
- 药店督导各项管理制度
- 菜园农药使用管理制度
- 设备人员技能管理制度
- 设备单独使用管理制度
- 设备技术档案管理制度
- 设备检测检验管理制度
- 2025年全国新高考II卷高考全国二卷真题英语试卷(真题+答案)
- 《老年人认知记忆训练》课件
- 经济法学-001-国开机考复习资料
- 2024年广东省中考生物+地理试卷(含答案)
- 内蒙古自治区安全评价收费指导性意见(试行)(2006年)
- 食品中日文加工用语
- 小班化教育课堂教学.ppt
- ISO 铸件尺寸公差标准 ISO8062
- 巧克力糖自动包装机说明书
- 等效内摩擦角计算表
- 继承不动产登记具结书
评论
0/150
提交评论