阅读verilog程序总结

本文详细介绍了如何使用状态机实现微控制器编程,包括时钟信号生成、主状态程序编写及各根线的寄存器、标志位和开关的使用。

1、写程序先直接写出时钟信号

1 //-----------------产生串行时钟scl,为输入时钟的二分频---------
2 always@(negedge clk)//二分频表示频率小了,周期大了
3   if(reset)
4   scl<=0;
5   else
6   scl<=~scl;

 

2、然后直接写主状态程序

 1 always@(posedge clk)
 2     if(reset)//复位
 3         begin
 4             link_read<=no;//各大开关信号关闭
 5             link_head<=no;
 6             link_write<=no;
 7             link_stop<=no;
 8             link_sda<=no;
 9             ack<=0;
10             rf<=0;//各大标志位赋值
11             wf<=0;//写状态标志位
12             ff<=0;//寄存器标志位
13             main_state<=idle;//主状态进入空闲了
14         end
15     else
16         begin
17             casex(main_state)
18                 idle://空闲状态也是要空闲
19                     begin
20                         link_read<=no;//各大开关
21                         if(wr)//写信号
26                             begin
27                                 wf<=1;
28                                 main_state<=ready;
29                             end
30                         else if(rd)//读信号
31                             begin
32                                 rf<=1;//
33                                 main_state<=ready;
34                             end
35                         else
36                             begin
37                                 wf<=0;
38                                 rf<=0;
39                                 main_state<=idle;
40                             end
41                     end
42                 ready:
43                     begin
44                          head_state<=head_begin;
52                         ff<=0;
53                         ack<=0;
54                         main_state<=write_start;
55                     end
56                 write_start:
57                     begin
58 
59                     end

 3、写程序的过程中每一个根线都应该是加上寄存器和标志位和开关。

  1)输出和输入:加寄存器

  2)输入输出是否完成:加标志位

  3)未完待续。。。。。。。。。。。。。。。

 

转载于:https://www.cnblogs.com/qidaiymm/p/4937202.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值