![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
手把手_明德扬
文章平均质量分 52
波形信号,默认是同步信号,由D触发器产生。即现有输入上升沿,延迟一拍才有信号变化
luoai_2666
这个作者很懒,什么都没留下…
展开
-
状态机架构 例4SPI接口之EWEN
明确功能 输入输出信号列表+功能描述rdy信号可以防止在运算过程中,外部又来wr和数据导致的会乱。画功能波形图 明确每个信号的变化情况不能违背器件datasheet的时序要求查阅datasheet可知,假设电平标准为2.7V~5.5V。fSK max=1MHz,1us; tSKH和tSKL min=250ns, 下图是500ns;tCSS min =50ns,下图留有0.5us;tCSH min=0,下图=0;tCS min=250ns,下图=1us;tDIS=tDIH min=100n..原创 2021-06-22 19:45:51 · 291 阅读 · 0 评论 -
状态机架构 例4SPI接口项目
准备工作明确功能 输入输出信号列表+功能描述画出功能波形图 每个信号的变化情况分析输出划分状态1)csEWEN:收到start拉高,10个SK拉低,经过一个tCS拉高,WRITE: 收到start拉高,到18个SK拉低,经过一个tCS拉高,收到do=1拉低READ:收到start拉高,18个SK拉低,经过一个tCS拉高.可以划分状态为:IDLE∶初始状态,模块在等待 start 信号有效。 WR_RD∶读/写状态。 TCS∶片选信号拉低。 DO∶等待写入操作完成。sk通过计数产生1M原创 2021-06-16 11:15:52 · 453 阅读 · 0 评论 -
状态机架构 例3包文类型识别
文章目录其他信号设计我画的状态图,问题有状态应该用大写字母表示;playload2fcs,不能写成2个条件,是思路混乱的表现,应该统一;length2playload没写转移条件其他信号设计head_cnt(视频讲解的方法很麻烦,不按那个来)加1条件:在HEAD状态下,收到2字节0x55d5。但数据是逐字节传送,因此对din寄存一拍得到din_r,如果din_r=55且din=d5,就加1。换其他din序列同样验证正确。always@(posedge clk or negedge原创 2021-06-08 00:27:24 · 194 阅读 · 0 评论 -
状态机架构 例1例2
例1. 周期跳转状态机状态机有三个状态,IDLE,S1和S2。在IDLE状态,如果en=1,则跳到S1状态,否则保持不变;在S1状态时,保持5个时钟周期后,跳到S2状态; 在S2状态,保持7个时钟周期后,跳回到IDLE状态。状态转移图状态转移代码always@(*) begin case(state_c) IDLE: begin if(idle2s1) state_n = S1; else state_n = state_c; end S1: begin if(s1原创 2021-06-07 17:05:02 · 303 阅读 · 1 评论 -
计数器架构_明德扬
明确功能,输入输出画时序波形图en触发flag(dout),flag触发cnt从0加1,开始计数;计数从0至9,cnt置零,flag同步置零确定计数器结构always @(posedge clk or negedge rst_n)beginif(!rst_n)cnt <= 0;else if(add_cnt)begin if(end_cnt) cnt <= 0; else cnt <= cnt + 1 endend//..原创 2021-06-07 10:45:57 · 417 阅读 · 0 评论 -
计数器架构 例2串口发送
题目要求:串口发送模块明确功能 输入输出+功能描述clk,rst_n,画功能波形图确定计数器结构cnt0表示每bit多少clkcnt1表示第几位加一条件和结束条件见代码always @(posedge clk or negedge rst_n)beginif(!rst_n)cnt0 <= 0;else if(add_cnt0)begin if(end_cnt0) cnt0 <= 0; else cnt0 <= cnt0 + 1;endendass原创 2021-06-07 10:37:08 · 147 阅读 · 0 评论 -
计数器模块1 PWM流水灯
999clk上升沿到来,assign中led0_off的值立刻更新为1;但是下一个clk到来,才能在always中判断为1,从而触发led变1.原创 2021-05-14 11:05:37 · 119 阅读 · 0 评论 -
计数器模块0 Example0
修改后的时序图x和y的赋值1)按照书上的代码always @(*)begin if(cnt1==0)begin x = 1; y = 1;x,y并没有两头为02)按照计数器规则:使用某一计数值,必须同时满足加1条件always @(*)begin if(add_cnt_c && cnt_c==0)begin x = 1; y = 1; end错的更大。是否可以说:在组合逻辑中原创 2021-05-13 20:28:45 · 114 阅读 · 0 评论