1、wire 3:0 AB;wire 17:xulie u1 (clk, din18, reset, din);schk u2 (din,clk,reset,AB);decl7s u3 (AB,LED7S);endmodule /串行检测:module schk(DIN,CLK,CLR,AB);input DIN,CLK,CLR;output3:reg 3:reg 7:0 Q;parameter idle = 8b00000000, a = 8b00000001, b = 8b00000010, c = 8b00000100, d = 8b00001000, e = 8b00010000, f =
2、 8b00100000, g = 8b01000000, h = 8b10000000;parameter data=8b11100101;always (posedge CLK or negedge CLR) if(!CLR) begin Q = idle;end else case(Q) idle:if(DIN=data7) Q=a;else Q=idle;a:if(DIN= data6) Q=b;b:if(DIN= data5) Q=c;c:if(DIN= data4) Q=d;d:if(DIN= data3) Q=e;e:if(DIN= data2) Q=f;f:if(DIN= dat
3、a1) Q=g;g:if(DIN= data0) Q=h;h:if(DIN= data7) Qdefault :Qendcase always (Q) if(Q=h) AB = 4b1010 ;else AB b1011 ;/前端预置8位数据输入:module xulie(clk, din18, reset, din);input17:output din;reg din;s0 = 5b00000, s1 = 5b00001, s2 = 5b00010, s3 = 5b00011, s4 = 5b00100, s5 = 5b00101, s6 = 5b00110, s7 = 5b00111,
4、s8 = 5b01000, s9 = 5b01001, s10 = 5b01010, s11 = 5b01011, s12 = 5b01100, s13 = 5b01101, s14 = 5b01110, s15 = 5b01111, s16 = 5b10000, s17 = 5b10001;reg4:0 cur_state,next_state;always (posedge clk or negedge reset) reset) cur_state = s17;= next_state;always (cur_state or din18 or din ) case (cur_state
5、) s17 : begin din = din1817;next_state = s16;s16 := din1816;= s15;s15 := din1815;= s14;s14 := din1814;= s13;s13 := din1813;= s12;s12 := din1812;= s11;s11 := din1811;= s10;s10 := din1810;= s9;s9 := din189;= s8;s8 := din188;= s7;s7 := din187;= s6;s6 := din186;= s5;s5 := din185;= s4;s4 := din184;= s3;s
6、3 := din183;= s2;s2 := din182;= s1;s1 := din181;= s0;s0:= din180;= 1b0;提示:1.若对于D = 11100101 ,电路需记忆:初始状态、1、11、111 、 1110 、11100、111001、1110010、11100101 共9种状态。三、实验内容:1. 编写由两个主控进程构成的有限状态机。画出状态图,并给出其仿真测试波形; 2. 自己编写数码管显示程序(decl7s.v)来显示A或B状态。已知数码管为共阳级连接。输入(4bits) 输出(7bits) 显示内容 4b1010 7b 0001000 a 4b1011
7、7b 0000011 b 4b0000 7b1000000 0 可以在default分支选用显示“0”。3. 利用QuartusII对文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序。最后进行引脚锁定并完成硬件测试实验。建议用KEY3(PIN_W26)控制复位信号RESET;KEY2(PIN_P23)控制状态机工作时钟CLK;指示输出AB接数码管HEX0(PIN_AF10, PIN_AB12, PIN_AC12, PIN_AD11, PIN_AE11, PIN_V14, PIN_V13)。5. 下载后,按以下提示进行操作:1)、按实验板“系统复位”键;2)、用SW17-SW0键输入包含待测序列数的18位数据;3)、按下RESET键;4)、按KEY2键(时钟clk输入) 18次,这时若串行输入的18位二进制序列码中包含有,则数码管HEX0应从原来的B变成A ,表示序列检测正确,否则仍为B。四、思考题:说明代码表达的是什么类型的状态机,它的优点是什么,详述其功能和对序列数检测的逻辑过程;五、实验报告:根据以上的实验内容写出实验报告,包括设计原理、程序设计、程序分析、仿真分析、硬件测试和详细实验过程。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1