ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:63.03KB ,
资源ID:17281175      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17281175.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的数字频率计Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的数字频率计Word格式文档下载.docx

1、本模块主要是把50M的信号分频为1hz和1/1.2khz。分频计数的模块的功能结构框图如图1-1所示。图1-1 计算里程和车费模块的功能结构框图根据模块实现的功能设计Verilog HDL源代码如下:module jishu( clk,rst, clk_1s,clk_1ms2);input clk,rst;output clk_1s,clk_1ms2;reg clk_1ms2;reg clk_1s;reg25:0count_1s;reg14:0count_1ms2;/parameter cen_1ms2=30000;/parameter cen_1s=50000000;always(posed

2、ge clk or negedge rst) begin if(!rst) count_1s=0; else begin if(count_1s=50000000) count_1s clk_1s=clk_1s; end else count_1s=count_1s+1b1;rst) count_1ms2 if( count_1ms2=30000) count_1ms2 clk_1ms2= clk_1ms2; else count_1ms2= count_1ms2+1endmodule该模块定义输入输出端口如下: clk: 全局时钟信号,这里为50MHz的时钟。 rst: 外部复位信号。 cl

3、k_1s: 由50MHZ的信号分频得到。 clk_1ms2:由50MHZ的信号分频得到。 在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图2-2所示:图2-2 待测信号输入计数的仿真波形2待测信号输入计数模块本模块主要是将待测信号输入,然后对待测信号进行计数。待测信号输入计数模块的功能结构框图如图2-1所示:图2-1待测信号输入计数模块的功能结构框图module fm_jishu(clk_1s,rst,fm_in,fm_count); input fm_in,clk_1s,rst; output26:0 fm_count; reg26:

4、0 count;always(posedge fm_in or negedge rst) begin rst) count else if(!clk_1s)count else begin count=count+1 always(negedge clk_1s or negedge rst)rst) fm_count else fm_count=count; endmodule 该程序定义输入输出端口如下:分频得到的输入信号1HZ。 fm_in:待测输入信号。 fm_count:输入信号的计数。外部复位信号。3液晶显示模块 本模块为动态显示,时间间隔为秒。动态显示模块的功能结构框图如图3-1所

5、示。图3-1动态显示模块的功能结构图module LCD_12864( input clk_1ms2, /1.2ms时钟 input26:0 data, /数据输入 input rst_n, /复位 output reg7:0 LCD_data,/LCD12864的数据线 output reg LCD_RS, /LCD12864的寄存器选择: H:数据寄存器 L:指令寄存器 output LCD_RW, /LCD12864的读写信号线:读 L:写 output LCD_EN, /LCD12864的使能端:下降沿触发,锁存数据 output LCD_PSB,/LCD12864串/并选择H:并行L

6、:串行 output LCD_RST /LCD12864复位端:低电平有效 ); /+/ LCD12864驱动部分 开始 /+ parameter init = 3d0, /初始化 写指令 write_data_1 =3d1, /第一行 写数据 write_data_2 =3d2, /第二行 写数据 write_data_3 =3d3, /第三行 写数据 write_data_4 =3d4; /第四行 写数据 reg2:0 state; /状态码 reg4:0 counter; /计数assign LCD_EN =clk_1ms2; /LCD12864的使能端:assign LCD_PSB =

7、 1 /LCD12864串/并选择:H:并行 L:assign LCD_RST = 1 /LCD12864复位端:低电平有效assign LCD_RW = 1b0; /没有读操作,R/W信号始终为低电平 always (posedge clk_1ms2 or negedge rst_n) begin if(!rst_n) begin counter =0; /计数清零 state = init; /复位回到init码 end else begin case(state) init:begin /LCD12864初始化 写数据 LCD_RS = 0; counter = counter+4d1;

8、 case(counter) 1: LCD_data = 8h30;/0x30:基本指令 2:h02;/0x02:地址归位 3:h01;/0x01:清屏 4:h06;/0x06:光标右移 5:h0c;/0x0c: 6: LCD_data = 8h80; state = write_data_1;/转移到写第一行数据 counter = 0; end default: counter = 0; endcase end write_data_1:begin /LCD12864写第一行数据 LCD_RS = 1; case(counter) 0: LCD_data = ; /空格 1: 2:hD3;

9、 3:hF1; 4:hC1; 5:hD6; 6:hCA; 7:hA6; 8:hB7; 9:hB6; 10:hD1; 11:hA7; 12:hD4; 13:hBA; 14: 15: 16: LCD_RS = 0; LCD_data = 8h90; end default: endcase if(counter = 16) begin state = write_data_2; end else counter = counter+4 end write_data_2:begin /LCD12864写第二行数据 case(counter) hB4; 2:hD0;hC2;hBB;hF9;hB5;hD

10、8; LCD_data =- /F /PGA!h88;/写第三行数据 state = write_data_3;/转移到写第三行数据 write_data_3:begin /LCD12864写第三行数据 0: 1:r 2:e 3:= 4:h30+data/10000000; 5:h30+data/1000000%10; 6:, 7:h30+data/100000%10; 8:h30+data/10000%10;9:h30+data/1000%10; 10:11:h30+data/100%10;12:h30+data/10%10;13:h30+data%10;14:H15:Z 16: LCD_R

11、S = 0; LCD_data = 8h98;/写第四行数据 state = write_data_4;/转移到写第四行数据 write_data_4:begin /LCD12864写第四行数据hC6;/频/率hBC;/计hA3; LCD_data = 8/写第一行数据 state = write_data_1; default:state = init;/默认回到init码 endcase end end 分频得到的信号,这里为1/1.2MHZ的时钟 data: 数据输入 rst_n: 复位 LCD_data: LCD12864的数据线 LCD_RS: LCD12864的寄存器选择:指令寄存

12、器 LCD_RW: LCD12864的读写信号线 LCD_EN: LCD12864的使能 LCD_PSB: LCD12864串/并选择 LCD_RST : LCD12864复位端4设计数字频率计电路 Verilog HDL具有行为描述和结构描述功能。行为描述是对设计电路的逻辑功能的描述,并不用关心设计电路使用哪些元件及这些元件之间的连接关系。而结构描述是对设计电路的结构进行描述,即描述设计电路使用的元件及这些元件之间的连接关系。本文用行为描述和结构描述分别实现电路系统。生成的jishu、fm_jishu1和LCD_12864元件图形符号只是分别代表分立的电路设计结果,并没有形成系统。顶层设计文

13、件就是调用jishu、fm_jishu和LCD_12864三个功能元件,将它们组装起来,成为一个完整的设计。plj.bdf是本例的顶层文件,实现的功能是将检测出的频率显示出来如图4-1所示。图4-1plj顶层设计图二)硬件实现1引脚锁定对数字频率计进行实验验证时,需要确定用开发板的哪些输入/输出端口(PI/O)来表示设计电路的输入输出。根据Cyclone II EP2C8Q208C8N开发板的管脚。数字频率计与EP2C8Q208C8N中的目标芯片引脚连接的全部关系见表1-1。表1-1频率计与目标芯片引脚连接关系表2:测试数据:待测频率值/(khz)测试频率值/(khz)误差/(%)0.520

14、50.000 49.999 0.002 200.010200.010 400.000 400.010 0.025 600.000600.000 0 1000.001 1000.000 0.0001 1500.000 1500.015 0.001 2000.000 2000.004 0.0002 2500.000 2500.050结论 该频率计利用Quartus软件工作平台进行编译和综合仿真后, 将程序下载到一片FPGA芯片中,经实验验证, 该频率计达到了设计要求。所设计的数字频率计由于采用Verilog HDL 语言设计,用一片FPGA实现, 因而体积小、功耗低, 稍加修改就可以改变数字频率计

15、测量范围, 拥有较高的整体性能和可靠性, 升级和维护都很方便, 而且容易生产, 造价比较低, 具有较好的市场前景。参考文献1 黄 任. AVR单片机与CPLD /FPGA 综合应用入门M . 北京: 北京航空航天大学出版社, 2004. 1 王振红. VHDL 数字电路设计与应用实践教程. 北京:机械工业出版社,2003年6月.2 江国强. EDA技术与与应用(第2版).北京:电子工业出版社,2007年4月.3 王钿 卓兴旺. 基于Verilog HDL的数字系统应用设计. 北京:国防工业出版社,2006年1月.4 延明 张亦华. 数字电路EDA技术入门. 北京:北京邮电大学出版社,2006年1月.5 王钿 卓兴旺盛. 基于Verilog HDL的数字系统应用设计. 北京:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1