Verilog HDL仿真基础框图:
Verilog HDL基本语法框图:
UART差不多是最简单的通信协议,非常适合用来练习FPGA编程。
笔者根据UART协议,尝试按照自己的思路去写一个UART发送功能模块,波特率完全固定,无奇偶校验,数据位为固定的8bit。这算是最简单的通信了,但笔者从构思到RTL实现还是花了约两个小时才完成。
状态机(FSM)在verilogHDL数字逻辑设计中用的很多,但笔者采用了便于理解的计数器的方式,其核心部分无非是一个比特计数器和一个帧计数器,其余的逻辑所做的就是在适当的时刻控制它们增减,非常容易读懂。
这个模块笔者已在FPGA中完成验证,在SecureCRT或MiniCom中能打印"HELLO"
本文以赛普拉斯公司的FM16W08为例,用VerilogHDL语言设计了一个FRAM读写模块,并成功在Modelsim环境中进行了单字节的读写验证。
硬件实现乘法运算有好几种:
1、最原始的就是移位相加,最经济,但速度慢。
2、组合逻辑乘法器,也叫并行乘法器,直接将每一种结果枚举然后通过查表 算结果,这种方式理论上最快,但很占资源,并且由于大量使用组合逻辑,在实际的FPGA实现时,会导致逻辑延迟较大,速度很难做得很快。
3、折中方案,例如: 流水线、加法树乘法器。在组合逻辑中间插入时序单元,因为FPGA内部触发器资源相对较为丰富,而组合逻辑资源,也就是查找表资源则比较宝贵,所以需要 充分利用FPGA内部的时序单元,这样虽然会多了几个周期,但是最高支持的时钟频率Fmax(这个Fmax是搞FPGA设计时所需要用到的一个很重要的参 数)会提高,整体速度自然也会得到弥补。