EDA课程设计-GSM通讯机的VHDL设计及仿真.doc
《EDA课程设计-GSM通讯机的VHDL设计及仿真.doc》由会员分享,可在线阅读,更多相关《EDA课程设计-GSM通讯机的VHDL设计及仿真.doc(19页珍藏版)》请在三一文库上搜索。
1、 课程设计说明书 NO.1GSM通讯机的VHDL设计及仿真1.课程设计的目的 EDA技术及应用课程设计是学习EDA技术及应用课程之后的实践教学环节。其目的是训练学生综合运用学过的EDA技术及应用的基础知识,通过解决比较简单的实际问题巩固和加深在EDA技术及应用课程中所学的理论知识和实验技能。独立完成查找资料,选择方案,设计电路,安装调试,分析结果,撰写报告等工作。使学生进一步理解所学本课程的内容,初步掌握模拟电子电路设计的一般方法步骤,通过理论联系实际提高和培养学生。并理论联系实际提高和培养学生的分析、解决实际问题的能力,创新能力及动手能力,为后续课程的学习、毕业设计、毕业后的工作打下基础。2
2、.设计方案论证2.1软件介绍 Max+plus是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。Max+plus开发系统的特点:(1)、开放的界面,Max+plus支持与Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的
3、EDA工具接口。(2)、与结构无关,Max+plus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。(3)、完全集成化,Max+plus的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。(4)、丰富的设计库,Max+plus提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Funct
4、ion) 沈 阳 大 学 课程设计说明书 NO.2(5)、模块化工具,设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。(6)、硬件描述语言(HDL),Max+plus软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。(7)、Opencore特征,Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2.2设计方案2.2.1实现功能 (1)显示系统当前运行状态,由VGA接口输出,在液晶屏上以640*480分辨率显示; (2)实时检测输入设备,对GSM模块进行操控,输入设备采用PS/2接口
5、键盘; (3)通过RS232接口连接GSM模块,采用UART标准进行全双工通信,发送AT命令控制GSM模块,GSM模块返回信息通过UART由系统接收并做出相应处理; (4)支持GSM拨号功能; (5)支持短信收发功能,并可实时查阅、删除已有短信; (6)编辑模式可通过BackSpace键删除误输入; (7)支持来电号码显示,并周期性发出来电铃声; (8)支持新短信显示提示,并发出一声短信提示音; (9)支持中文菜单显示,通过上下箭头按键选择不同菜单项; (10)界面支持字体变色、动态滚动效果。2.2.2系统框图 沈 阳 大 学 课程设计说明书 NO.3 FPGA主控制器液晶显示器PS/2接口键
6、盘GSM模块VGAPS/2UART图1 GSM系统框图由上图可见,主控制器通过3个接口分别连接了3个硬件,对应不同接口应该独立地进行处理,所以必须对主控制器进行模块划分。3.设计结果与分析模块1:分频 功能描述:将50MHz时钟源进行分频,提供给VGA模块(25MHz)和UART模块,其中UART模块为波特率可调,通过改变CNT_RS232的值实现不同的波特率。 具体代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQUENCY IS GENERIC (CNT_RS232:INTEGER:=163; CNT_VGA: INTEGER:=
7、1);PORT( CLK:IN STD_LOGIC; CLK_RS232:OUT STD_LOGIC; CLK_VGA:OUT STD_LOGIC);END ENTITY;ARCHITECTURE FREQUENCY_DIV OF FREQUENCY ISBEGIN 沈 阳 大 学 课程设计说明书 NO.4 PROCESS (CLK)VARIABLE REG_RS232:STD_LOGIC :=0; VARIABLE REG_VGA:STD_LOGIC :=0;VARIABLE TEMP_RS232:INTEGER RANGE 0 TO CNT_RS232; VARIABLE TEMP_VGA
8、:INTEGER RANGE 0 TO CNT_VGA;BEGINIF (CLKEVENT AND CLK=1) THENTEMP_RS232:=TEMP_RS232+1; TEMP_VGA:=TEMP_VGA+1;IF (TEMP_RS232=CNT_RS232) THEN REG_RS232:=NOT REG_RS232; TEMP_RS232:=0;CLK_RS232=REG_RS232;END IF; IF (TEMP_VGA=CNT_VGA) THENREG_VGA:=NOT REG_VGA; TEMP_VGA:=0;CLK_VGA=REG_VGA;END IF; END IF;EN
9、D PROCESS;END ARCHITECTURE; 将以上程序写入MAX+pluwe2中进行编译仿真,可得如下结果。图2 frequency元件图 沈 阳 大 学 课程设计说明书 NO.5图3 对 frequency程序的仿真结果图 模块2:PS/2 Keyboard 功能描述:接收键盘的时钟源PS2_CLK,并进行平滑处理,接收完一个按键相应输出按键的通码MakeCode和触发信号TRIG,另外输出平滑后的键盘时钟信号PS2_CLKsm,为接收模块提供同步时钟。 具体代码:library ieee;use ieee.std_logic_1164.all;entity PS2keyboar
10、d is port(CLK,PS2_CLK,PS2_DATA:in std_logic; TRIG:out std_logic; MAKE_CODE:out std_logic_vector(7 downto 0); PS2_CLKsm: out std_logic);end entity;architecture code of PS2keyboard istype state_type is(S1,S2);type cache_type is array(2 downto 0) of std_logic_vector(7 downto 0);signal smooth_ps2_clk:st
11、d_logic;beginsmooth:process(CLK)variable cnt:integer range 0 to 7;variable scan:std_logic_vector(7 downto 0);beginif falling_edge(CLK) thenscan(cnt):=PS2_CLK; 沈 阳 大 学 课程设计说明书 NO.6if cnt=7 then cnt:=0;else cnt:=cnt+1;end if;if scan=11111111 then smooth_ps2_clk=1;elsif scan=00000000 then smooth_ps2_cl
12、k=0;end if;end if;end process smooth;receive:process(smooth_ps2_clk)variable cnt:integer range 0 to 10;variable count:integer range 0 to 2;variable pstate:state_type;variable cache:cache_type;variable reg:std_logic_vector(10 downto 0);beginif falling_edge(smooth_ps2_clk) thenreg(cnt):=PS2_DATA;if cn
13、t=10 then cnt:=0;if count=1 and reg(8 downto 1)/=XF0 then count:=0;end if;cache(count):=reg(8 downto 1 ); if count=0 thencount:=count+1;MAKE_CODE=cache(0);TRIG=1;elsif count=2 then count:=0;MAKE_CODE=cache(0);TRIG=0;else count:=count+1;TRIG=0;MAKE_CODE=cache(0);end if;else cnt:=cnt+1; end if;end if;
14、end process receive;PS2_CLKsm txd temp:=DATA_IN;txd txdtxdsp_state:=S1;end case;end if;end process send;receive:process(CLK_UART) variable rp_state:rece_state; variable reg:std_logic_vector(7 downto 0); variable cnt:integer range 0 to 16; variable count:integer range 0 to 8; begin if CLK_UARTevent a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 GSM 通讯 VHDL 设计 仿真
链接地址:https://www.31doc.com/p-5014472.html