书签 分享 收藏 举报 版权申诉 / 94
上传文档赚钱

类型第八章数字电子系统设计实践学习培训模板课件.ppt

  • 上传人(卖家):林田
  • 文档编号:4179794
  • 上传时间:2022-11-17
  • 格式:PPT
  • 页数:94
  • 大小:2.67MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第八章数字电子系统设计实践学习培训模板课件.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第八 数字 电子 系统 设计 实践 学习 培训 模板 课件
    资源描述:

    1、第八章 数字电子系统设计实践8.1 移位相加8位硬件乘法器电路设计 硬件乘法器的功能-实现两个8位二进制数的乘法运算 硬件乘法器的设计思路硬件乘法器的乘法运算可以通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。硬件乘法器的设计 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sreg8b IS -8位右移寄存器 PORT(clk:IN STD_LOGIC;LOAD:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

    2、qb:OUT STD_LOGIC );END sreg8b;ARCHITECTURE behave OF sreg8b IS SIGNAL reg8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(clk,load)BEGIN IF load=1 THEN reg8=din;-装载新数据 ELSIF CLKEVENT AND CLK=1 THEN reg8(6 DOWNTO 0)=reg8(7 DOWNTO 1);-数据右移 END IF;END PROCESS;qb=reg8(0);-输出最低位END behave;右移寄存器 模块设计LIBRARY I

    3、EEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder8 IS PORT(b,a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);s:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);END adder8;ARCHITECTURE behav OF adder8 ISBEGIN s=0&a+b;END behave;8位加法器模块设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY andarith IS PORT(ab

    4、in:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(7 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END andarith;ARCHITECTURE behave OF andarith ISBEGIN PROCESS(abin,din)BEGIN FOR I IN 0 TO 7 LOOP -循环,完成8位与1位运算 DOUT(I)=DIN(I)AND ABIN;END LOOP;END PROCESS;END behave;选通与门模块设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

    5、.ALL;ENTITY reg16b IS PORT(clk,clr :IN STD_LOGIC;d:IN STD_LOGIC_VECTOR(8 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END reg16b;ARCHITECTURE behave OF reg16b IS SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS(clk,clr)BEGIN IF clr=1 THEN R16S 0);-清零信号 ELSIF CLKEVENT AND CLK=1 THEN R16S(6 DO

    6、WNTO 0)=R16S(7 DOWNTO 1);-右移低8位 R16S(15 DOWNTO 7)=D;-将输入锁到高8位 END IF;END PROCESS;q=R16S;END behave;16位锁存器模块设计波形仿真 8.2 十字路口交通管理器设计十字路口交通管理器设计16位锁存器模块设计交通管理器的设计思路交通管理器的设计控制器模块设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY traffic_control IS PORT(clk:IN STD_LOGIC;c1,c2,c3:OUT STD_LOGIC;-各定时计数器的使能信号

    7、w1,w2,w3:IN STD_LOGIC;-各定时计数器的工作信号 r1,r2:OUT STD_LOGIC;-两个方向的红灯信号 y1,y2:OUT STD_LOGIC;-两个方向的黄灯信号 g1,g2:OUT STD_LOGIC;-两个方向的绿灯信号 reset:IN STD_LOGIC);-复位信号END traffic_control;ARCHITECTURE behave OF traffic_control IS TYPE state_space IS(s0,s1,s2,s3);SIGNAL state:state_space;BEGIN PROCESS(clk)BEGIN IF

    8、reset=1 THEN stateIF w1=1 THEN-条件信号赋值语句 stateIFw2=1 THEN stateIF w3=1 THEN stateIF w2=1 THEN state=s0;END IF;END CASE;END IF;END PROCESS;c1=1 WHEN state=s0 ELSE0;c2=1 WHEN state=s1 OR state=s3 ELSE0;c3=1 WHEN state=s2 ELSE0;r1=1 WHEN state=s1 OR state=s0 ELSE0;y1=1 WHEN state=s3 ELSE0;g1=1 WHEN stat

    9、e=s2 ELSE0;r2=1 WHEN state=s2 OR state=s3 ELSE0;y2=1 WHEN state=s1 ELSE0;g2=1 WHEN state=s0 ELSE0;END behave;定时器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY count30 IS PORT(clk:IN STD_LOGIC;enable:IN STD_LOGIC;c:OUT STD_LOGIC);END count30;ARCHITECTURE behave OF count30 ISBEGIN PROCESS(clk)VARIA

    10、BLE cnt:INTEGER RANGE 30 DOWNTO 0;BEGIN IF(clkEVENT AND clk=1)THEN IF enable=1 AND cnt30 THEN cnt:=cnt+1;ELSE cnt:=0;END IF;END IF;IF cnt=30 THEN c=1;ELSE c=0;END IF;END PROCESS;END behave;波形仿真8.3 可编程定时可编程定时/计数器设计计数器设计 可编程定时/计数器的功能 硬件定时就是利用可编程定时/计数器,在简单软件控制下产生准确的延时时间。其基本原理是通过软件确定定时/计数器的工作方式、设置计数初值并启

    11、动计数器工作,当计数到给定值时,便自动产生定时信号。可编程定时/计数器设计思路 可编程定时/计数器工作过程 同定时/计数器1。模型结构包含1个时钟输入,1个清零信号输入,1个写入信号输入,1个3位的控制字输入,1个2位的选通信号输出,1个计数器1载入控制输出,1个计数器2载入控制输出。(1)控制字寄存器(2)定时/计数器1包含1个时钟输入,1个载入控制输入,1个门控制输入,1个2位选通方式输入,1个8位数据输入,1个8位数据输出,1个波形输出。(3)定时/计数器2SC2、M1、M0定义控制字格式为:对应功能:SC20,计数器1;M1 M001,频率发生器方式SC21,计数器2;M1 M010,

    12、计数结束中断方式计数器的模式输入为2 位,可自定义最多四种模式;数据输入8 位,计数范围为0256;每个计数器各有一个门控信号和对应门控信号的波形输出,在门控信号作用下,计数/定时延时。控制字定义内部结构 所设计定时/计数器的内部结构图如图所示可编程定时/计数器顶层电路 可编程定时/计数器仿真波形 8.4 智能函数发生器设计智能函数发生器设计 函数发生器总体框图 递增斜波 递减斜波 三角波 方波 正弦波 阶梯波 8.5 数据采集系统设计数据采集系统设计 模拟输入A/D转换控制核心D/A转换模拟输出显示数据采集系统示意图 A AD DC C0 08 80 09 91234567891011121

    13、3142827262524232221201918171615IN3IN0IN7IN4IN2IN5IN6IN1STARTEOCD3OECLOCKVccREF(+)EDND1A0A1A2ALED7D6D5D4D0REF(-)D23V2.5V2V1.5V1V+5VCP+5V3.5V4V4.5V数据输入单元 数据采集系统总体框图 D DA AC C0 08 83 32 21314151645672019891112D7D6D5D4D323D2D1D0+15V76451-15VV01 2 3 10 17 18RP15K2CK1310K50KVcc+5V数据输出单元【例8-19】-控制模块LIBRARY

    14、 IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY control IS PORT(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0);clk,k1:IN STD_LOGIC;fun:IN STD_LOGIC_VECTOR(1 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);alm:OUT STD_LOGIC);END control;ARCHITECTURE behav

    15、e OF control ISBEGIN PROCESS(clk)VARIABLE x:STD_LOGIC;VARIABLE cnt:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN IF clkEVENT and clk=1 THEN IF k1=0 THEN-循环检测模式 IF x=0 THEN sel10000000 THEN-常数决定电压超过几伏时报警改变常数可改变设置电压 alm=1;ELSE alm=0;x:=0;END IF;END IF;ELSE-数据处理模式 IF fun=00 THEN -直接将数据送出,因为已经实现了增大到2倍,所以得到的电压为2倍 q

    16、=d;ELSIF fun=01 THEN-缩小到1/2 q=0&0&d(7 DOWNTO 2);ELSE-对数据不作处理 q=0&d(7 DOWNTO 1);END IF;END IF;END IF;END PROCESS;END behave;【例8-20】-2选1模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ch21 IS PORT(a,b:IN STD_LOGIC_VECTOR(2 DOWNTO 0);s:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ch21;ARCHITEC

    17、TURE behave OF ch21 ISBEGIN PROCESS(s,a,b)BEGIN IF s=0 THEN q=a;ELSE q=b;END IF;END PROCESS;END behave;【例8-21】-七段译码器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY disp IS PORT(d:IN STD_LOGIC_VECTOR(2 DOWNTO 0);clk:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END disp;ARCHITECTURE behave OF dis

    18、p ISBEGIN PROCESS(clk)VARIABLE x:STD_LOGIC;VARIABLE tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);VARIABLE cnt:INTEGER RANGE 0 TO 3;BEGIN IF clkEVENT AND clk=1 THEN IF x=0 THEN tmp:=d;x:=1;ELSE IF cntqqqqqqqqq=0000000;END CASE;ELSE q=10?接通电源速度级别1Pause?速度级别1命为 0?速度级别3保持状态Pause?Score=30?速度级别4Pause?命为 0?命为 0?Pause?

    19、Score=10?Y系统简单流程 存储器模块设计 速度选择模块设计 得分记分模块设计得分记分模块设计命数记分模块 加法器和减法器模块 灯显示电路 系统完整电路图 系统仿真波形图1 系统仿真波形图28.11 CRC校验设计校验设计 8.11.1 CRC校验编码原理校验编码原理 CRC码的编码规则是:将原信息码(kbit)左移r位(n=k+r),右则补零。运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。CRC码由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n bit,信息码长k bit,就称为(n,k)码,剩余的r位即为校

    20、验码(n=k+r)。其中r位CRC校验码是通过k位有效信息序列被一个事先选择的r+1位“生成多项式”相“除”后得到的余数。这里的除法是“模2运算“。标准的CRC码是:CRC-CCITT和CRC-16它们的生成多项式是:CRC-CCITT=x16+x12+x5+1 CRC-16=x16+x15+x2+1 8.11.2 CRC校验设计实例校验设计实例 sdata:12位的待发送信息;Datald:sdata的装载控制信号;merror:误码警告信号;datafini:数据接收校验完成;rdata:接收模块(纠错模块)接收的12位有效信息数据;datacrc:附加上5位CRC校验码的17位CRC码,

    21、在生成模块被发送,在接收模块被接收;hand_send,hand_recv:生成、纠错模块的握手信号,协调相互之间的关系。clk:时钟信号。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY crcm IS PORT(clk,hand_recv,datald,rst:IN STD_LOGIC;sdata :IN STD_LOGIC_VECTOR(11 DOWNTO 0);datacrci:INSTD_LOGIC_VECTOR(16

    22、 DOWNTO 0);datacrco:OUT STD_LOGIC_VECTOR(16 DOWNTO 0);rdata:OUT STD_LOGIC_VECTOR(11 DOWNTO 0);datafini:OUT STD_LOGIC;merror,hand_send:OUT STD_LOGIC);END crcm;【例例8-45】CRC校验模块的校验模块的VHDL实现实现ARCHITECTURE behav OF crcm IS CONSTANT multi_coef:STD_LOGIC_VECTOR(5 DOWNTO 0):=110101;-生成多项式系数 SIGNAL cnt,rcnt:S

    23、TD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL dtemp,sdatam,rdtemp:STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL rdatacrc:STD_LOGIC_VECTOR(16 DOWNTO 0);SIGNAL st,rt:STD_LOGIC;-st:编码状态指示BEGIN PROCESS(clk,rst)VARIABLE crcvar:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINIF rst=1 THEN st=0;cnt 0);hand_send=0;ELSE IF(clkEVENT AND clk=1

    24、)THEN IF(st=0and datald=1)THEN -空闲状态,有数据装载dtemp=sdata;-读取待编码数据 sdatam=sdata;cnt0);-计数值复位 hand_send=0;st=1;-未校验完 ELSIF(st=1and cnt7)THEN cnt=cnt+1;IF(dtemp(11)=1)THEN crcvar:=dtemp(11 DOWNTO 6)XOR multi_coef;-模2除法 dtemp=crcvar(4 DOWNTO 0)&dtemp(5 DOWNTO 0)&0ELSE dtemp=dtemp(10 DOWNTO 0)&0;-首位为0则左移END

    25、 IF;ELSIF(st=1and cnt=7)THEN -校验码生成完成 datacrco=sdatam&dtemp(11 DOWNTO 7);-构成CRC码 hand_send=1;-允许发送 cnt=cnt+1;ELSIF(st=1and cnt=8)THEN hand_send=0;-状态复位 st=1;END IF;END IF;END IF;END PROCESS;PROCESS(hand_recv,clk,rst)VARIABLE rcrcvar:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINIF rst=1 THEN rt=0;rcnt 0);merror

    26、=0;ELSE IF(clkEVENT AND clk=1)THEN IF(rt=0and hand_recv=1)THEN -非解码状态,有数据待接收rdtemp=datacrci(16 DOWNTO 5);-获取数据 rdatacrc=datacrci;-读取CRC码 rcnt0);-计数值复位 rt=1;merror=0;ELSIF(rt=1and rcnt7)THEN datafini=0;rcnt=rcnt+1;rcrcvar:=rdtemp(11 DOWNTO 6)XOR multi_coef;IF(rdtemp(11)=1)THEN rdtemp=rcrcvar(4 DOWNTO

    27、 0)&rdtemp(5 DOWNTO 0)&0;ELSE rdtemp=rdtemp(10 DOWNTO 0)&0;END IF;ELSIF(rt=1and rcnt=7)THEN datafini=1;-解码完成 rdata=rdatacrc(16 DOWNTO 5);IF(rdatacrc(4 DOWNTO 0)/=rdtemp(11 DOWNTO 7)THEN merror=1;-校验错误 END IF;END IF;END IF;END IF;END PROCESS;END behav;8.12 线性时不变线性时不变FIR滤波器设计滤波器设计 8.12.1 线性时不变滤波器原理 FI

    28、R滤波器的特点有以下几个方面:(1)系统单位冲激响应h(n)在有限个n值处不为零。(2)系统函数H(Z)在|Z|0处收敛,在|Z|0处只有零点,有限Z平面只有零点,而全部极点都在处(因果系统)。(3)结构上主要是非归规结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含反馈的递归部分。8.12.2 线性时不变滤波器设计流程 下面我们来说明详细设计流程。下面我们来说明详细设计流程。(1)首先打开Matlab软件,在Command Window键入fdatool,弹出图8-64所示窗口。在弹出的窗口中根据需要设计的滤波器要求设置相应参数,然后点击按钮design filter,通过窗

    29、口右上方的按钮可以观察设计滤波器的幅频特性和相频特性等,用来判断设计滤波器是否满足要求。如果不满足要求,则修改滤波器的参数重新设计滤波器,直到满足要求为止。然后点击file菜单中的“export”可以将滤波器系数导入Workspace中,设计者将系数以2n量化后将其存储下来,通过下列Matlab程序生成filter.mif文件。filter.mif文件的生成程序(Matlab语言)clear all;clc;load E:experimentfiter_coefcoef;%文件存储路径width=常数M;%量化后的滤波器系数位宽depth=常数N;%滤波器阶数fpn=fopen(E:filte

    30、r_fpga_designfilter.mif,w);%filter.mif文件存储路径fprintf(fpn,nWIDTH=%d;,width);fprintf(fpn,nDEPTH=%d;,depth);fprintf(fpn,nADDRESS_RADIX=DEC;);fprintf(fpn,nDATA_RADIX=DEC;);fprintf(fpn,nCONTENT BEGIN);for n=1:depth fprintf(fpn,n%d :,n-1);fprintf(fpn,%d,round(coef(n);fprintf(fpn,;);endfprintf(fpn,n END;);s

    31、tate=fclose(all);if state=0 disp(File close error!);end(2)打开Quartus,生成一个Project,在这个工程中利用宏模块altsyncram或者是lpm_rom生成ROM模块,然后将filter.mif文件放入该ROM块中。(3)设计一个地址发生器,产生该ROM块的读地址。该地址发生器其实就是一个模为前面定义的常数N的计数器,该计数器可由宏模块lpm_counter产生。(4)将地址发生器生成的读地址输出端口与ROM的读地址输入端相连,按照顺序读出滤波器系数,然后再根据时序关系跟对应的需要滤波的数据相乘后叠加便可以得到滤波以后的结果

    32、。假设滤波器阶数为常数M,则一般情况下需要的乘法器个数为M个,加法器个数为M1个。8.12.3 线性时不变滤波器设计实例(a)第一步第一步(b)第二步第二步(c)第三步第三步(d)第四步第四步 VCCclkINPUTfilterout14.0OUTPUTfilterin_H3.0OUTPUTSignedmultiplicationdataa10.0datab3.0result14.0fir_multinstSignedmultiplicationdataa10.0datab3.0result14.0fir_multinst1Signedmultiplicationdataa10.0datab3

    33、.0result14.0fir_multinst2Signedmultiplicationdataa10.0datab3.0result14.0fir_multinst3Signedmultiplicationdataa10.0datab3.0result14.0fir_multinst4Signedmultiplicationdataa10.0datab3.0result14.0fir_multinst5Signedmultiplicationdataa10.0datab3.0result14.0fir_multinst6Signedmultiplicationdataa10.0datab3

    34、.0result14.0fir_multinst7Signedmultiplicationdataa10.0datab3.0result14.0fir_multinst8ABA+Bdataa14.0datab14.0result14.0fir_addinst9ABA+Bdataa14.0datab14.0result14.0fir_addinst10ABA+Bdataa14.0datab14.0result14.0fir_addinst11ABA+Bdataa14.0datab14.0result14.0fir_addinst12ABA+Bdataa14.0datab14.0result14.

    35、0fir_addinst13ABA+Bdataa14.0datab14.0result14.0fir_addinst14ABA+Bdataa14.0datab14.0result14.0fir_addinst15ABA+Bdataa14.0datab14.0result14.0fir_addinst162 Word(s)RAMBlock Type:AUTOaddress0clockq98.0fir_rominst27GNDa3.0clkb3.0shiftinst32a3.0clkb3.0shiftinst33a3.0clkb3.0shiftinst34a3.0clkb3.0shiftinst3

    36、5a3.0clkb3.0shiftinst36a3.0clkb3.0shiftinst37a3.0clkb3.0shiftinst38a3.0clkb3.0shiftinst39coef10.0filterin_H3.0coef98.0移位寄存器系数加权求和网络filterin_A3.0filterin_B3.0filterin_C3.0clkfilterin_D3.0filterin_E3.0filterin_G3.0VCCfilterin3.0INPUTfilterin_F3.0权值输出coef21.11filterin_G3.0coef32.22filterin_F3.0coef43.33filterin_E3.0filterin_D3.0coef54.44coef65.55filterin_C3.0coef76.66filterin_B3.0coef87.77filterin_A3.0coef98.88filterin3.0图8-69 9阶FIR滤波器顶层文件

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第八章数字电子系统设计实践学习培训模板课件.ppt
    链接地址:https://www.163wenku.com/p-4179794.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库