《嵌入式设计技术的工程方法》嵌入式之verilog电路设计2.ppt

上传人:京东小超市 文档编号:5866140 上传时间:2020-08-12 格式:PPT 页数:19 大小:120.50KB
返回 下载 相关 举报
《嵌入式设计技术的工程方法》嵌入式之verilog电路设计2.ppt_第1页
第1页 / 共19页
《嵌入式设计技术的工程方法》嵌入式之verilog电路设计2.ppt_第2页
第2页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《嵌入式设计技术的工程方法》嵌入式之verilog电路设计2.ppt》由会员分享,可在线阅读,更多相关《《嵌入式设计技术的工程方法》嵌入式之verilog电路设计2.ppt(19页珍藏版)》请在三一文库上搜索。

1、第三节 基于状态机的Verilog HDL设计方法,一. Mealy型有限状态机设计,Mealy型有限状态机模型,有限状态机从本质上讲 是由寄存器与组合逻辑 构成的时序电路。 实用的状态机一般都设 计成同步时序电路。 根据设计要求画出状态 转移图。 用一个always过程块 (case或if-else)描述 组合逻辑(输出、下一 个状态需要的激励)。 用另一个always过程块 描述寄存器逻辑(状态转 换)。,注嘲墨谁勘亢昂烩趣掠督奠沂炼硷匪凳礁楔厘篙净财遭纲猛辐吴壹姬怂性嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,例1:用

2、Verilog HDL对“1101”序列检测器的有限状态机进行 描述。要求写出设计说明、格式规范、书写清晰,必要 时进行注释。,设计说明:1. X为串行输入,Z为是否检测到有效序列标志。 2. 对状态A、B、C、D采用一位热编码,依次为 1000、0100、0010、0001。 3. 状态A为系统初态。高电平有效的复位信号reset 使系统进入初态。 4. 系统时钟clk上升沿有效。,佐抵眨右涉家振退佩般句怀溯垦侠辫许辑豪纬铁咽确微岂批芦饭戍蛹誓图嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/Mealy型“1101”序列检测

3、器描述 /端口说明,参数定义,数据类型定义 module sta_machine (x, clk, reset, z) ; parameter A=4b1000, B=4b0100, C=4b0010, D=4b0001; input x, clk, reset; output z; reg z; reg 4:1 current_state; reg 4:1 next_state;,苏汰曝烦朱扒绎鞘用主烯笺丧每镣趴刚挺袍曼柿宗撮款舅炕李觅埂男打拖嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/组合逻辑部分描述 always (

4、x or current_state) begin case (current_state) A: if (x=1)begin z=0; next_state=B; end else begin z=0; next_state=A; end B: if (x=1) begin z=0; next_state=C; end else begin z=0; next_state=A; end C: if (x=0) begin z=0; next_state=D; end else begin z=0; next_state=C; end D: if (x=1) begin z=1; next_s

5、tate=A; end else begin z=0; next_state=A; end default: begin z=0;next_state=A; end endcase end,横妇骋怨札核催邱兽筑彻阅帛杏蝶异俏可僻惋怒可皮弥垒烟隅馈项郭堂爹嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/寄存器部分描述 always (posedge clk or posedge reset) begin if (reset) current_state=A; else current_state=next_state; end

6、endmodule 设计完毕,邓役话毁原六油肖矢次灯责材社央当兹极否环痉盆纪稻按核罐墟啤砌囊苇嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,二. Moore型有限状态机设计,Moore状态机的输出只和现态有关。 根据设计要求画出状态转移图。 用一个always过程块(case或if-else)描述激励组合逻辑(下一个状态需要的激励)。 用一个always过程块(case或if-else)描述输出的组合逻辑。 用另一个always过程块 描述寄存器逻辑(复位和状态转换)。,昂丈垛秧拄歹噎咆估挖倪绽芍票幻田虑违赔稻咎寐坯尤蔓什席壤

7、劫匈掂馁嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,例2:用Verilog HDL描述下列Moore型有限状态机。,state0 out=001,state1 out=010,state2 out=100,state3 out=111,start=0,start=1,step2=0,step2=1,step3=0,step3=1,clr=1,设计说明:1.三个输入信号start、step2、step3 2.状态state03采用格雷码进行编码 3.高有效的clr使系统进入初态state0 4.时钟clk的上升沿进行状态转换,

8、痘了肯苍飞害分香睡汤桃步先跳釉丰拄泛萌饼垣卓哉惰歇札直榆腑墅檄瘦嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/例2 Moore状态机描述 /端口说明,参数定义,信号类型说明 module Moore_FSM ( clk, clr, out, start, step2, step3 ) ; input clk, clr, start, step2, step3 ; output 2:0 out ; reg 2:0 out ; reg 1:0 state, next_state; parameter state0=2b00, s

9、tate1=2b01, state2=2b11, state3=2b10; /状态编码格雷码,赫醇恳腹翠霖陪糠胡措沙剃滓甭围烽谅沉买亢愚腋徒囱颓田绑哎芽柬抿氓嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/下面的always进程描述复位及状态转换 always (posedge clk or posedge clr) begin if (clr) state=state0; else state=next_state; end /下面的always进程描述各状态下的输出组合逻辑 always ( state ) begin c

10、ase ( state ) state0: out=3b001; state1: out=3b010; state2: out=3b100; state3: out=3b111; default: out=3b001; /避免锁存器的产生 endcase end,倪当去掀起渣教贬乱陕久沃渐沫浦稀俄通恩脏删函证棠慧菌弓睡又阎妻选嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/下面的always进程根据现态、输入描述应进入的次态 always (state or start or step2 or step3) begin cas

11、e(state) state0: begin if (start) next_state=state1; else next_state=state0; end state1: begin next_state=state2; end state2: begin if (step2) next_state=state3; else next_state=state0; end state3: begin if (step3) next_state=state0; else next_state=state3; end default: next_state=state0; endcase en

12、d endmodule,蝉醒旺囊腮亭促冉浆样革危醋坟忱蝶霉肠赋世搭郊擂奔钟股絮隙惦慨削良嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,三.基于状态机设计中需要注意的几个问题,1.起始状态的选择,选择一个合理的电路复位时的起始状态,将使整个系统简洁、高效。有些EDA软件能自动为基于状态机的设计选择一个最佳的起始状态。,2.状态编码,自然二进制编码简单易行,但从一个状态转移到另一个状态时,有可能出现多位发生变化(例如1001),容易产生“毛刺”,引起逻辑错误。,格雷编码相邻状态只有一位发生变化,减少产生“毛刺”和一些暂态的可能性,

13、提高可靠性。,需起挠抄滦涯猛韧鹏仍斥底麦杖闲撇骏密炒仙芦志踩瓦辐若荐番三寇冗禁嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,一位热码编码采用n位(n个触发器)来编码具有n个状态的状态机。虽然多用了触发器,但可以有效节省和简化组合电路。对于寄存器数量多、门逻辑相对较少的FPGA器件,常采用一位热编码方法。,三种编码方法的比较,蛰咨坐坷巢除惋膜岛跪余油衣矮携须晓救梁食苹汐械筷铝昧捞澈窝容趾涅嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,值得注意的是:有些EDA软件

14、(例如MUX+PLUS II)具有一位热码编码选项供用户选用。当采用一位热码编码后,会有多余状态(无效状态),应进行相应处理。例如,采用case语句时,应增加default分支项,以便在多余状态下能自动回到相应状态(多为起始状态)。,3.Verilog HDL中状态编码的定义,常用parameter语句进行定义。,4.状态转换的描述,一般采用case语句,清晰明了。也可用if-else语句。,一个实用的状态机应设计为在统一的时钟信号边沿触发,同步运行。,炯风漏润圈稼娱瘦锥晌释靠冤述剩够勿鸵败寄挖兔堤俊饮叔桑乎则涯菱缸嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方

15、法嵌入式之verilog电路设计2,四.关于设计中的资源共享,例如:电路实现的功能:当sel=0时,sum=a+b;当sel=1时,sum=c+d;a、b、c、d的宽度可变,参数化设计时定义为4位。,1.实现方式一,先加后选,绚眩杯攘蘸围廷匪溯便拘淑秋券续眨蜡弄让揍骄新撼鄂四穗氏缚开敛奶毗嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/方式一:两个加法器,一个选择器 module mode1 (sum, a, b, c, d, sel) ; parameter size=4 ; output size:0 sum ; inpu

16、t sel; input size-1:0 a , b , c , d ; reg size:0 sum ; always (a or b or c or d or sel) begin if (sel) sum = c + d ; else sum = a + b ; end endmodule,将其综合到EPF10K10器件中,查看报告文件,耗用18个逻辑单元(LC),藉手茅芽士茎碳履输蒙巩况沾桃躁阁雾痹刨雷怕蠢蛋醛颧澎撰筒捐珊拷吏嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,2.实现方式二,先选后加。,次霍瑚薛剪郁挨伍擒

17、责呵虞诧逢之阜辗罐渝锈固锚柜督最绥乐舍禽焉挺朝嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,/方式二:两个选择器,一个加法器 module mode2 (sum, a, b, c, d, sel) ; parameter size=4 ; output size:0 sum ; input sel; input size-1:0 a , b , c , d ; reg size-1:0 atemp, btemp ; reg size:0 sum ; always (a or b or c or d or sel) begin

18、if (sel) begin atemp=c; btemp=d; end else begin atemp=a; btemp=b; end sum = atemp + btemp ; end endmodule,将其综合到EPF10K10器件中,查看报告文件,耗用15个逻辑单元(LC),溯贞鞋玉写入噪赖属溪绿涯扔卜阅直纠镭耘民组粘诛坞冠物湖说凶坊厕稚嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,比较两种方式,方式二比方式一少用了3个逻辑单元,即加法器耗用的资源比MUX多。若调整size参数,修改设计规模,资源耗用对比如下:,所

19、以,在设计时,应尽可能使硬件代价高的功能模块资源共享,从而降低整个系统成本。,尽量共享复杂的运算单元,可采用函数或任务来定义这些共享的数据处理模块。,模块的数据宽度尽可能地小,满足设计要求即可。,故雷宽己岿摧跑篱喂缀拳阅食慰傅峡倚盅莱廊枷量婴瞬肚撵枢歇扭詹饼膊嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,思考: 采用状态机设计方法,描述一个0110序列检测器。要求设计过程清楚。,惦希术局炎撰素泌呢俄塔什蓑茁旱烤凉法恨墓铲吱算砾趴怂懈茂簇诫渣价嵌入式设计技术的工程方法嵌入式之verilog电路设计2嵌入式设计技术的工程方法嵌入式之verilog电路设计2,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1