FPGA学习笔记
大爱学习
这个作者很懒,什么都没留下…
展开
-
verilog HDL中wire和reg的区别
wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。reg表示一定要有触发,输出才会反映输入的状态。reg相当于存储单元,wire相当于物理连线。reg表示一定要有触发,没有输入的时候可以保持原来的值,但不直接实际的硬件电路对应。 两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动。wire使用在连续赋值语句中,而reg使用在过程赋值原创 2017-05-22 19:02:41 · 544 阅读 · 0 评论 -
利用SPI驱动12864液晶
SPI 发送模块在这里,我们要在主机上建立,一个向从机写入数据的SPI发送模块,首先我们先从C语言上了解几个主机在SPI写操作上容易被疏忽的小细节:我们知道SPI设备在传输都有一个规则,SCL 时钟信号在“上升沿”的时候是“锁存数据”,SCL时钟信号在“下降沿”是“设置数据”。在这里我们SPI 主机(FPGA),写操作要干的工作就是在“拉高SCL时钟信号之前”设置数据(移位数据),设置原创 2017-05-22 19:02:44 · 9469 阅读 · 0 评论 -
命令式的仿顺序操作
如上图!结果我们可以把上述的建模精简到这样的程度。在这里笔者把最基本的产生S摩斯密码和O摩斯码的功能集合在函数模块中。然后模仿高级函数如SSS ... SOS 等,则可以利用命令控制模块, 根据SSS ... SOS的执行步骤去控制( 驱动Function_Start_Sig)函数模块。最后如果要实现SSS ... SOS等功能,只要根据命令控制模块的命令(Command_Start_Sig原创 2017-05-22 19:02:48 · 293 阅读 · 0 评论 -
DS1302实时时钟驱动
要明白DS1302 芯片最主要的关键,就是“传输时序”和“芯片本身的寄存器分配”。上图是DS1302芯片写操作的时序图。第一个字节是“访问寄存器的地址”,第二字节是“写数据”。在写操作的时候,都是“上升沿有效”,然而还有一个条件,就是CE(/RST)信号必须拉高。(数据都是从LSB开始发送,亦即是最低位开始至最高位结束)上图是DS1302 芯片读操作的时序图。基本上和写操作的时序图大同小异原创 2017-05-22 19:02:51 · 691 阅读 · 0 评论