摘要:原理图模块消抖电路,利用已经优化好了的LPM库,节省资源,建模速度快。
阅读全文
摘要:FSM设计之一http://www.cnblogs.com/qiweiwang/archive/2010/11/28/1890244.html Moore型状态机与mealy型状态机相比,由于其状态输出仅与当前状态有关,而与输入无关,所以它可以避免由输入信号引起的毛刺,因此建议采用Moore型状态机。但是在实际的应用中,我们只需要对状态输出进行寄存,即在outputs后面加上一级输出寄存,就可以有效地避免毛刺的传播。 Binary、gray-code编码使用最少的触发器,较多的组合逻辑。而one-hot 编码反之。由于CPLD更多的提供组合逻辑资源,而FPGA更多的提供触发器资源,所以CPLD
阅读全文
摘要:时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟电路处理。在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此推荐采用使用时钟使能的方法,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性。 我们可以利用带有使能端的D触发器来实现时钟使能的功能。在上图中clk1x是CLK的四分频后产生的时钟,clk1x_en是与clk1x同频的时钟使能信号,用clk1x_en作为DFF的使能端,D端的数据只有在cl
阅读全文
摘要:边沿检测电路http://www.cnblogs.com/oomusou/archive/2008/08/11/verilog_edge_detection_circuit.htmlhttp://www.cnblogs.com/qiweiwang/archive/2011/01/02/1924098.html串并转换电路http://www.cnblogs.com/oomusou/archive/2009/10/24/p2s_s2p.htmlhttp://www.cnblogs.com/qiweiwang/archive/2010/11/28/1890313.html如何将值延迟几个CLKht
阅读全文
摘要:Gray码在每次码跳变时,只有一位改变。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->module gray#(parameter N=5)(input clk,input rst_n,output reg [N-1:0] gray_cnt_out);reg [N-1:0] cnt;reg [N-1:0] temp;integer i;always @ (posedge clk ,negedge rst_n)beginif(!rst_n)c
阅读全文
摘要:2^n次方的分频器设计对于一个占空比为50%的模8分频器Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->module mod8_divide( input clk, input rst_n, output clk_divide);reg [2:0] cnt;always @ (posedge clk or negedge rst_n)begin if(!rst_n) cnt <= 3'b000; else cnt <= c
阅读全文
摘要:1、 if...else语句综合出优先级电路,会产生较大的组合逻辑。2、 在组合逻辑中,if语句如果条件分支不完整将综合出锁存器。3、 case语句如果条件分支不完整,将生产锁存器。4、 casez语句将忽略case分支项条件中出现的z值,在设计带优先级的电路时可以使用casez语句。5、 casex语句将忽略case分支项条件中出现的x和z值,实现优先级仲裁器。6、 在有些情况下,虽然case分支不完整,但是由于前级可以保证不会出现未覆盖的分支,此时可以通过综合指令“synthesis full_case”后,综合工具将其综合成不带锁存器的电路。7、 casex语句,假如设计者事先
阅读全文
摘要:在实际的系统中,为了减少器件的管脚,降低芯片制造成本,工业标准总线中很多信号线都采用了复用的方式:只有获得总线使用权的设备才能驱动信号,而没有获得总线使用权的设备则不能够驱动信号。为了防止总线的冲突,为获取总线使用权的设备应该将输出信号置为三态,相当于总线断开。这种输出端口便是带三态的输出端口。 人们常说的“输出三态”,并不是指信号的输出除了0和1以外还有第三种状态(数字信号只有0和1),而是指芯片内外断开,互不影响。若总线上所有驱动源均停止驱动而且无上拉电阻或者下拉电阻,则总线悬空,总线对地相当于一个电容:如果关闭总线之前的输出为高电平,则用示波器测量可以观察到电容放电的现象(总线残留电荷.
阅读全文
摘要:LCD1602的控制器模块和主模块LCD1602的时序和控制寄存器命令见http://www.cnblogs.com/qiweiwang/archive/2010/12/16/1908608.htmlLCD1602的控制模块:[代码]主模块[代码]
阅读全文
摘要:在数字系统设计中,分频器是一种基本电路。分频器的实现非常简单,可采用标准的计数器,也可采用可编程逻辑器件来实现一个整数分频器。分频器通常用来对某个给定频率进行分频,得到所需的频率。在某些场合下,用户所需要的频率与频率时钟源不是整数倍关系,此时可采用小数分频器进行分频。 小数分频的基本原理为脉冲吞吐计数法:设计两个不同分频比的整数分频器,通过控制单位时间内两种分频比出现的不同次数,从而获得所需的小...
阅读全文
摘要:夏宇闻《Verilog 数字系统设计教程》P216设计两个可综合电路模块:M1模块能把4位的并行数据转换为符合以下协议的串行数据流,数据流用scl和sda两条线传输,sclk为输入的时钟信号,data[3:0]为输入数据,ack为M1的请求M0发新数据信号。第二个模块M2能把串行数据流内的信息接收到,并转换为相应16条信号线的高电平,即若数据为1,则第一条线路为高电平,数据为n,则第n条数据线为高电平。M0为 测试用的信号发生模块,该模块接收M1发出的ack信号,并产生新的测试数据data[3:0]。通信协议:scl为不断输出的时钟信号,如果scl为高电平时,sda由高变低时刻,串行数据流开始
阅读全文
摘要:FSM的设计是数字FPGA设计的一个主要课题之一,是Verilog必须掌握的设计手段。状态机FSM的设计一般分成三个部分,即三个always设计。 三段式风格:其中一个always块用于状态转移,一个always块用于状态译码逻辑,另一个always块用于状态输出的寄存;但它并不一定指整个状态机只能包括三个always块,在满足输出寄存的前提下,可以使用三个及以上的always块,甚至在某些特殊情况,用两个always块的状态机也可以认为是三段式的写法。 第一个always(同步时序)格式化的描述次态寄存器到现态寄存器的转移(CS=NS);[代码]第二个always (纯组合逻辑)描述状态
阅读全文
摘要:http://www.cnblogs.com/yuphone/archive/2010/10/25/1860871.html1 同步复位的D出发器Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 module test 2 ( 3 input rst_n, 4 input clk, 5 input d, 6 output reg q 7 ); 8 9 always @(posedge clk)10 begin11 if(rst_n)12
阅读全文
摘要:通过PWM控制LEDG灯的频率[代码]可以通过 SW按钮来控制LED[代码]
阅读全文
摘要:http://www.cnblogs.com/oomusou/archive/2010/09/05/verilog_mux2.html=和>=的比较----------------------------------------------------------------------------------if...else 和case的比较
阅读全文
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->module keyscan( clk, rst_n, sw1_n, sw2_n, sw3_n, //output led_d3, led_d4, led_d5 ); input clk; //主时钟信号,48MHz input rst_n; //复位信号,低有效 input sw1_n,sw2_n,sw3_n; //三个独立按键,低表示按下 output led_d3,led_d4,led_d
阅读全文
摘要:1.奇数N分频器思路:一个模N计数器计数,一个比较器,下图为mod=9分频电路比较器datab[]=(N+1)/2,比较器取A>=B(ageb)2 偶数分频器mod=10;比较器datab[]=N/2,比较器取A>=B(ageb)3 对于2*M的偶数分频还可以用一个计数器和二分频级联而成(M=5)4. 偶数分频器的另一种实现形式由一个模N/2计数器和一个TFF组成 模2的分频器就是每1个clock就0变1、1变0,模4的分频器就是每2个clock就0变1、1变0;计数器部分我們使用lpm_counter,0变1、1变0我們就是用lpm_ff这个T-FF。5 三分频的特殊电路模型,三
阅读全文
摘要:Cliff Cummings大师的公开论文,他本身是Verilog standard制定成员之一,这里有他所有发表的paperhttp://www.sunburst-design.com/papers/学习Verilog的利器,世界顶级的Verilog培训资料ilinx 2010电子设计竞赛培训(第一部分) http://www.61eda.com/Soft/Xilinx/Document/201009/5327.htmlXilinx 2010电子设计竞赛培训(第二部分) http://www.61eda.com/Soft/Xilinx/Document/201009/5326.html软件测
阅读全文
摘要:http://www.cnblogs.com/oomusou/archive/2008/07/12/verilog_module_coding_style.htmlAbstractmodule內有很多東西,什麼該寫在前面?什麼該寫在後面呢?Introduction以下是建議的coding style[代码]http://www.cnblogs.com/oomusou/archive/2008/07...
阅读全文