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

如何在电脑建设网站网站建设资料

如何在电脑建设网站,网站建设资料,成品网站 代理,网络培训平台建设方案⭐本专栏针对FPGA进行入门学习#xff0c;从数电中常见的逻辑代数讲起#xff0c;结合Verilog HDL语言学习与仿真#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计#xff0c;对状态机FSM进行剖析与建模。 #x1f525;文章和代码已归档至【Github仓库#xf… ⭐本专栏针对FPGA进行入门学习从数电中常见的逻辑代数讲起结合Verilog HDL语言学习与仿真主要对组合逻辑电路与时序逻辑电路进行分析与设计对状态机FSM进行剖析与建模。 文章和代码已归档至【Github仓库hardware-tutorial】需要的朋友们自取。或者关注公众号【AIShareLab】回复 FPGA 也可获取。 文章目录状态图的建立过程状态图描述方法单个always块描述状态机的方法尽量避免两个always块描述状态机的方法推荐写法使用三个always块分别描述三种描述方法比较状态图的建立过程 设计一个序列检测器电路。功能是检测出串行输入数据Sin中的4位二进制序列0101自左至右输入当检测到该序列时输出Out1没有检测到该序列时输出Out0。注意考虑序列重叠的可能性如010101相当于出现两个0101序列。 解首先确定采用米利型状态机设计该电路。因为该电路在连续收到信号0101时输出为1其他情况下输出为0所以采用米利型状态机。 其次确定状态机的状态图。根据设计要求该电路至少应有四个状态分别用S1、S2、S3、S4表示。若假设电路的初始状态用S0表示则可用五个状态来描述该电路。根据分析可以画出图(a)所示的原始状态图。 观察该图可以看出S2、S4为等价状态可用S2代替S4于是得到简化状态图。 然后根据上面的状态图给出该状态机的输出逻辑。该状态机只有一个输出变量Out其输出逻辑非常简单直接标注在状态图中了。若输出变量较多则可以列出输出逻辑真值表。 最后就可以使用硬件描述语言对状态图进行描述了。 状态图描述方法 利用Verilog HDL语言描述状态图主要包含四部分内容 利用参数定义语句parameter描述状态机中各个状态的名称并指定状态编码。例如对序列检测器的状态分配可以使用最简单的自然二进制码其描述如下 parameter S02b00, S12b01, S2 2b10, S3 2b11;或者 parameter [1:0] S02b00, S12b01, S2 2b10, S3 2b11;用时序的always 块描述状态触发器实现的状态存储。 使用敏感表和case语句(也可以采用if-else等价语句)描述的状态转换逻辑。 描述状态机的输出逻辑。 描述状态图的方法多种多样下面介绍几种 单个always块描述状态机的方法尽量避免 用一个always块对该例的状态机进行描述其代码如下 module Detector1 ( Sin, CP, nCR, Out) ;input Sin, CP, nCR; //声明输入变量output Out ; //声明输出变量reg Out; reg [1:0] state; // 声明两个状态触发器变量state[1]和state[0]记忆电路现态 //The state labels and their assignments parameter [1:0] S02b00, S12b01, S2 2b10, S3 2b11; always (posedge CP or negedge nCR) begin if (~nCR) state S0; //在nCR跳变为0时异步清零 elsecase(state) S0: begin Out 1’b0; state (Sin1)? S0 : S1; endS1: begin Out 1’b0; state (Sin1)? S2 : S1; endS2: begin Out 1’b0; state (Sin1)? S0 : S3; end S3: if (Sin1) begin Out 1’b1; state S2; endelse begin Out 1’b0; state S1; end endcase end endmodule严格地说对序列检测器电路用单个always块的描述方法所描述的逻辑存在着一个隐含的错误即输出信号Out的描述。 case语句中对输出向量的赋值应是下一个状态输出这点易出错状态向量与输出向量都由寄存器实现面积大不能实现异步米勒状态机。因此单个always块描述状态机的写法仅仅适用于穆尔型状态机。单个always块写法的电路结构框图可以用下图进行概括。 两个always块描述状态机的方法推荐写法 用两个always块对该例的状态机进行描述其代码如下 module Detector2 ( Sin, CP, nCR, Out) ; input Sin, CP, nCR; //定义输入变量 output Out ; //定义输出变量 reg Out; reg [1:0] Current_state, Next_state; parameter [1:0] S02b00, S12b01, S2 2b10, S3 2b11; //状态转换时序逻辑always (posedge CP or negedge nCR ) begin if (~nCR)Current_state S0; //异步清零 elseCurrent_state Next_state; //在CP上升沿触发器状态翻转end//下一状态产生和输出信号组合逻辑 always ( Current_state or Sin) begin Next_state 2’bxx; Out1’b 0;case(Current_state )S0: begin Out 1’b0; Next_state (Sin1)? S0 : S1; endS1: begin Out 1’b0; Next_state (Sin1)? S2 : S1; endS2: begin Out 1’b0; Next_state (Sin1)? S0 : S3; end S3: if (Sin1)begin Out 1’b1; Next_state S2; endelsebegin Out 1’b0; Next_state S1; end endcaseend endmodule用两个always块描述状态机的写法是值得推荐的方法之一两个always块写法的电路结构框图可以用下图进行概括。 两个always块写法的电路结构框图概括。 第一个always模块采用同步时序逻辑方式描述状态转移中间方框; 第二个always模块采用组合逻辑方式描述状态转移规律第一个方框和描述电路的输出信号第三个方框。 使用三个always块分别描述 即第一个always模块采用同步时序逻辑方式描述状态转移中间方框; 第二个always模块采用组合逻辑方式描述状态转移规律第一个方框; 第三个always模块描述电路的输出信号在时序允许的情况下通常让输出信号经过一个寄存器再输出保证输出信号中没有毛刺。 用三个always块对该例的状态机进行描述其代码如下 module Detector3 ( Sin, CP, nCR, Out) ;input Sin, CP, nCR; //定义输入变量output Out ; //定义输出变量reg Out; reg [1:0] Current_state, Next_state;parameter [1:0] S02b00, S12b01, S2 2b10, S3 2b11; //状态转换时序逻辑 always (posedge CP or negedge nCR )beginif (~nCR)Current_state S0; //异步清零elseCurrent_state Next_state; //在CP上升沿触发器状态翻转end //下一状态产生组合逻辑 always ( Current_state or Sin) begin Next_state 2’bxx; case(Current_state )S0: begin Next_state (Sin1)? S0 : S1; endS1: begin Next_state (Sin1)? S2 : S1; endS2: begin Next_state (Sin1)? S0 : S3; end S3: if (Sin1)begin Next_state S2; endelsebegin Next_state S1; end endcaseend /* 输出逻辑: 让输出信号经过一个寄存器再输出可以消除Out信号中的毛刺时序逻辑*/ always (posedge CP or negedge nCR )beginif (~nCR) Out 1’b 0;else begin case(Current_state )S0, S1, S2: Out 1’b0; S3: if (Sin1) Out 1’b1; else Out 1’b0; endcaseend end endmodule三种描述方法比较 1-always2-always3-always结构化设计否是是代码编写/理解不宜理解难宜宜输出信号寄存器输出组合逻辑输出寄存器输出不产生毛刺产生毛刺不产生毛刺面积消耗大最小小时序约束不利有利有利可靠性、可维护性低较高最高后端物理设计不利有利有利 参考文献 Verilog HDL与FPGA数字系统设计罗杰机械工业出版社2015年04月Verilog HDL与CPLD/FPGA项目开发教程(第2版), 聂章龙, 机械工业出版社, 2015年12月Verilog HDL数字设计与综合(第2版), Samir Palnitkar著夏宇闻等译, 电子工业出版社, 2015年08月Verilog HDL入门(第3版), J. BHASKER 著 夏宇闻甘伟 译, 北京航空航天大学出版社, 2019年03月
http://www.hkea.cn/news/14496993/

相关文章:

  • 如何安装网站程序公司以前做的免费网站太多 新网站搜索不到
  • 开题报告风景区网站开发推广公司有哪些
  • 企业建站公司平台seo外链怎么做
  • 江苏盐城网站建设大型门户网站建设的意义
  • 梅州建站网络科技有限公司专业做网站优化价格
  • wix网站做seo如何网站开发软件要求
  • 中山精品网站建设流程名作之壁吧网站建设
  • 网站建设合作流程图西安比较厉害的软件公司
  • 请网站制作公司费用郑州人才市场网站
  • 徐州中小企业网站制作湘西北京网站建设
  • 建设工程合同备案网站龙岩做网站价格
  • 中国有没有做的好的网站河南郑州天气预报15天
  • 太原站建设有多长时间手工制作冰墩墩
  • 西安网站建设罗鑫长沙企业网站建设服务
  • 建站模板大全浅谈学校网站建设
  • 免备案php网站空间加工设备网
  • 建设论坛网站用什么cms台州关键词首页优化
  • 珠海网站建设策划方案团员个人信息查询系统
  • 网站设计代码案例网站建设设计公司类网站织梦模板 带手机端
  • 企业网站模板php苏州建设工程质量监督网站
  • 天河做网站哪家强wordpress中collapse
  • 外卖网站怎么做销量网站建设推广 seo
  • 网站策划方案ppt深圳网站制作公司电话
  • 商品小程序怎么制作seo 新旧网站 两个域名
  • wordpress 采集公众号小吴seo博客
  • 网站域名注册信息网站中木马怎么办
  • 找大学生做家教去哪个网站找好娄底网站建设开发
  • 菏泽网站建设服务自己做投票网站怎么弄
  • 上海制作网站公司贵阳网站维护培训
  • minecraft做图网站口碑优化seo