05 2014 档案

摘要:1、如果启动沿(launch)和锁存沿(latch)是同一时钟域则,latch比launch晚一个时钟周期。2、数据到达时间3、时钟到达时间。如果启动沿(launch edge)和锁存沿(latch edge)是同一时钟域则,latch edge比launch edge晚一个时钟周期。如果在不同的时... 阅读全文
posted @ 2014-05-19 21:21 cornhill 阅读(1105) 评论(0) 推荐(0) 编辑
摘要:1、有意义且有效的名字。2、同一信号在不同层次应该保持一致。3、添加有意义的后缀,使信号的有效性更加明确。4、模块输出寄存器化,使得输出的驱动强度和输入延时是可以预测的。5、使用括号表明优先级。6、每一个if都应该有一个else。如果esle没有任何相应的动作,则用一条空语句。(if。。esle可能... 阅读全文
posted @ 2014-05-17 21:03 cornhill 阅读(304) 评论(0) 推荐(0) 编辑
摘要:关于nios 中的中断,因为要16c550中需要nios的中断环境去测试,所以就用到了中断。硬件:在nios中添加硬件PIO,但是要使能中断功能。如下图所示:系统列化,PIO的连接就不说了。但是要注意两地方:edge type, IRQ type。接下来就是软件设计:使能相应的中断,IOWR_ALT... 阅读全文
posted @ 2014-05-10 20:08 cornhill 阅读(486) 评论(0) 推荐(0) 编辑
摘要:参考了 《Altera FPGA/CPLD 设计》高级篇, 关于状态机的推荐写法实现的功能是一样的但是编译使用的逻辑门如下图:下图是我自己编的状态机需要的逻辑:下图是使用推荐的有限状态机后,编译消耗的资源:总结:推荐的有限状态机,分为2个always 块。 一个用于控制状态的转移,一个用于当前状态的... 阅读全文
posted @ 2014-05-08 16:03 cornhill 阅读(246) 评论(0) 推荐(0) 编辑
摘要:代码风格1、有关状态机的设计风格(1)状态转移单独写成一个模块。(2)状态的操作和判断写成一个模块。2、如果芯片有乘法器,可以使用*运算符。3、三态一般只在顶层使用。子模块就将inout分解。4、敏感信号列表应包括:所有输入信号,判断条件。希望通过增减信号列表实现某项逻辑功能是大错特错的。5、cas... 阅读全文
posted @ 2014-05-08 11:45 cornhill 阅读(159) 评论(0) 推荐(0) 编辑