当前位置: 首页 > news >正文

做网站较好的框架/我要安装百度

做网站较好的框架,我要安装百度,动效做的好的网站,动态网站怎么做伪静态网站还记得之前软件的同事说过的一句话。怎么凸显自己的工作量,就是自己给自己写BUG。 看过夏宇闻老师书的都知道,verilog的FSM有moore和mealy,然后有一段,二段,三段式。记得我还是学生的时候,看到这里的时候,感…

还记得之前软件的同事说过的一句话。怎么凸显自己的工作量,就是自己给自己写BUG。

看过夏宇闻老师书的都知道,verilog的FSM有moore和mealy,然后有一段,二段,三段式。记得我还是学生的时候,看到这里的时候,感觉很烧脑。毕竟这与数字电路设计息息相关。

今天我想把问题简单化。只谈mealy型三段式写法。

借用前辈们总结的一句话说:三段式描述方法虽然代码结构复杂了一些,但是换来的优势是使 FSM 做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组,一般来说在 FPGA/CPLD 等可编程逻辑器件上的综合与布局布线效果更佳。

 (闪耀着哲学的光辉......)

//3-paragraph method to describe FSM
//Describe sequential state transition in the 1st sequential always block
//State transition conditions in the 2nd combinational always block
//Describe the FSM out in the 3rd sequential always block
//Verilog Training -- How to write FSM bettermodule state3 ( rst_n,clk,i1,i2,o1,o2,err);input          rst_n,clk;
input          i1,i2;
output         o1,o2,err;
reg            o1,o2,err;reg    [2:0]   NS,CS;//one hot with zero idle
parameter [2:0]      IDLE   = 3'b000;
parameter [2:0]      S1     = 3'b001;
parameter [2:0]      S2     = 3'b010;
parameter [2:0]      ERROR  = 3'b100;//1st always block, sequential state transition
always @(posedge clk or negedge rst_n)if (!rst_n)            CS <= IDLE;        else                  CS <=NS;           //2nd always block, combinational condition judgment
always @ (rst_n or CS or i1 or i2)beginNS = 3'bx;case (CS)IDLE:     beginif (~i1)           NS = IDLE;if (i1 && i2)      NS = S1;if (i1 && ~i2)     NS = ERROR;endS1:       beginif (~i2)           NS = S1;if (i2 && i1)      NS = S2;if (i2 && (~i1))   NS = ERROR;endS2:       beginif (i2)            NS = S2;if (~i2 && i1)     NS = IDLE;if (~i2 && (~i1))  NS = ERROR;endERROR:    beginif (i1)            NS = ERROR;if (~i1)           NS = IDLE;endendcaseend//3rd always block, the sequential FSM output
always @ (posedge clk or negedge rst_n)if (!rst_n){o1,o2,err} <= 3'b000;elsebegin{o1,o2,err} <=  3'b000;case (NS)IDLE:  {o1,o2,err}<=3'b000;S1:    {o1,o2,err}<=3'b100;S2:    {o1,o2,err}<=3'b010;ERROR: {o1,o2,err}<=3'b111;endcaseendendmodule

同样这段代码也很好理解:

module FSM(clk,clr,out,start,step2,step3);
input				clk;		
input				clr;		
input				start;	
input				step2;	
input				step3;output[2:0]			out;reg[2:0]			out;
reg[1:0]			state,next_state;/*状态编码,采用格雷(Gray)编码方式*/
parameter						state0 = 2'b00;
parameter						state1 = 2'b01; 
parameter						state2 = 2'b11;
parameter						state3 = 2'b10; /*该进程定义起始状态*/
always @(posedge clk or posedge clr) 
begin if (clr) state <= state0; else state <= next_state; 
end/*该进程实现状态的转换*/
always @(state or start or step2 or step3) 
begin case (state)state0: beginif (start) next_state <=state1;else next_state <=state0;endstate1: beginnext_state <= state2;endstate2: beginif (step2) next_state <=state3;else next_state <=state0;endstate3: beginif (step3) next_state <=state0;else next_state <=state3;enddefault: next_state <=state0; /*default语句*/endcase
end/*该进程定义组合逻辑(FSM的输出)*/
always @(state) 
begincase(state)state0: out=3'b001;state1: out=3'b010;state2: out=3'b100;state3: out=3'b111;default:out=3'b001; /*default语句,避免锁存器的产生*/endcase
endendmodule

状态转移图如下:

总结

文章难免会有些水平不足,不正确的地方请大家多多指正,共同进步。

 

http://www.cadmedia.cn/news/579.html

相关文章:

  • dw做的网站/百度快照优化的优势是什么
  • 什么样的网站可以做站内站/新手怎么做销售
  • wordpress拖拽式建站主题/电商培训心得
  • 承德网站建设电话/网站推广技巧
  • 做征婚网站/郴州网站seo外包
  • 连云港网站建设bw263/资阳市网站seo
  • 温州做模具的网站/如何做好网站的推广工作
  • 做网站多少钱角西宁君博特惠/seo属于运营还是技术
  • 手机网站关于我们/最近韩国电影片
  • 网站发布方式有哪些/网络运营具体做什么
  • 网站开发需要英语/品牌网络营销案例
  • 做网站用什么国外的空间比较好/站长工具无忧
  • 专门用来制作网页的软件是什么/seo建站收费地震
  • 可以做游戏的网站有哪些方面/厦门seo排名外包
  • 大气dede织梦企业广告网络公司工作室网站模板源码/网站开发软件
  • 网站后台管理的超链接怎么做/网址搜索引擎
  • 整站优化和关键词优化的区别/百度营销推广官网
  • 内网进销存软件终身免费版/武汉seo排名公司
  • 东莞响应式网站哪里好/广州seo黑帽培训
  • 合肥企业建站系统/北京网站优化指导
  • 做网站 先上线再调整/郑州网络营销公司哪个好
  • 长沙网站免费建站/手机搜索引擎排行榜
  • 光谷软件园网站建设/免费网站推广软件
  • 旅游去过的地方可做标识网站/重庆seo排名
  • 网站banner图尺寸是多少/合肥seo推广排名
  • 企业级网站开发与部署/深圳互联网公司50强
  • 网站专题制作原则/电子商务沙盘seo关键词
  • 信用网站建设成效/网络营销策划书包括哪些内容
  • 服装公司网站建设策划书/蜂蜜网络营销推广方案
  • 义乌网站/百度推广方案