摘要:二倍频电路的FPGA设计,在半整数分频中可以用到
阅读全文
摘要:PS2键盘:明确接线关系,只需接4根线,VCC要+5V,刚刚又测试过,3.3V也可以用。时钟和数据线要用bidir双向口线,FPGA可以不用外接上拉电阻。另外,USB键盘也可以用,只要用一个转接头转成PS2即可。键值查表PS2键盘解码其中detect.v模块Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 module detect 2 ( 3 input clk, 4 input rst_n, 5 input ps2_clk_pin_i
阅读全文
摘要:原理图模块消抖电路,利用已经优化好了的LPM库,节省资源,建模速度快。
阅读全文
摘要:瞬时频率,定义为解析信号相位的倒数,其物理意义表示向量幅角的转速。为了定义一个信号的瞬时频率,首先必须将分析的信号x(t)转化为解析信号s(t),常有的方法是Hilbert变化,即s(t)=x(t)+jH[x(t)];利用解析信号,可以唯一定义瞬时幅值和瞬时频率为A(t)=|s(t)|,f(t)=(1/(2*pi))*(d arg s(t))/(dt);时频分析工具箱中计算瞬时频率的函数为instfreq.m
阅读全文
摘要:clc;clear;%% 1.正弦波定义f1=50; % 频率1f2=100; % 频率2fs=2*(f1+f2); % 采样频率Ts=1/fs; % 采样间隔N=120; % 采样点数n=1:N;y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合figure(1)plot(y);title('两个正弦信号')figure(2)ste...
阅读全文
摘要: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),而是指芯片内外断开,互不影响。若总线上所有驱动源均停止驱动而且无上拉电阻或者下拉电阻,则总线悬空,总线对地相当于一个电容:如果关闭总线之前的输出为高电平,则用示波器测量可以观察到电容放电的现象(总线残留电荷.
阅读全文
摘要:在用Altera器件做设计,用modelsim做后仿真时,首先要在Quartus中进行工具的设置,setting--EDAtool--simulation—Tool name ---Modelsim(Verilog);然后进行全程编译,在项目目录下会生成simulation文件夹,内部modelsim文件夹中有三个文件,其中*.vo文件即为布局布线后的仿真模型文件,*.sdo文件即为标准的延时文件。 在modelsim中把*.vo文件和Testbench文件加在项目中,进行编译。在此之前,还要编译与器件相关的库文件,这些库文件在Quartus的安装目录下eda/sim_lib。在编译完成之后
阅读全文
摘要:LCD1602的控制器模块和主模块LCD1602的时序和控制寄存器命令见http://www.cnblogs.com/qiweiwang/archive/2010/12/16/1908608.htmlLCD1602的控制模块:[代码]主模块[代码]
阅读全文
摘要:1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表10-13:引脚接口说明表第1脚:VSS为地电
阅读全文
摘要:串口程序,可以连续发送和接受CLK_div是RS232时钟产生模块另外两个接受和发送模块如下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->module RS_232_r(clk9600,reset,datain,dataout,valid);input clk9600,datain,reset;output reg [7:0] dataout;output reg valid;reg[7:0] temp;reg flag;reg [3:0
阅读全文
摘要:RC4算法的MSP430实现,本程序中包括按键消抖、SPI传输数据、中断函数、#include <MSP430x14x.h>unsigned char keypoint=0;unsigned char Rpoint=0;int i;unsigned char R_buff[8];unsigned char T_buff[4];unsigned char RR_buff[4];char s_box[256];void getkey(unsigned char *key,int key_len, char *s_box);void main(void){ WDTCTL = WDTPW
阅读全文