在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6904|回复: 5

10010序列码检测器所用的最少状态数是几个

[复制链接]
发表于 2008-12-1 13:15:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
感觉网上的和夏宇文书上的有点多,用了IDLE ,  A , B , C , D , E , F,G
我认为没必要用F,G
笔试是不敢用自己的想法,大家的看法呢?
发表于 2008-12-1 13:35:44 | 显示全部楼层

是不是应该分单一检测还是重复检测阿

如果10010010算俩的话,我觉得后两个状态就不用了,不知道对不对。。
 楼主| 发表于 2008-12-1 16:07:53 | 显示全部楼层

这种笔试题都是可以覆盖的

难道单一的用这个方法,研究研究,
印象中夏宇文用这个方法检测覆盖的

网上的
练练手,用verilog实现序列检测,对输入的数码流中找到10010的子序列。
设x为串行输入的某一位,z为输出。当连续五位输入分别满足10010的时
候,z就为1,否则z为0。时间序列以2nm为周期。
源代码为:

module seqdet(x,z,clk,rst);
input x,clk,rst;
output z;

reg[2:0] state;
wire z;

parameter IDLE = 3'd0,
                                  A = 3'd1,
                                  B = 3'd2,
                                  C = 3'd3,
                                  D = 3'd4,
                                  E = 3'd5,
                                  F = 3'd6,
                                  G = 3'd7;


assign z = (state == D && x == 0)? 1:0;

always @(posedge clk or negedge rst)
               if(!rst)
                                  begin
                                          state<= IDLE;
                                  end
               else
                                  casex(state)
                                  IDLE: if(x==1)
                                               state<= A;
                                          else state<=IDLE;
                                  A:    if(x==0)
                                               state<= B;
                                         else state<=A;
                                 B:     if(x==0)
                                               state<= C;
                                         else state<=F;
                                 C:    if(x==1)
                                               state<= D;
                                         else state<=G;
                                 D:    if(x==0)
                                               state<= E;
                                         else state<=A;
                                 E:    if(x==0)
                                               state<= C;
                                         else state<=A;
                                 F:    if(x==1)
                                               state<= A;
                                         else state<=B;
                                 G:    if(x==1)
                                               state<= F;
                                         else state<=G;
                                 default: state<=IDLE;
                                 endcase
endmodule
发表于 2008-12-1 17:22:28 | 显示全部楼层
后面两个状态可以省的。。
发表于 2008-12-1 23:17:15 | 显示全部楼层
画画状态图
画画卡诺图
可以合并的合并
then
you'll get what you want
发表于 2008-12-5 13:06:32 | 显示全部楼层
其实试试就知道了
其实不要弄得像考试,只有一个标准答案
实现就好,况且就算是多两个状态,也不会增加硬件资源,寄存器不还是3个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 01:36 , Processed in 0.036872 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表