摘要:一、概述参数:1、8bit,60M Sampling ADC.2、参考源可用内部也可用外部。3、输入幅值可以通过引脚设置选择1VPP/2VPP。
阅读全文
摘要:一、基础知识与设计指标1.显示屏刻度:8div*10div。垂直分辨率8bit(使用的是8位AD采样),水平分辨率26点/div。用TM320*240LCD显示波形。波形显示区域宽10*26=260点,高8*26=208点。2.用MSP430F5438控制TM320*240显示。16M晶振。用ADS830采样,直接用30M晶振做时钟,采样率30MSa/S。再用MSP430F5438对AD的输出直接采样,采样率约为262*3.6k小于1MSa/S.3.对于将采样点恢复为LCD上显示的波形,本设计选取了线性内插法,简而言之即各个采样点之间用直线连接。其原理是,若A(a1,b1),B(a2,b2)为
阅读全文
摘要:手动解决dll文件无法删除的终极方法2009年08月19日 星期三 09:57手动解决dll文件无法删除的终极方法相信大家都遇见过:在删除一些软件的时候弹出某某文件正在运行或磁盘写保护不能删除这样的报错提示吧。而常常删除不掉的都一些后缀为.dll的文件。到底这个dll文件是什么文件,如何才能知道是哪些程序在调用这个dll文件呢?[基础理论]dll文件英文名称为Dynamic Linking Library,以下简称dll,中文名字"动态链接程序库"文件。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即dll文件,放置于系统
阅读全文
摘要:TM320*240,控制器为RA8806.1、有DDRAM1,DDRAM2,具有双层显示功能。2、接口和操作类似LCD12864。3、需要对控制器配置很多寄存器的值。基本操作方法是写寄存器地址,写寄存器内容,写显示数据,读显示数据,判忙。4、写文字字符步骤:a.设置显示位置.通过设置寄存器0x60[seg],0x70[com]的值实现的。b.内存写入指令。c.写数据。.c文件//=================================版本信息==================================////Ver:2011082301//Author:XZQ//Note:显
阅读全文
摘要:为解决原有指令集只能使全码反白,不能使单个字符的半码反白问题,写了单个字符反白和恢复函数。原理是:在DDRAM中写字符,然后在GDRAM中原字符位置写1,则该位置显示内容为GDRAM和DDRAM数据的异或,故字符显示反白;在GDRAM中原字符位置写0,清除掉GDRAM内容,则显示内容恢复。.c文件//=================================版本信息==================================////Ver:2011082002//Author:XZQ//==============================================
阅读全文
摘要:方案一:简单按键扫描 硬件:独立按键,液晶; 软件架构:全局变量;外设(如DA)输出初始化;液晶初始化显示;while(1){ 按键扫描();} 液晶需要显示的内容数值和外设的数值放在全局变量里面。在按键扫描程序中检测独立按键是否拉低,若拉低进行去抖动延时再检测,根据相应的按键值改变全局变量并更新液晶显示和外设输出。方案二:菜单LCD12864_Menu.c代码如下。提示:代码中包含扫描式矩阵按键头文件和LCD12864显示头文件。本想将数据和函数分离开,写成.c加.h形式,但因此代码数据和函数混在一起,故写在一个.c文件中。基本概念:1、菜单分层次。主菜单是第1层,为最顶层。子菜...
阅读全文
摘要:1、概述利用开关电容滤波原理,可以搭建LP/HP/BP/NO滤波器。内部含有两个相同的滤波单元A/B,每个单元是两节滤波,故一片MAX262可以构成4阶滤波器。 使用时要用到四个参数:中心频率f0,Q值,时钟频率,工作模式。滤波器的类型(LP/HP/BP/NOTCH)通过引脚连接确定,滤波器的截止频率f0通过fclk和参数FN共同决定,滤波器的Q值通过参数QN决定。 参数测定可以较精确,但因为是开关电容滤波,故输出波形呈阶梯状。二、详细说明1、四种模式 模式1 带通、低通。适用类型巴特沃斯、切比雪夫、贝塞尔。也可用于带阻滤波器,但有注意点,见PDF. 模式2 全极点带通、低通 模式3 椭圆带通
阅读全文
摘要:一、流水线结构 在FPGA设计中,为提高系统的运行速度,而将指令分为几个子操作,每个子操作由不同的单元完成,这样,每一级的电路结构得到简化,从而减少输入到输出间的电路延时,在较小的时钟周期内就能够完成这一级的电路功能。在下一个时钟周期到来时,将前一级的结果锁存为该级电路的输人,这样逐级锁存,由最后一级完成最终结果的输出。也就是说,流水线技术是将待处理的任务分解为相互有关而又相互独立、可以顺序执行的子任务来逐步实现。本设计在处理加法器时,利用对称和流水线技术来提高滤波器的性能
阅读全文
摘要:方案一:QuartusII中的IP核。但是FIR IP没有破解,放弃。方案二:用纯硬件描述语言搭建。基本上分为MAC(乘积累加结构)和DA(分布式结构)。MAC中具体结构有:直接型FIR滤波器结构。利用FIR系数对称性特点,先对相应值相加,再做乘积运算,最后累加。该进措施可以是加上流水线结构。实例:(参考自《EDA技术与Verilog设计》王金明编著)8KHZ采样率,8Bit输入,8Bit输出,11阶低通滤波器,fL=3.4KHZ。利用MATLAB得到滤波器系数,采用SD编码。Tips:SD(signed digit numbers有符号数字量),通过SD编码可以降低非零元素的数量。SD编码数
阅读全文
摘要:1、正常的警告,可以不用管。2、Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled措施:将setting中的timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency中的on改成OFF3、Warning: Clock multiplexers are found and protected解释:对时
阅读全文
摘要:1、使用PLL选择Tools>megawizard,就可以打开MegaWizard界面。选择I/0>ALPLL,便可以定制PLL。2、使用LPM_COUNTER选择Tools>megawizard,在选择arithmetic>LPM_COUNTER
阅读全文
摘要:使用signal tapII可以在线测试硬件运行数据。使用方法如下:1、创建并设置stp文件。在file中选择new>signal tap,便创建了stp文件。2、设置stp文件的内容。包括触发信号、需要测试信号、测试数据深度、触发方式等。3、设置好后再编译,最后下载到目标板即可通过signal tap查看数据。4、测试完毕后再编译选项中设置取消signal tap,再编译下载便可去掉signal tap。
阅读全文
摘要:一、如何让函数返回值为数组? 驱动底层芯片调用函数后可以得到两个16位数,如何让这两个值返回到主函数。在IAR中尝试过函数返回值为指针类型,然后将指针指向函数中的数组。最后得到的值有错误。解决方案一:在主程序文件中定义一个全局指针*p。在设备文件头文件中对*p进行外部申明,在设备文件中使用此指针即可。
阅读全文
摘要:一、一种设计方法 顶层文件为图形形式。每个模块用Verilog描述,最后将模块例化成图形符号,在顶层直接调用图形符号,用画图方式连接整个系统。例化方式:1.工程视图窗切换成如下形式2.在相应文件名如freq02.v上右击,选择Creat symbol file……,系统就会编译生成图形符号。3.在顶层图形文件上双击,将弹出如下对话框,选择相应的图形符号即可。
阅读全文
摘要:频率特性测试仪(A题)一、任务设计并制作一个频率特性测试系统,包含测试信号源、被测网络、检波及显示三部分。二、要求1.基本要求 (1)制作幅频特性测试仪,测试图示RC网络的幅频特性。(参数自定,测试时用老师带的网络测量)a、频率范围:100Hz~100kHz;b、测量精度:5% ;c、能在全频范围和特定频率范围内自动步进测量,可手动预置测量范围及步进频率值;d、采用数值方式显示幅频特性结果,要求频率显示为5位数,对应频点的电压显示为3位数,并与理论值做比较。(2)测试图示RC网络的相频特性(参数自定,测试时用老师带的网络测量)a、 频率范围:100Hz~20kHz;b、 相位度数显示:要求频.
阅读全文
摘要:设计要求:输入频率范围100HZ-100KHZ,相差0-90度。参数设计:采用50MHz晶振的FPGA实验板搭建。分两档测量,150MHZ档位测试4KHZ-100KHz频率之间信号;3MHZ档位测试100HZ-4KHZ之间信号。计数器采用16位。思路一:构造两个计数器,一个测信号周期,另一个测相差周期。一、输入10KHz正弦波,经过RC移相网络后有大约36度相移。需要用FPGA测相差。代码如下View Code 1 module Test_pha 2 ( 3 input clk, 4 input rst_n, 5 6 input start, 7 input IN1, 8 input IN2,
阅读全文
摘要:1、外设或系统资源驱动函数组织形式。所有函数写在.c文件里面,.c最前面包含自身头文件。每个.c文件都有一个相对应的.h文件,其他文件或系统只调用.h文件。2、.c文件除了最前面要包含自身头文件外,应该尽量全部是函数定义,接口信息、宏定义等尽量放到.h文件。接口信息尽量通过宏定义消除不同单片机IO定义上的差别。3、整个软件工程应有一个MCU_Init.h文件,文件中包含整个系统要用到的宏定义和单片机开机时需要初始化的内部资源如时钟系统等。其他.h文件一般要包含MCU_Init.h文件。4、外设与IO口连接固定下来,如液晶与P3口连接、按键与P1口连接。规范化接口设计可以使代码通用性更强,不用反
阅读全文
摘要:1、帮很多同学、学弟调试过时钟程序,时钟程序是学单片机的经典例子,发现大家经常犯同样的错误。学弟用字符串给液晶显示时间初值“00-59-57”,然后设置了三个变量:shi,fen,miao。调试的时候给miao赋初值57,然后程序下到51调试,发现miao满60归零后,shi显示从59跳到01。原来他没有理解变量和常量这个基本概念,自以为字符串初值“00-59-57”就对应三个变量初值,其实它们之间一点关系都没有,仅仅只是都表示时间。没有给变量赋初值,调试时当然变量值不正确。
阅读全文
摘要:2.4.1 二进制计数器代码如下View Code 1 module counter 2 #(parameter N=8) 3 ( 4 input clk, 5 input rst_n, 6 output [N-1:0] Q, 7 output Max_tick 8 ); 9 10 reg [N-1:0] r_reg;11 wire [N-1:0] r_next;12 13 always @ (posedge clk or negedge rst_n)14 if(!rst_n)15 r_reg<=0;16 else r_reg<=r_next;17 18 assign r_next
阅读全文
摘要:2.3.1 自动右移寄存器 信号由s_in进入8位寄存器最高位,寄存器最低位由s_out输出,代码如下View Code 1 module free_run_shift 2 ( 3 input clk, 4 input rst_n, 5 input s_in, 6 output s_out 7 ); 8 9 reg [7:0] r_reg;//现态寄存器10 wire [7:0] r_next;//次态寄存器11 12 always @(posedge clk or negedge rst_n)//时钟上升沿将次态寄存器值赋给现态寄存器,更新数据13 if(!rst_n)14 r_reg<
阅读全文
摘要:2.2.1寄存器 寄存器是D触发器集合,不过其有位宽,将前述D触发器语句改为 input D;outpu Q;改为input [7:0]D;outpu[7:0] Q;即构成一个8b的异步复位寄存器。2.2.2寄存器文件 将寄存器以数组整合起来,并加上输入地址,输出地址,即构成可临时快速数据存储的寄存器文件。示例代码View Code 1 module reg_file 2 #( 3 parameter B=8, 4 parameter W=2 5 ) 6 ( 7 input clk, 8 input wr_en, 9 input [W-1:0] w_addr,10 input [W-1:0]
阅读全文
摘要:2.1.1同步复位D触发器复位信号在所需时钟边沿才有效,复位操作需要同步于时钟故称作同步复位。代码如下View Code 1 module d_ff 2 ( 3 input clk, 4 input rst_n, 5 input D, 6 output reg Q, 7 output O_n 8 ); 9 10 always @(posedge clk)11 if(!rst_n)Q<=1'b0;12 else Q<=D;13 14 assign Q_n=~Q;15 16 endmodule RTL级视图Technology Map Viewer视图如下2.1.2 异步复位D
阅读全文
摘要:1.4.1 +、-、*、/、%电路(1)加法电路:每1位大约消耗1个LE,示例代码如下View Code 1 module arithmetic 2 ( 3 input [7:0] iA, 4 input [7:0] iB, 5 output [8:0] oAdd 6 ); 7 8 assign oAdd=iA+iB; 9 10 endmodule RTL级视图如下testbench如下View Code 1 `timescale 1ns/1ns 2 module arithmetic_tb; 3 4 reg [7:0] ia=8'b1011_0111; 5 reg [7:0] ib=
阅读全文
摘要:1.3.1 编码器4输入2输出编码器代码如下View Code 1 module encoder 2 ( 3 input [3:0] iA, 4 output reg [1:0] oQ 5 ); 6 7 always @(*) 8 begin 9 oQ=2'b00;10 case(iA)11 4'b0001:oQ=2'b00;12 4'b0010:oQ=2'b01;13 4'b0100:oQ=2'b10;14 4'b1000:oQ=2'b11;15 default :;16 endcase 17 end18 19 endm
阅读全文
摘要:1.2多路选择器1.2.1不带优先级的多路选择器四路选择器如下代码如下View Code 1 module multiplexer 2 ( 3 input iA, 4 input iB, 5 input iC, 6 input iD, 7 input [1:0] iSel, 8 output reg oQ 9 );10 11 always @(*)12 begin13 case(iSel)14 2'b00 : oQ=iA;15 2'b01 : oQ=iB;16 2'b10 : oQ=iC;17 2'b11 : oQ=iD;18 endcase 19 end20
阅读全文