车辆与动力工程学院课程设计说明书.doc

上传人:精*** 文档编号:854237 上传时间:2023-09-16 格式:DOC 页数:22 大小:208.71KB
下载 相关 举报
车辆与动力工程学院课程设计说明书.doc_第1页
第1页 / 共22页
车辆与动力工程学院课程设计说明书.doc_第2页
第2页 / 共22页
车辆与动力工程学院课程设计说明书.doc_第3页
第3页 / 共22页
车辆与动力工程学院课程设计说明书.doc_第4页
第4页 / 共22页
车辆与动力工程学院课程设计说明书.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、车辆与动力工程学院课程设计说明书第一章 绪 论1第二章 总体设计22.1 设计思想22.2设计原理32.3 单元模块设计32.3.1 分频模块32.3.2 巴克码序列产生模块52.3.3 动态扫描显示控制模块62.3.4 译码显示驱动模块82.3.5 顶层电路的设计92.4 巴克码检测器102.4.1巴克码检测器驱动模块。102.4.2 顶层电路的设计13第三章电路的仿真及分析143.1 分频器仿真143.2 巴克码产生模块仿真153.3 八进制计数器仿真153.4 位选模块仿真153.5 译码显示模块仿真163.6 顶层电路仿真1617第四章 心得体会17附录18参考文献21第一章 绪 论人

2、类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是 EDA 技术。没有EDA 技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对 EDA 技术提出新要求。EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计

3、和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。 可编程逻辑器件自 20 世纪 70 年代以来,经历了 PAL、GAL、CPLD、FPGA几个发展阶段,其中 CPLD、FPGA 属高密度可编程逻辑器件,目前集成度以高达 200 万门/片,它将掩膜 ASIC 集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由 ASIC 实现,因此开发风险也大为降低。CPLD/FPGA 器件已成为

4、现代高层次电子设计方法的实现载体。 VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。另外,VHDL 还有以下优点:VHDL 的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL 可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL 的设计不依赖于特定的器

5、件,方便了工艺的转换。第二章 总体设计2.1 设计思想本次设计首先在 Quartus环境中对巴克码发生器的各个部分利用 VHDL 这一硬件描述语言予以设计,生成模块。而整个设计的核心部分就在序列产生与码数显示模块,产生模块完成的功能是八位巴克码序列(01110010)随时钟脉冲逐一产生,显示模块完成的功能是将八位序列码及其变化过程在七段数码管上显示出来。随后运用 Quartus中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真直至达到最初的设计要求。2.2设计原理根据层次化设计理论,巴克码发生器设计可由产生及显示先后分为分频

6、模块、序列产生模块、动态扫描显示控制模块、译码显示驱动模块,其系统框图如图2.2 所示。图 2.2 巴克码产生器原理框图巴克码主要用于帧同步,帧同步的概念比较简单,但又十分重要,在一般的移动通信系统中采用集中插入同步法,集中插入方式的帧同步码,要求在接收端进行同步识别时出现伪同步的可能性尽量小,并要求此码组具有尖锐的自相关函数,以便识别。另外,识别器也要尽量简单,目前用得最广泛的是性能良好的“巴克码”(Barker)。巴克码是一种具有特殊规律的二进制码组。它是一个非周期序列,一个 n 位的巴克码X1,X2,X3, Xn,每个码元只可能取值+1 或-1。2.3 单元模块设计2.3.1 分频模块分

7、频模块将实验箱提供的 20MHz 的时钟脉冲分为 1Hz 的序列产生时钟脉冲和 1000Hz 的控制模块时钟脉冲。实际巴克码产生频率是远大于 1Hz 的,设计中为了便于观察序列输出时的变化所以将产生频率设为 1Hz。控制模块时钟用于控制显示模块对序列码的位选数据输出和八位七段数码管的位选显示,因此当控制时钟设为 1000Hz 时每位数码管显示扫描频率为 125Hz 显示效果较好。通过 VHDL 语言的顺序语句 IF-THEN-ELSE 来实现对输入脉冲的分频功能,1Hz 分频器 VHDL 源程序如下。library ieee;use ieee.std_logic_1164.all;use ie

8、ee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fpq1 isport(clk:in std_logic;co:out std_logic);end entity ;architecture bhv of fpq1 issignal s:std_logic;beginprocess (clk)variable QB:integer range 1 to 10000000;beginif rising_edge(clk) thenif QB=10000000 THEN QB:=1;s= not s; else QB:=Q

9、B+1;end if;end if;end process;co=s;end bhv; 1000Hz 分频器源程序见附录。1000Hz 分频器与上述 1Hz 分频器源程序一致,只需将计数量 QB 的范围变为 1 to 10000 将判断条件改为 if QB=10000即可。生成的分频器元件如图2.3.1 所示。 图2.3.1 分频器元件图2.3.2 巴克码序列产生模块序列的产生由复位控制端 reset 实现,当 reset 为低电平时使八位序列码01110010,当 reset 为高电平时序列随序列发生时钟脉冲逐一输出。考虑到序列的排列是固定的可用移位的原理将序列按原顺序重复逐一输出。此程序主

10、要用到位运算符号&,其 VHDL 源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xulie isport(clk,reset:in std_logic;q:out std_logic;dout:out std_logic_vector(7 downto 0); end entity ;architecture bhv of xulie issignal s:std_logic_vector(7 downto 0)

11、;beginprocess(clk,reset)beginif reset=0 then s=01110010;elsif reset=1 and (clkevent and clk=1) thens=s(6 downto 0)&s(7);end if;end process;q=s(7);dout=s;end bhv;此模块为发生器的核心模块,其两个输出数据,一个作为巴克码发生端口只输出高低变化的方波脉冲即码元输出;一个作为提供显示模块数据的编码输出端口。生成的原件如图 2.3.2 所示 图2. 3.2 序列产生模块2.3.3 动态扫描显示控制模块八位巴克码的显示需要八个位上的数据分别在八位

12、数码管上显示那么需要八种状态的改变,则显示控制模块主要由八进制计数器模块和位选模块构成。其中计数器提供了八种状态的改变,位选模块决定了在哪种状态输出哪一位数据。位选需要序列数据的输入、状态控制输入和选中位数据输出三个端口,而序列数据是每一位的数据时变化的所以选中位的数据只能由语句 dout=din( x)实现 x 为对应的位数。 八进制计数器 VHDL 源程序如下。八进制计数器模块原件如图 2.3.3(a)所示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_a

13、rith.all;entity count8 isport(clk:in std_logic;count8:out std_logic_vector(2 downto 0);end count8;architecture bhv of count8 issignal s:std_logic_vector(2 downto 0);beginprocess(clk)beginif(clkevent and clk=1)thenif s=7 thens=000;else s=s+1;end if;end if;end process;count8=s;end bhv;图 2.3.3(a)八进制计数器

14、模块 位选控制模块主要用到 withselect 语句实现不同状态下输出不同位的数据功能,其 VHDL 源程序如下。 位选模块如图 2.3.3(b)所示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity weixuan isport(cin:in std_logic_vector(2 downto 0); din:in std_logic_vector(7 downto 0);dout:out std_logic);end ent

15、ity ;architecture bhv of weixuan isbeginwith cin selectdout=din(0) when 000,din(1) when 001,din(2) when 010,din(3) when 011,din(4) when 100,din(5) when 101,din(6) when 110,din(7) when 111;end bhv;图 2.3.(b)位选模块2.3.4 译码显示驱动模块此部分为典型的译码器,主要将前面显示控制输出的位选数据转化为七段数码管的显示编码,而巴克码每一位都只有 0 和 1 两种情况,所以只需用器端数码管的 0

16、和 1 的显示编码分别为0111111 和 0000110。其源程序和前面的位选一样主要由 withselect 语句构成。译码显示模块原件如图 2.3.4所示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xianshi isport(din:in std_logic;segout:out std_logic_vector(6 downto 0);end entity architecture bhv of xianshi

17、 isbeginwith din selectsegout y = 0;if x=1 then next_state = st1;else next_state y = 0;if x=1 then next_state = st2;else next_state y = 0;if x=1 then next_state = st3;else next_state y = 0;if x=0 then next_state = st4;else next_state y = 0;if x=0 then next_state = st5;else next_state y = 0;if x=1 th

18、en next_state = st6 else next_state y = 0; if x=0 then next_state = st7;else next_state y = 1;if x=1 then next_state = st1;else next_state = st0;end if; end case;end process;process(clk)begin if (clkevent and clk=1)then current_state= next_state;end if; end process;end behave; 图 2.4.1巴克码检测模块2.4.2 顶层

19、电路的设计 根据原理框图和各模块原件图利用 Quartus电路图仿真功能可直接将由VHDL 语言设计生成的模块连接成顶层电路如图 2.4.2 所示。; 图 2.4.2顶层电路第三章电路的仿真及分析3.1 分频器仿真1Hz 的分频器在仿真过程中计算量较大波形效果不明显在此一 40 分频为例做出仿真波形如图 3.1所示。图 3.1分频器仿真波形由仿真结果可看到经过 20 个输入脉冲输出就翻转即达到 40 分频的目的。3.2 巴克码产生模块仿真巴克码发生及复位波形如图 3.2所示。由仿真波形可看出当复位端 reset 为低电平时序列始终为 01110010,当 reset变为高电平时序列码元输出端

20、q 依次输出编码 0、1、1、1、0、0、1、0 如此反复,而序列编码输出端 dout 的输出序列随时钟脉冲左移,可见功能实现正常。图 3.2巴克码发生模块波形3.3 八进制计数器仿真计数器实现较简单,波形如图 3.3 所示图 3.3 八进制计数器仿真波形3.4 位选模块仿真位选模块仿真波形如图 3.4 所示。图 3.4 位选模块仿真波形 由波形可看出当输入序列数据位 01110010,位选状态控制由 000 到 111 变化时,输出端 dout 输出的正是状态量对应序列位的波形,此模块满足功能。3.5 译码显示模块仿真译码模块仿真波形如图 3.5 所示图 3.5 译码显示仿真波形 由输入端

21、din 为低电平(0)七段编码输出为 0111111,din 为高电平(1)编码输出为 0000110,达到设计要求。3.6 顶层电路仿真由于本次设计要求要达到序列的发生和序列的显示两个功能,序列的发生功能仿真已经可以由巴克码发生模块独立实现,而显示功能仿真只能得到七段编码因此整体电路的仿真不能直观实现。但可由各模块功能的正确性和电路结构的完整性分析整体电路可以实现设计要求,只是需要硬件实现来证实。顶层电路仿真波形如图 3.6 所示。图 3.6顶层电路仿真波形如 。3.7巴克码检测器仿真 巴克码检测器简单,波形如图 3.7 所示图3.7巴克码检测器仿真波形图 由波形图可以看出,当X输入为111

22、0010时,输出y就输出一个高电平,达到设计要求。第四章 心得体会本次课程设计至此已经接近尾声,两周的时间虽然很短暂,但在这两个星期的设计过程中收获颇丰。设计的核心内容就是 Quartus环境中,利用 VHDL 语言设计出基于 FPGA 的巴克码发生器。整个设计过程中首先对数字电路这门课程有了更深的了解,因为课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对数字电路的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;以前的数字实验只是针对某一个小的功能设计,而此次得 EDA 课程设计对我们的总体电路的设计的要求更严格,需要通过翻

23、阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;其次,在电路仿真的过程中总会出现一些问题 ,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高 ;再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。感谢学校给我们这次机会,锻炼了我们的动手能力。通过这次课设让我明白理论和实际操作之间差距,而且也让我很明确得意识到自己在数电上有很多的知识漏洞,以后应该多钻研一下。同时也感谢指导老师在设计过程中的辅导以及同学的帮助。附录巴克码发生器,能产生8位巴克码(01110010)并显示码数的总体程序。 LIBR

24、ARY ieee;USE ieee.std_logic_1164.all; LIBRARY work;ENTITY dingceng IS port(rest : IN STD_LOGIC;clk : IN STD_LOGIC;q : OUT STD_LOGIC;count8 : OUT STD_LOGIC_VECTOR(2 downto 0);segout : OUT STD_LOGIC_VECTOR(6 downto 0);END dingceng;ARCHITECTURE bdf_type OF dingceng IS component count8PORT(clk : IN STD_

25、LOGIC; count8 : OUT STD_LOGIC_VECTOR(2 downto 0);end component;component fpq1PORT(clk : IN STD_LOGIC; co : OUT STD_LOGIC);end component;component fpq2PORT(clk : IN STD_LOGIC; co : OUT STD_LOGIC);end component;component weixuanPORT(cin : IN STD_LOGIC_VECTOR(2 downto 0); din : IN STD_LOGIC_VECTOR(7 do

26、wnto 0); dout : OUT STD_LOGIC);end component;component xianshiPORT(din : IN STD_LOGIC; segout : OUT STD_LOGIC_VECTOR(6 downto 0);end component;component xuliePORT(clk : IN STD_LOGIC; reset : IN STD_LOGIC; q : OUT STD_LOGIC; dout : OUT STD_LOGIC_VECTOR(7 downto 0);end component;signalSYNTHESIZED_WIRE

27、_0 : STD_LOGIC;signalSYNTHESIZED_WIRE_1 : STD_LOGIC_VECTOR(2 downto 0);signalSYNTHESIZED_WIRE_2 : STD_LOGIC_VECTOR(7 downto 0);signalSYNTHESIZED_WIRE_3 : STD_LOGIC;signalSYNTHESIZED_WIRE_4 : STD_LOGIC;BEGIN count8 SYNTHESIZED_WIRE_0, count8 = SYNTHESIZED_WIRE_1);b2v_inst1 : fpq1PORT MAP(clk = clk, c

28、o = SYNTHESIZED_WIRE_4);b2v_inst2 : fpq2PORT MAP(clk = clk, co = SYNTHESIZED_WIRE_0);b2v_inst3 : weixuanPORT MAP(cin = SYNTHESIZED_WIRE_1, din = SYNTHESIZED_WIRE_2, dout = SYNTHESIZED_WIRE_3);b2v_inst4 : xianshiPORT MAP(din = SYNTHESIZED_WIRE_3, segout = segout);b2v_inst5 : xuliePORT MAP(clk = SYNTH

29、ESIZED_WIRE_4, reset = rest, q = q, dout = SYNTHESIZED_WIRE_2);END;参考文献 1 江国强编著. EDA技术与实用(第三版). 北京:电子工业出版社,2011.2 曹昕燕,周凤臣.EDA技术实验与课程设计.北京:清华大学出版社,2006.53 阎石主编.数字电子技术基础.北京:高等教育出版社,2003.4潘松,黄继业EDA 技术与 VHDL北京:清华大学出版社,2007.15宋嘉玉,孙丽霞EDA 实用技术北京:人民邮电出版社,2006.126齐洪喜,陆颖VHDL 电路设计实用技术北京:清华大学出版社,2004.57刘艳萍,高振斌,李志 军EDA 实用技术及应用北京:国防工业出版社,2006.122

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922