Verilog设计进阶题库.pptVIP

  • 12
  • 0
  • 约1.06万字
  • 约 36页
  • 2017-07-21 发布于湖北
  • 举报
对于FPGA器件,常用独热码编码。 在Quartus Ⅱ中设置:Assignments/Settings/ Analysis Synthesis Settings/More Settings/Existing option Settings/State Machine Precessing/Setting §8.2.3 状态编码 在Verilog语言中,有两种方式可用于定义状态编码,分别用parameter和define语句实现,比如要为state0、state1、state2、state3四个状态定义码字为:00、01、11、10,可采用下面两种方式。 方式1:用parameter参数定义 parameter tate1=2b00, state2=2b01, state3=2b11, state4=2b10; …… case(state) state1: …; //调用 state2: …; …… 方式2:用define语句定义 define state1 2b00 //不要加分号“;” define state2 2b01 define state3 2b11 define state4 2b10 case(state) state1: …; //调用,不要漏掉符号“” state2: …; …… 要注意两种方式定义与调用时的区别,一般情况下,更倾向于采用方式1来定义状态编码。一般使用case、casez和casex语句来描述状态之间的转换,用case语句表述比用if-else语句更清晰明了。 define S0 4b0001 // 采用One-Hot编码方式,define用语句定义 define S1 4b0010 define S2 4b0100 define S3 4b1000 module fsm2_seq101_onehot(clk,clr,x,z); input clk,clr,x; output reg z; reg[1:0] state; always @(posedge clk or posedge clr) begin if(clr) state=S0; //异步复位,s0为起始状态 else state=nest_staste; end always @(state ) begin case(state) S3: z=1b1; default: z=1b0; endcase end 【例8.6】:“101”序列检测器(One-Hot编码) always @(state or x) begin case(state) S0:begin if(x) next_state=S1; else next_state=S0; end S1:begin if(x) next_state=S1; else next_state=S2; end S2:begin if(x) next_state=S3; else next_state=S0; end S3:begin if(x) next_state=S1; else next_state=S2; end default: state=S0; endcase end endmodule THANKS! 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * 第八章 Verilog 设计进阶 材料与能源学院微电子工程系 第八章 Verilog 状态机设计技术 材料与能源学院微电子工程系 第八章 Verilog 设计进阶 材料与能源学院微电子工程系 第八章 Verilog 设计进阶 材料与能源学院微电子工程系 第八章 Verilog 设计进阶 §8.1 分频器设计 §8.2 Verilog 有限状态机设计 §8.1 分频器设计 分频器是指使输出信号频率为输

文档评论(0)

1亿VIP精品文档

相关文档