永发信息网

verilog语言实现000110111101000010100010序列检测,并功能仿真

答案:2  悬赏:50  手机版
解决时间 2021-12-16 22:23
急!用verilog语言实现0001 1011 1101 0000 1010 0010序列检测,并功能仿真,在网上查了一下,都是用状态机做,可是这要有多少种状态啊!有没有简单的程序,只有实现检测功能就行,谢谢了~
最佳答案
如果固定为这个序列的话你可以直接看成检测6个16进制的数只需要6个状态就可以了。
always@(posedge clk)
if(rst) begin
state<= 0;
right<= 0; end
else begin
case(state)
0:begin
if(input==4'h1) state<=1;
else state<= 0; end
1: begin
if(input==4'hb) state<= 2;
esle state<= 0; end
... ...
5: begin
if(input==4'h2)begin
state<= 0;
right<= 1; end
else state<= 0; end
endcase end

当然这只是用于你上面列的序列。
全部回答
这种写法是不可综合的.因为cnt会始终接地. 从仿真语意上中间部分的语意是: 遇到in的上升沿cnt就递增.但是如果cnt等于4的时候就会清零,并且翻转out的取值. 这里并未对out做初始化所以是x 作者想要完成的是一个倍频器 in跳变5次out就会翻转一次,out的周期是in的10倍. 正确的做法是: module fen10(in,rst,out);//10fen input in; input rst; output reg out; reg [2:0] cnt; always@(posedge in or posedge rst) begin if(rst) begin cnt <= 3'd0; out <= 1'b0; end else begin if(cnt<3'd4) cnt<=cnt+3'd1; else begin out<=~out; cnt<=3'd0; end end end endmodule
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
幼儿园晨检后幼儿进教室用什么消毒液泡手
电脑出现应用程序发生异常怎么办
我快退休了,但医保还要交可以按月交吗
澳柯玛空调不制冷外机不滴水什么原因
想买个网络电视盒子大家推荐一下哪个好?
琅琊榜54集中霓凰是不是发现了林殊活不久
任德华为葆发康代言了吗
我新买的电脑是windows10系统怎样操作系统
猫崽被发现猫妈会换地方么
Qt中如何在QTabWidget上添加QButtonGroup和La
杭州到南浔怎么走?
房屋产权人去世后做更名都需要什么手续
葡萄如何施用生物菌肥
故宫旅游.锣鼓震天.双喜临门.打3个阿拉伯的数
嘟拉嘟拉童装怎么样呢?
推荐资讯
收到95588发的短信:您尾号xxxx的工商银行卡
梨园头村委会办公位置在哪啊?好找么?
快递有没有打包木条帮你打包?
测液体比热容实验过程中不考虑温度计的体积,
韩国为什么不拍一个韩版的《还珠格格》
博朗剃须刀上面的铝网膜哪里有配,大概多少钱
元石派出所位置在什么地方啊,我要过去办理业
What are people wearing in the 21 st centu
The speaker tried hard to make the people
齐齐哈尔火车站附近网吧包宿多钱?
脑梗塞的症状
”继续”的英文怎么说
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?