EDA综合课程设计实验报告

合集下载

EDA综合实验设计报告

EDA综合实验设计报告

Beijing Jiaotong University EDA实验设计报告指导老师:刘彪学院:电子信息工程学院姓名:黄家维学号:13213012班级:电子1301实验地点:电气楼406实验日期:2014年5月29日星期四实验一熟悉QuartusII软件的安装及使用(4学时)我们通过下载及安装,可在电脑上运行Altera Quartus II。

打开软件,新建一个工程,在工程底下新建一个VHDL File,即可实现编程功能。

编完程序后点击Start Compilation可试运行程序,待编写的程序运行无误后,再在此工程下新建一个Vector Waveform File,给程序中的输入变量赋值,保存后点击Start Simulation即可实现程序的仿真。

实验二、组合逻辑电路的设计实验方案设计、实验方法、1.实验方案8-3优先编码器的VHDL描述有多种方法,设计过程中可以根据真值表采用case…when语句、with…select语句、if…then结构等多种手段实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8-3优先编码器。

本实验中根据真值表用if-then结构实现8-3优先编码器2.实验方法首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。

实验步骤1.设计输入利用FILE\New菜单输入VHDL源程序,创建源文件2.设计项目的创建1)原文件存储…..2)利用FILE\Project\Set Project…3.设计编译….4.器件选择及管脚分配…..5.设计仿真…..6.时序分析…..7.编程下载(可选)….LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ENCODER ISPORT(D:IN STD_LOGIC_VECTOR(0 TO 7);A:OUT STD_LOGIC_VECTOR(0 TO 2));END ;ARCHITECTURE XIANI OF ENCODER IS BEGINPROCESS(D)BEGINIF (D(7)='0')THEN A<="111";ELSIF (D(6)='0')THEN A<="110";ELSIF (D(5)='0')THEN A<="101";ELSIF (D(4)='0')THEN A<="100";ELSIF (D(3)='0')THEN A<="011";ELSIF (D(2)='0')THEN A<="010";ELSIF (D(1)='0')THEN A<="001";ELSIF (D(0)='0')THEN A<="000";ELSE A<="ZZZ";END IF;END PROCESS;END;1用CASE语句设计一个4-16译码器。

EDA综合课程设计实验报告

EDA综合课程设计实验报告

EDA综合课程设计实验报告题目:设计一个全双工UART电路院系:XXXX学院学号:XXXXX姓名:严XX教师:林XX时间:2012.06.021 课程设计的摘要原理 (2)2 设计一个全双工UART电路,具体要求如下: (6)3.UART设计 (7)3.1 UART结构 (7)3.2 UART的帧格式 (8)4 UART的Verilog HDL语言设计 (9)4.1 UART分频器 (9)4.2UART发送模块 (10)4.3 UART的接收模块 (14)4.4 UART的硬件测试 (18)5 课程设计总结 (19)1摘要UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。

只需将其核心功能集成即可。

波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。

UART允许在串行链路上进行全双工的通信。

串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。

如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。

或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。

使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。

本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。

实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。

使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。

EDA综合设计实验报告

EDA综合设计实验报告

EDA综合设计1、七人表决器2、数字抢答器班级:电信一班姓名:马莎莎学号:2220102802EDA综合设计实验课题一、设计目的1、掌握用VNDL硬件描述语言做数字电路综合设计的方法。

2、熟练掌握程序的编译、仿真、生成模块及芯片引脚号码锁定方法并下载到目标芯片。

二、实验仪器ZY11EDA13BE型试验箱。

三、实验课题(一)、设计一个七人表决器1、流程图2、顶层原理图3、程序清单(1)、biaojueqiLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity biao isport (xin: in std_logic_vector ( 6 downto 0 );xout: out std_logic;xout0,xout1: out std_logic_vector ( 6 downto 0 ));end entity ;architecture bev of biao isbeginprocess ( xin )variable j: integer :=0;beginj:=0;for i in 0 to 6 loopif xin(i)='1' thenj:=j+1;end if;end loop;if j>3 thenxout<='1';else xout<='0';end if;case j isWHEN 0=>xout1<="1111110";WHEN 1=>xout1<="0110000";WHEN 2=>xout1<="1101101";WHEN 3=>xout1<="1111001";WHEN 4=>xout1<="0110011";WHEN 5=>xout1<="1011011";WHEN 6=>xout1<="1011111";WHEN 7=>xout1<="1110000";WHEN OTHERS=>xout1<="0000000";end case;case j isWHEN 7=>xout0<="1111110";WHEN 6=>xout0<="0110000";WHEN 5=>xout0<="1101101";WHEN 4=>xout0<="1111001";WHEN 3=>xout0<="0110011";WHEN 2=>xout0<="1011011";WHEN 1=>xout0<="1011111";WHEN 0=>xout0<="1110000";WHEN OTHERS=>xout0<="0000000";end case;end process;end architecture bev;(2)、mux2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 ISPORT(CNTL,CNTH :IN STD_LOGIC_VECTOR(6 DOWNTO 0);CNTOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:in STD_LOGIC_VECTOR(2 DOWNTO 0));END mux2;ARCHITECTURE BEHA V OF mux2 ISBEGINPROCESS(sel)BEGINCASE sel ISWHEN"000"=>CNTOUT<=CNTL;WHEN"001"=>CNTOUT<=CNTH;WHEN OTHERS=>CNTOUT<="0000000";END CASE;END PROCESS;END BEHA V;(3)、cnt2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt2 ISPORT(CP,RESET:IN STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END cnt2;ARCHITECTURE BEHA V OF cnt2 ISSIGNAL SEC:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINPROCESS(RESET,CP)BEGINIF(RESET='0')THENSEC<="000";ELSIF(CP'EVENT AND CP='1')THENIF(SEC="001")THENSEC<="000";ELSESEC<=SEC+1;END IF;END IF;END PROCESS;SEL<=SEC;END BEHA V;4、仿真波形5、引脚号码锁定分布表实验符号对应附录符号管脚Xin[0] K1 PIN_45Xin[1] K2 PIN_46Xin[2] K3 PIN_47Xin[3] K4 PIN_53Xin[4] K5 PIN_54Xin[5] K6 PIN_55Xin[6] K7 PIN_56Sel[0] A PIN_7Sel[1] B PIN_8Sel[2] C PIN_9clk 9 PIN_79clear K8 PIN_57xout LED16 PIN_44Seg[0] a PIN_10Seg[1] b PIN_11Seg[2] c PIN_12Seg[3] d PIN_13Seg[4] e PIN_14Seg[5] f PIN_15Seg[6] g PIN_166、生成模块符号(二)、数字抢答器1、设计方框图2、顶层设计原理图3、程序清单(1)、qiangdajianbelibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb isport(rst,start,clk2:in std_logic;s0,s1,s2:in std_logic;states:buffer std_logic_vector(3 downto 0);c0,c1,c2 :buffer std_logic;tmp,q,p:out std_logic);end qdjb;architecture one of qdjb isbeginprocess(s0,rst,start,s1,s2,clk2)beginif rst='0' thenq<='0';tmp<='0';states<="0000";elsif start='0' thenp<=s0 or s1 or s2 ;if (s0='1' )then states<="0001";end if ;if (s1='1' ) then states<="0010";end if ;if (s2='1' ) then states<="0011";end if ;elsif clk2'event and clk2='1'and start='1' then if (s0='1' )then states<="0001";c0<='1';c1<='0';c2<='0';end if ;if (s1='1' ) then states<="0010";c0<='0';c1<='1';c2<='0';end if ;if (s2='1' ) then states<="0011";c0<='0';c1<='0';c2<='1';end if ;q<=s0 or s1 or s2 ;tmp<=not(s0 or s1 or s2) ;end if ;end process ;end one;(2)、cnt20library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity CNT20 isport(CLK,EN,CR :in std_logic;co :out std_logic;QH,QL:out std_logic_vector(3 downto 0));end CNT20;architecture a of CNT20 issignal QNH,QNL :std_logic_vector(3 downto 0);beginco<='1'when(QNL=0 and QNH=0 and EN='1')else'0';process(CLK,CR)beginif(CR='0')thenQNH<="0001";QNL<="1001";elsif(CLK'EVENT and CLK='1')thenif(EN='1')thenif QNL=0 and QNH=0 thenQNL<="1001";QNH<="0001";elsif QNL=0 thenQNL<="1001";QNH<=QNH-1;elseQNl<=QNl-1;end if;end if;end if;end process;QH<=QNH;QL<=QNL;end a;(3)、mux2library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mux2 isport(in1,in2:in std_logic;sel:in std_logic;q:out std_logic);end mux2;architecture arc_mux2 of mux2 isbeginq<=in1 when sel='0'elsein2 when sel='1';end arc_mux2;(4)、dongtaisaomiaolibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sjxz isport (a,b,c: in std_logic_vector(3 downto 0);clk2,rst: in std_logic;s: out std_logic_vector(2 downto 0);y: out std_logic_vector(3 downto 0) );end sjxz;architecture body_chooser of sjxz issignal count: std_logic_vector (2 downto 0);begins<=count;process(clk2,rst)beginif(rst='0')then count<="000";elsif(clk2'event and clk2='1')thenif(count>="010")thencount<="000";else count<=count+1;end if;end if;case count iswhen "000"=>y<=a;when "001"=>y<=b;when "010"=>y<=c;when others=>null;end case;end PROCESS;end body_chooser;(5)、BCDdecoderLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YMQ ISPORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END YMQ;ARCHITECTURE ART OF YMQ ISBEGINPROCESS(AIN4)BEGINCASE AIN4 ISWHEN "0000"=>DOUT7<="1111110"; --0 WHEN "0001"=>DOUT7<="0110000"; --1 WHEN "0010"=>DOUT7<="1101101"; --2 WHEN "0011"=>DOUT7<="1111001"; --3 WHEN "0100"=>DOUT7<="0110011"; --4 WHEN "0101"=>DOUT7<="1011011"; --5 WHEN "0110"=>DOUT7<="1011111"; --6 WHEN "0111"=>DOUT7<="1110000"; --7 WHEN "1000"=>DOUT7<="1111111"; --8 WHEN "1001"=>DOUT7<="1111011"; --9 WHEN OTHERS=>DOUT7<="0000000";END CASE;END PROCESS;END ARCHITECTURE ART;4、仿真波形5、引脚号码锁定分布表实验符号对应附录符号管脚rst1 K1 PIN_45Rst3 K3 PIN_47start K2 PIN_58S0 K5 PIN_54S1 K6 PIN_55S2 K7 PIN_56Clk1 9 PIN_79Clk2 7 PIN_80Clk3 8 PIN_183Warn LED16 PIN_44Warn8 LED15 PIN_41dout[0] a PIN_10dout[1] b PIN_11dout[2] c PIN_12dout[3] d PIN_13dout[4] e PIN_14dout[5] f PIN_15dout[6] g PIN_16Sel[0] A PIN_7Sel[1] B PIN_8Sel[2] C PIN_9 6、生成模块符号四、实验总结这次EDA课程设计,学到了很多很多的东西,不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

EDA课程实验设计报告

EDA课程实验设计报告

《EDA课程实验设计报告》洗衣机自动控制器设计一实验要求:1、由一个按键控制洗衣机的启动、暂停。

2、洗衣机洗涤一定时间后,能自动停止,由一个LED灯闪烁提示,并发出报警提示。

3、洗涤时间能用数码管显示,暂停时时间停止,暂停后时间在停止的时间基础上继续计时。

4、用至少四个LED指示灯的流动表示洗衣机的正转和反转。

即当正转20秒时,四个指示灯从右向左循环移动;反转20秒时,四个指示灯从右向左循环移动。

5、暂停10秒时,四个指示灯闪烁来表示电机停止转动。

二.设计总体思路,基本原理1.设计总体思路从课程设计要求来看,要求实现电机的正传、反转、暂停,用四个LED灯的状态来表示,当显示时间前20秒正传、暂停10秒、反转20秒、再暂停10秒,如此一来,周期恰好是60秒,理所当然的分钟计数器、秒计数器是一定要有的。

接下来脉冲是一定的了,但是有分钟计数器和秒钟计数器还要考虑是不是要60分频器,就我们所学过的来说实现循环有移位寄存器;还有个问题,当洗涤时间到了,报警还要一个报警电路,根据要求,报警的蜂鸣器不可以长时间的叫,要有个合理的时间,我们可以用一个单稳态电路来实现。

方案为:直接从数值上进行提取信号来控制一个可以实现循环的74LS194来实现。

2.基本原理首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时用户置入洗涤时间,并按开始按钮,洗衣机开始工作。

当秒计数器变为零的时候,去分钟计数器上面借数;与此同时,从十秒位转化出来的信号进入移位寄存器后,LED灯表示出电机运转状态;当用户设定的洗涤时间结束后,电路报警并清零。

三.单元电路设计1.一百进制分计数器和六十秒计数器的设计(1)分、秒计数器的设计分、秒计数器我们都用74192片,74192上升沿触发,由UP,DOWN两管脚控制加减计数,有异步置数端LOAR和异步复位端CLR,BO’和CO’分别输出高电平表示加进位和减进位。

由于74192没有保持脚,故需要外围电路实现保持功能。

EDA实验报告(12份).pdf

EDA实验报告(12份).pdf

实验一组合电路的设计1. 实验目的:熟悉MAX + plus II 的VHDL 文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

2. 实验内容:设计一个2选1多路选择器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all; entity mux21a isport(a,b,s:in std_logic;y:out std_logic); end entity mux21a; architecture one of mux21a is beginy<=a when s='0' else b ; end architecture one ;4. 仿真波形(如图1-1所示)图1-1 2选1多路选择器仿真波形5. 试验总结:从仿真波形可以看出此2选1多路选择器是当s为低电平时,y输出为b, 当s为高电平时,y输出为a(y<=a when s='0' else b ;),完成2路选择输出。

实验二时序电路的设计1. 实验目的:熟悉MAX + plus II VHDL文本设计过程,学习简单的时序电路设计、仿真和测试。

2. 实验验内容:设计一个锁存器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all;entity suocun7 isport(clk: in std_logic;en: in std_logic;D: in std_logic_vector(7 downto 0);B:out std_logic_vector(7 downto 0)); end suocun7;architecture one of suocun7 issignal K: std_logic_vector(7 downto 0); beginprocess(clk,en,D)beginif clk'event and clk='1' thenif en ='0'thenK<=D;end if;end if;end process;B<=K;end one;4.仿真波形(如图2-1所示)图2-1 8位锁存器仿真波形此程序完成的是一个8位锁存器,当时钟上升沿到来(clk'event and clk='1')、使能端为低电平(en ='0')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。

EDA实验报告完结版

EDA实验报告完结版

EDA实验报告完结版一、实验目的本次 EDA 实验的主要目的是通过实际操作和设计,深入理解和掌握电子设计自动化(EDA)技术的基本原理和应用。

具体而言,包括熟悉 EDA 工具的使用方法,学会运用硬件描述语言(HDL)进行逻辑电路的设计与描述,以及通过综合、仿真和实现等流程,将设计转化为实际的硬件电路,并对其性能进行评估和优化。

二、实验环境本次实验所使用的 EDA 工具为_____,该工具提供了丰富的功能模块和强大的设计支持,包括原理图编辑、HDL 代码编写、综合、仿真和下载等。

实验所使用的硬件平台为_____开发板,其具备多种接口和资源,便于对设计的电路进行实际验证和测试。

三、实验内容1、基本逻辑门电路的设计与实现使用 HDL 语言(如 Verilog 或 VHDL)设计常见的基本逻辑门电路,如与门、或门、非门等。

通过编写代码,对逻辑门的输入输出关系进行描述,并进行综合和仿真,验证设计的正确性。

2、组合逻辑电路的设计与实现设计并实现较为复杂的组合逻辑电路,如加法器、减法器、编码器、译码器等。

运用 HDL 语言描述电路的功能,进行综合和仿真,确保电路在各种输入情况下的输出结果符合预期。

3、时序逻辑电路的设计与实现设计常见的时序逻辑电路,如计数器、寄存器、移位寄存器等。

在设计过程中,考虑时钟信号、同步复位和异步复位等因素,通过仿真验证时序逻辑的正确性,并对电路的性能进行分析。

4、有限状态机(FSM)的设计与实现设计一个有限状态机,实现特定的功能,如交通信号灯控制器、数字密码锁等。

明确状态转移条件和输出逻辑,通过编写 HDL 代码实现状态机,并进行综合和仿真,验证其功能的准确性。

5、综合与优化对设计的电路进行综合,生成门级网表,并通过优化工具对电路进行面积、速度等方面的优化,以满足特定的设计要求。

6、硬件实现与测试将综合后的设计下载到硬件开发板上,通过实际的输入输出信号,对电路的功能进行测试和验证。

观察电路在实际运行中的表现,对出现的问题进行分析和解决。

EDA课程设计报告

EDA课程设计报告

EDA课程设计报告•相关推荐EDA课程设计报告在我们平凡的日常里,报告的使用成为日常生活的常态,报告中涉及到专业性术语要解释清楚。

那么报告应该怎么写才合适呢?以下是小编为大家整理的EDA课程设计报告,希望对大家有所帮助。

EDA课程设计报告1实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。

net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。

(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。

(4)了解掌握单片机芯片的烧写方法与步骤。

(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。

(6)掌握利用protel 99 se绘制电路原理图及pcb图。

(7)了解pcb板的制作腐蚀过程。

二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?51pro。

net单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。

(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。

(6)制板。

首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。

(7)焊接。

将所给元器件根据原理图一一焊至pcb板相应位置。

(8)调试。

先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。

eda课程设计报告

eda课程设计报告

eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。

2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。

3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。

技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。

2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。

3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。

情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。

2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。

3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。

课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。

学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。

教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。

通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。

后续教学设计和评估将以此为基础,关注学生的学习成果。

二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。

2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。

3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。

EDA综合实验设计报告

EDA综合实验设计报告

Beijing Jiaotong University EDA实验设计报告指导老师:刘彪学院:电子信息工程学院姓名:黄家维学号:13213012班级:电子1301实验地点:电气楼406实验日期:2014年5月29日星期四实验一熟悉QuartusII软件的安装及使用(4学时)我们通过下载及安装,可在电脑上运行Altera Quartus II。

打开软件,新建一个工程,在工程底下新建一个VHDL File,即可实现编程功能。

编完程序后点击Start Compilation可试运行程序,待编写的程序运行无误后,再在此工程下新建一个Vector Waveform File,给程序中的输入变量赋值,保存后点击Start Simulation即可实现程序的仿真。

实验二、组合逻辑电路的设计实验方案设计、实验方法、1.实验方案8-3优先编码器的VHDL描述有多种方法,设计过程中可以根据真值表采用case…when语句、with…select语句、if…then结构等多种手段实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8-3优先编码器。

本实验中根据真值表用if-then结构实现8-3优先编码器2.实验方法首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。

实验步骤1.设计输入利用FILE\New菜单输入VHDL源程序,创建源文件2.设计项目的创建1)原文件存储…..2)利用FILE\Project\Set Project…3.设计编译….4.器件选择及管脚分配…..5.设计仿真…..6.时序分析…..7.编程下载(可选)….LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ENCODER ISPORT(D:IN STD_LOGIC_VECTOR(0 TO 7);A:OUT STD_LOGIC_VECTOR(0 TO 2));END ;ARCHITECTURE XIANI OF ENCODER IS BEGINPROCESS(D)BEGINIF (D(7)='0')THEN A<="111";ELSIF (D(6)='0')THEN A<="110";ELSIF (D(5)='0')THEN A<="101";ELSIF (D(4)='0')THEN A<="100";ELSIF (D(3)='0')THEN A<="011";ELSIF (D(2)='0')THEN A<="010";ELSIF (D(1)='0')THEN A<="001";ELSIF (D(0)='0')THEN A<="000";ELSE A<="ZZZ";END IF;END PROCESS;END;1用CASE语句设计一个4-16译码器。

eda

eda

EDA课程设计实验报告交通信号控制器的VHDL的设计一、设计任务及要求:设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。

要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。

支干道主干道图1 路口交通管理示意图A B C D主干道交通灯绿(40秒)黄(4秒)红(20秒)红(4秒)支干道交通灯红红绿黄表1 交通信号灯的4种状态设计要求:(1)采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。

(2)编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。

二设计原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。

通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制2’设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。

因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。

模块说明:系统输入信号:Clk: 由外接信号发生器提供256的时钟信号;系统输出信号: full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。

模块说明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化控制信号th:倒计数值秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。

模块说明:系统输入信号:full: 接收由clk 电路的提供的1hz 的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号: comb_out: 负责红绿灯的状态显示。

eda课程设计--EDA课程设计实验报告

eda课程设计--EDA课程设计实验报告
通过以上分析设计要求完成的功能,确定函数发生器可由递增斜波产生模块、递减斜波产生模块、三角波产生模块、阶梯波产生模块、正弦波产生模块、方波产生模块和输出波形选择模块组成,以及按键复位控制和时钟输入。由此可确定系统的总体原理框图为:
三、方案选择
1、波形函数发生方案对比选择
波形函数发生是本设计的最重要的部分,实现函数发生的途径也有很多,因此必须选择一种易于实现且精度高的方案,以此来提高本设计的实用性。
VARIABLE a: STD_LOGIC;
BEGIN
IF reset='0' THEN
tmp:="00000000";--复位信号为0,置最小值
ELSIF clk'EVENT AND clk='1' THEN--检测时钟上升沿
IF a='0' THEN--判断a数值,计数。
IF tmp="11111111" THEN
结构图如下图所示:
上图所示的信号发生结构中图中,顶层文件sin.bdf在FPGA中实现,包含两个部分:ROM的地址信号发生器,由6位计数器担任;一个正弦数据ROM,由LPM_ROM模块构成,6位地址线,8位数据线,一个周期含有64个8位数据。LPM_ROM底层是FPGA中的EAB、ESB或M4K等模块。地址发生器的时钟CLK的输入频率F0与每周期的波形数据点数以及D/A输出频率F的关系是:F=F0/64。
tmp:="00000000";--置最小值
a:='0';
ELSE--a为1时,执行递减运算
tmp:=tmp-1;--递减运算
END IF;
END IF;
END IF;

eda课程设计实训报告

eda课程设计实训报告

eda课程设计实训报告一、教学目标本课程的教学目标分为知识目标、技能目标和情感态度价值观目标。

知识目标:学生通过本课程的学习,能够掌握eda的基本概念、原理和应用。

技能目标:学生能够熟练使用eda工具,进行电子系统设计和仿真。

情感态度价值观目标:培养学生对科技创新的兴趣和热情,提高学生解决实际问题的能力。

二、教学内容根据课程目标,本课程的教学内容主要包括eda基本概念、eda工具的使用和电子系统设计实例。

教学大纲如下:1.第一章:eda概述学习eda的基本概念、发展历程和应用领域。

2.第二章:eda工具介绍学习主流eda工具的使用方法和技巧。

3.第三章:电子系统设计实例通过具体实例,学习如何使用eda工具进行电子系统设计和仿真。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

1.讲授法:用于讲解eda的基本概念和原理。

2.讨论法:用于引导学生探讨和解决问题。

3.案例分析法:通过分析具体案例,让学生掌握eda工具的使用方法和技巧。

4.实验法:让学生动手实践,提高实际操作能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的eda教材作为主要学习资料。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。

4.实验设备:保障实验课程的顺利进行,让学生充分实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试。

1.平时表现:通过课堂参与、提问和讨论等方式评估学生的学习态度和理解程度。

2.作业:布置适量的作业,评估学生的掌握情况和应用能力。

3.考试:进行期中和期末考试,全面评估学生的知识掌握和运用能力。

评估方式要求客观、公正,能够全面反映学生的学习成果。

六、教学安排教学进度安排如下:1.第一章:eda概述(2课时)2.第二章:eda工具介绍(4课时)3.第三章:电子系统设计实例(6课时)教学时间安排为每周2课时,共计12课时。

EDA课程设计实验报告

EDA课程设计实验报告

EDA课程设计实验报告课程设计报告课程名称数字系统与逻辑设计课题名称 16*16点阵显示专业通信工程班级1181学号 131 7姓名肖浪指导教师乔汇东吴德建7月 2日湖南工程学院课程设计任务书课程名称数字系统与逻辑设计课题 16*16点阵显示专业班级通信工程1181 学生姓名肖浪学号 131 7指导老师乔汇东吴德建任务书下达日期年 6月 23日任务完成日期年7月2日《数字系统与逻辑设计》课程设计任务书一、设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常见的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。

二、设计要求1、设计正确,方案合理。

2、程序精炼,结构清晰。

3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

4、上机演示。

5、有详细的文档。

文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。

三、进度安排第十八周星期一:课题讲解,查阅资料星期二:总体设计,详细设计星期三:编程,上机调试、修改程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

目录一、课题的主要功能 (3)1.1问题描述 (3)1.2 功能描述 (4)二、课题的功能模块的划分 (4)2.1 系统的总体框图 (4)三、主要功能的实现 (5)3.1 1 8进制加法器设计 (5)3.2 2 16进制计数器设计 (5)3.3 列驱动设计 (5)3.4 字体显示控制器 (5)3.5 顶层文件设计 (5)四、系统调试与仿真 (6)4.1 程序仿真图 (6)4.2 16*16 LED点阵显示引脚分配 (8)4.3 程序运行结果 (9)五、总结与体会 (9)六、附件 (10)七、课程设计评分表 (20)一、课题的主要功能1.1问题描述本实验主要完成汉字字符在LED 上的显示,16*16 扫描LED 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。

EDA课程设计实验报告

EDA课程设计实验报告

《EDA课程设计》报告学号:姓名:班级:指导教师:2013年6 月24日- 2013年7 月5日目录1.引言 ............................................................................................................... 错误!未定义书签。

2.原理图的设计................................................................................................ 错误!未定义书签。

文件的新建............................................................................................... 错误!未定义书签。

原理图文件XX .Sch的建立 ..................................................................... 错误!未定义书签。

元件库的导入........................................................................................... 错误!未定义书签。

原理图中各元件的布局和连线 (3)3.原理图新元件的设计 (4)元件库XX .Lib文件的建立 (4)原理图元件的画法................................................................................... 错误!未定义书签。

注意事项................................................................................................... 错误!未定义书签。

(完整word版)EDA实验报告完整版

(完整word版)EDA实验报告完整版

数字系统设计基础实验报告实验名称: 1.组合电路设计___2.失序电路设计___3.计数器的设计___4.原理图设计加法器学号: ___ ********__ ____**: ___ **_______班级: __ 计科09-1班_____老师: __ ______中国矿业大学计算机学院2011年10月27日一.实验一: 组合电路的设计二.实验目的三.熟悉QuartusⅡ的VHDL文本设计流程全过程, 学习简单组合电路的设计、仿真和硬件测试。

四.实验任务任务1: 利用QuartusⅡ完成2选1多路选择器的文本编辑输入和仿真测试等步骤, 得出仿真波形。

最后在试验系统上进行硬件测试, 验证本项设计的功能。

五.任务2: 将此多路选择器看成是一个元件mux21a, 利用元件例化语句描述电路图, 并将此文件放在同一目录中。

六.对于任务中的例子分别进行编译、综合、仿真, 并对其仿真波形作出分析说明。

七.实验过程1.新建一个文件夹, 取名CNT10。

2.输入源程序。

3.文件存盘, 文件名为cnt10, 扩展名为.vhd。

八.创建工程, 按照老师要求对软件进行设置。

九.进行失序仿真, 得到仿真图形。

十.实验程序任务1:entity CNT10 ISport (a,b,s:in bit;y:out bit);end entity CNT10;architecture one of CNT10 isbeginprocess (a,b,s)if s='0' then y<=a; else y<=b;end if;end process;end architecture one;任务2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXK ISPORT (s0,s1: in STD_LOGIC;a1,a2,a3: in STD_LOGIC;outy: out STD_LOGIC );END ENTITY MUXK;ARCHITECTURE double OF MUXK ISSIGNAL tmpout,tmp:STD_LOGIC;BEGINu1: PROCESS(s0,a2,a3,tmp)BEGINIF s0='0' then tmp<=a2;else tmp<=a3;END IF ;END PROCESS u1 ;u2: PROCESS(s1,a1,tmp,tmpout)BEGINIF s1='0' then tmpout<=a1;else tmpout<=tmp; END IF ;END PROCESS u2 ;outy<=tmpout;END ARCHITECTURE double;十一.实验结果任务1:任务2:十二.实验体会在课堂上对于“EDA与VHDL”这门课的用处及用法一直一知半解, 课上对于一些编程也是学的很模糊, 因为学习过模拟电路与数字电路, 所以总认为器件仿真要用电脑模拟器件或者直接用实物, 但是通过本次实验对QuartusⅡ的初步接触, 了解了其功能的强大。

EDA实验报告(包含多个实验)

EDA实验报告(包含多个实验)

海南大学EDA实验报告学院:信息科学与技术学院专业班级:09理科实验班课程:EDA任课教师:***姓名:***学号:**************实验一 MAX –plusII及开发系统使用一、实验目的1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路2、掌握层次化设计的方法3、熟悉DXT-BⅢ型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。

三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。

它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。

4位全加器设计一个4位全加器可以由4个1位全加器构成,如图1.1所示,1位的全加器串行联接可以实现4位的二进制全加器。

图1.1 4位全加器电路原理图1位全加器可以由两个半加器和一个或门构成,如图1.2所示。

图1.2 全加器电路原理图1位半加器可以由与、或、非等基本门构成,如图1.3所示。

图1.3 半加器电路原理图根据实验原理中,采用层次法设计一个4位全加器。

四、实验步骤1、如图1.3所示,利用MAX-plusⅡ中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。

注意:编译之前必须将文件设为当前文件。

2、建立一个更高得原理图设计层次,如图1.2所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。

3、再建立一个更高得原理图设计层次,如图1.1所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真。

五、实验报告要求:详细描述4位全加器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出加法器的延时情况;最后给出硬件测试的流程和结果。

1)半加器图半加器仿真图2)全加器图全加器仿真图3)四位全加器仿真图实验二十进制计数器一、实验目的学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。

EDA课程设计实验报告

EDA课程设计实验报告

HUNAN UNIVERSITY EDA课程实习报告题目:一台简单模型机的设计学生姓名陈齐磊学生学号20080810104专业班级 08级计科一班指导老师方恺晴完成日期2011年1月7日简单模型机课程设计一、设计目的:掌握微程序控制器的组成,工作原理;进一步明确微程序、微指令、微命令的概念;进一步掌握微指令、微程序的设计以及调试方法;二、实验设备:PC机一台;自制试验箱;Quarter2配套软件;三、实验原理及电路:数据通路:微程序控制器是根据数据通路和指令系统来设计的。

如下图所示:数据通路总框图四、机器指令:此模型机的控制器能控制执行11条机器指令:LDR,STR,ADD,SUB,AND,OR,MUL,CJUMP,IN,OUT,HALT,另外,有一条隐含的机器指令:当存储器中的内容为初始化内容时候,机器就会一直往下读内存,不会做其他的工作。

此设计的控制器,IR 的四位模拟指令代码信号为(IR7,IR6,IR5,IR4),通过手动输入来模拟不同的指令,从而读出不同的微指令。

用单拍方式,将七条指令一条一条读出显示。

执行这些指令之前,需要在RAM中按如下程序表的规则写好指令码和运算数据。

程序表:说明:以上12条指令用于编程是远远不够的。

五、 微程序控制器原理图:基本概念说明:控制器在计算机中的分工是取指令、分析指令、执行指令、再取下一条指令,循环往复以完成程序设定的功能。

微程序控制的基本思想,就是仿照通常的接替程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。

当机器运行时,一条有一条的读出这些指令,从而产生所需要的各种微操作控制信号,使相应部件执行所规定的操作。

本设计的微程序控制器图如下:如图,微程序控制器原理框图主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。

微程序流程图:T2微程序流程图如下图所示,12(包括一条隐含指令)条指令对应七个微程序。

EDA实验报告含结果图

EDA实验报告含结果图

EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的1、熟悉Quartus II软件的使用。

2、熟悉EDA-IV实验箱。

3、熟悉EDA开发的基本流程。

二硬件需求1、RC-EDA-IV型实验箱一台;2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、PC机一台。

三实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。

实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。

表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。

四实验内容VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity EXP3 isport(k1,K2,K3,K4 : in std_logic;ledag : out std_logic_vector(3downto 0);m_Result : out std_logic);end EXP3;--------------------------------------------------------------------architecture behave of EXP3 issignal K_Num : std_logic_vector(2 downto 0); signal K1_Num,K2_Num: std_logic_vector(2 downto 0); signal K3_Num,K4_Num: std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4)beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num;end process;process(K_Num) beginif(K_Num>2) thenm_Result<='1';elsem_Result<='0';end if;end process;end behave;实验电路实验二格雷码转换一实验目的1、了解格雷码变换的原理。

eda课程设计实验报告

eda课程设计实验报告

eda课程设计实验报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。

2. 学生能运用所学知识,设计并实现基本的数字电路。

3. 学生了解数字电路的设计流程,掌握设计规范,具备初步的电路分析能力。

技能目标:1. 学生能独立操作EDA软件,完成电路的原理图绘制、仿真和布局布线。

2. 学生通过实验报告的撰写,提高实验数据分析、总结归纳的能力。

3. 学生在小组合作中,提高沟通协调能力和团队协作能力。

情感态度价值观目标:1. 学生培养对电子科学的兴趣,激发创新意识,增强实践能力。

2. 学生在实验过程中,形成严谨的科学态度,提高问题解决能力。

3. 学生通过课程学习,认识到科技发展对国家和社会的重要性,增强社会责任感。

课程性质:本课程为实践性较强的电子设计课程,旨在培养学生的实际操作能力、创新意识和团队合作精神。

学生特点:六年级学生具有一定的电子知识基础,好奇心强,喜欢动手实践,但需加强对理论知识的理解和应用。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. EDA基本概念与工具介绍- 电子设计自动化原理简介- 常用EDA软件功能与操作方法2. 数字电路设计基础- 数字电路基本元件及功能- 原理图绘制与仿真分析3. 布局布线与PCB设计- PCB设计流程与方法- 布局布线技巧与规范4. 实验报告撰写- 实验数据整理与分析- 实验总结与反思教学大纲安排如下:第一周:- EDA基本概念与工具介绍- 数字电路基本元件及功能第二周:- 原理图绘制与仿真分析第三周:- 布局布线与PCB设计第四周:- 实验报告撰写教学内容与教材关联性:本教学内容与教材《电子技术基础与实践》第六章“电子设计自动化”相关章节紧密相连,确保了教学内容的科学性和系统性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA综合课程设计实验报告题目:设计一个全双工UART电路院系:XXXX学院学号:XXXXX姓名:严XX教师:林XX时间:2012.06.021 课程设计的摘要原理 (2)2 设计一个全双工UART电路,具体要求如下: (6)3.UART设计 (7)3.1 UART结构 (7)3.2 UART的帧格式 (8)4 UART的Verilog HDL语言设计 (9)4.1 UART分频器 (9)4.2UART发送模块 (10)4.3 UART的接收模块 (14)4.4 UART的硬件测试 (18)5 课程设计总结 (19)1摘要UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。

只需将其核心功能集成即可。

波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。

UART允许在串行链路上进行全双工的通信。

串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。

如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。

或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。

使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。

本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。

实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。

使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。

这样,既可以满足实际的应用,实现所要求的简单的通信和控制,又能够去除更多不需要的繁杂复杂的功能实现。

一、UART的原理串行通信是指外部设备和计算机间使用一根数据线(另外需要地线,可能还需要控制线)进行数据传输的方式。

数据在一根数据线上一位一位传输,每一位数据都占据一个固定的时间长度。

与并行通信方式相比,串行通信方式的传输速度较慢,但这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,因此得到了广泛的应用。

基本的UART只需要发送和接收两条数据线就可以完成数据的全双工通信,其基本功能是在发送端将控制器通过总线传过来的并行数据,以设定的格式,设定的频率串行地传输出去,并同时在接收端将串行接收到的数据,转换成相应的并行数据发送出去。

UART的基本帧格式如图1所示。

其中,起始位总是逻辑O状态,停止位总是逻辑l状态,其持续时间可选为1位、1.5位或2位,其数据位可为5、6、7、8位,校验位可根据需要选择奇校验位,偶校验位或无校验位。

二、URAT整体结构的设计2 设计一个全双工UART电路,具体要求如下:1)支持数据格式:起始位(1bit)+数据(8bit)+奇偶校验位(1bit)+终止位(1bit)2)奇/偶校验可配置3)可配置支持115200以下的常见波特率4)支持115200以下的波特率自适应,自适应过程如下:a.复位后,UART首先接收输入,不断自动调整波特率,直到以一定波特率正确连续接收到3个bytes的0x55b.接着UART以此波特率连续发送3个bytes 0xaac.之后两端以此波特率进行通信d.波特率自适应只在电路复位后进行一次,如欲再次自适应波特率应对电路再次复位e.波特率自适应过程中不能对UART的波特率作任何设置,自适应完成后可以对波特率作设置5)自动计算校验位用于发送数据;对接收到的校验位和数据进行校验,发现错误应设置错误标志,并丢弃数据6)对接收不正常数据(如无终止位、无校验位、数据位数不正确等)应能自动识别并设置错误标志、丢弃3.UART设计通常设计数字电路大都采用自顶向下将系统按功能逐层分割的层次化设计方法,这比传统自下向上的EDA设计方法有更明显的优势(当时的主要设计文件是电路图)。

因为由自顶向下的设计过程可以看出,从总体行为设计开始到最终逻辑综合,形成网络表为止。

每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件的设计周期。

UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是一种应用广泛的短距离串行传输接口。

UART允许在串行链路上进行全双工的通信。

串行外设用到的RS232-C异步串行接口,一般采用专用的集成电路即UART实现。

如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。

或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。

使用VHDL 将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。

本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。

3.1 UART结构UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。

本设计主要设计UART中最重要的发送部分和接收部分,结构如下图13.2 UART的帧格式UART的帧格式如图2所示。

发送数据过程:空闲状态,线路处于高电位;当收到发送数据指令后,拉低线路一个数据位的时间T,接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和停止位(停止位为高电位),一帧资料发送结束。

接收数据过程:空闲状态,线路处于高电位;当检测到线路的下降沿(线路电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备准备接收数据或存入缓存。

UART是异步传输,没有传输同步时钟。

为了能保证数据传输的正确性,UART采用16倍数据波特率的时钟进行采样。

每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误码。

一般UART一帧的数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。

UART的接收数据时序为:当检测到数据的下降沿时,表明线路上有数据进行传输,这时计数器CNT开始计数,当计数器为24=16+8时,采样的值为第0位数据;当计数器的值为40时,采样的值为第1位数据,依此类推,进行后面6个数据的采样。

如果需要进行奇偶校验,则当计数器的值为152时,采样的值即为奇偶位;当计数器的值为168时,采样的值为“1”表示停止位,一帧数据接收完成。

4 UART的Verilog HDL语言设计4.1 UART分频器假设数据的波特率为p,则所需时钟的频率为16*p。

以波特率p为115200为例,系统时钟为50MHz,则分频系数为50000000/(16*115200) = 27.127,取整为27。

分频器V erilog HDL语言代码如下:module clkdiv(clk, clkout);input clk; //系统时钟output clkout; //采样时钟输出reg clkout;reg [15:0] cnt;always @(posedge clk) //分频进程beginif(cnt == 16'd12)beginclkout <= 1'b1;cnt <= cnt + 16'd1;endelse if(cnt == 16'd26)beginclkout <= 1'b0;cnt <= 16'd0;endelsebegincnt <= cnt + 16'd1;endendendmodule对此进行仿真,加入输入输出信号,设置系统时钟信号clk的周期为20ns。

仿真波形图如下图3:4.2UART发送模块UART发送模块的功能:接收到发送指令后,把数据按UART协议输出,先输出一个低电平的起始位,然后从低到高输出8个数据位,接着是可选的奇偶校验位,最后是高电平的停止位。

Verilog HDL语言代码如下:module uarttx(clk, datain, wrsig, idle, tx);input clk; //UART时钟input [7:0] datain; //需要发送的数据input wrsig; //发送命令,上升沿有效output idle; //线路状态指示,高为线路忙,低为线路空闲output tx; //发送数据信号reg idle, tx;reg send;reg wrsigbuf, wrsigrise;reg presult;reg[7:0] cnt; //计数器parameter paritymode = 1'b0;//检测发送命令是否有效always @(posedge clk)beginwrsigbuf <= wrsig;wrsigrise <= (~wrsigbuf) & wrsig;endalways @(posedge clk)beginif (wrsigrise && (~idle)) //当发送命令有效且线路为空闲时,启动新的数据发送进程beginsend <= 1'b1;endelse if(cnt == 8'd176) //一帧资料发送结束beginsend <= 1'b0;endendalways @(posedge clk)beginif(send == 1'b1)begincase(cnt) //产生起始位8'd0:begintx <= 1'b0;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd16:begintx <= datain[0]; //发送数据0位presult <= datain[0]^paritymode; idle <= 1'b1;cnt <= cnt + 8'd1;end8'd32:begintx <= datain[1]; //发送数据1位presult <= datain[1]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd48:begintx <= datain[2]; //发送数据2位presult <= datain[2]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd64:begintx <= datain[3]; //发送数据3位presult <= datain[3]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd80:begintx <= datain[4]; //发送数据4位presult <= datain[4]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd96:begintx <= datain[5]; //发送数据5位presult <= datain[5]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd112:begintx <= datain[6]; //发送数据6位presult <= datain[6]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd128:begintx <= datain[7]; //发送数据7位presult <= datain[7]^presult;idle <= 1'b1;cnt <= cnt + 8'd1;end8'd144:begintx <= presult; //发送奇偶校验位presult <= datain[0]^paritymode; idle <= 1'b1;cnt <= cnt + 8'd1;end8'd160:begintx <= 1'b1; //发送停止位idle <= 1'b1;cnt <= cnt + 8'd1;end8'd176:begintx <= 1'b1;idle <= 1'b0; //一帧资料发送结束cnt <= cnt + 8'd1;enddefault:begincnt <= cnt + 8'd1;endendcaseendelsebegintx <= 1'b1;cnt <= 8'd0;idle <= 1'b0;endendendmodule为了测试UART发送模块的正确性,需要编写一个测试模块来测试UART发送模块,Verilog HDL语言代码如下:module testuart(clk, dataout, wrsig);input clk;output[7:0] dataout;output wrsig;reg [7:0] dataout;reg wrsig;reg [7:0] cnt;always @(posedge clk)beginif(cnt == 254)begindataout <= dataout + 8'd1; //每次数据加“1”wrsig <= 1'b1; //产生发送命令cnt <= 8'd0;endelsebeginwrsig <= 1'b0;cnt <= cnt + 8'd1;endendendmodule将发送模块和测试模块生成原理图模块和频率长生模块连接成发送模块电路图,如下图4:得到的仿真图如下图5波形仿真报告说明:对图,当发送命令wrsig的上升沿有效时,启动发送数据。

相关文档
最新文档