硬件描述语言与数字系统开发(第8章)-10_第1页
硬件描述语言与数字系统开发(第8章)-10_第2页
硬件描述语言与数字系统开发(第8章)-10_第3页
硬件描述语言与数字系统开发(第8章)-10_第4页
硬件描述语言与数字系统开发(第8章)-10_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、硬件描述语言与数字系统开发硬件描述语言与数字系统开发第第8 8章章 VHDLVHDL应用举例应用举例n带权表决器设计带权表决器设计n奇数分频器设计奇数分频器设计n数控分频器设计数控分频器设计n计数计数/ /译码驱动译码驱动/ /扫描显示电路扫描显示电路n串串- -并转换与并并转换与并- -串转换串转换n数字序列的产生与检测数字序列的产生与检测n正弦信号发生器正弦信号发生器n数字基带编码设计数字基带编码设计带权表决器的带权表决器的VHDL设计设计奇数分频器的奇数分频器的VHDL设计设计clkinclkoutf p_11inst奇数分频器仿真波形奇数分频器仿真波形分频系数分频系数=11数控分频器的

2、数控分频器的VHDL设计设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FPQ IS PORT ( CLKIN : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLKOUT : OUT STD_LOGIC );END FPQ;ARCHITECTURE one OF FPQ IS SIGNAL FULL : STD_LOGIC;BEGIN P1: PROCESS(CLKIN) VARIABLE CNT8 : STD_LOGI

3、C_VECTOR(7 DOWNTO 0); BEGIN IF CLKINEVENT AND CLKIN = 1 THEN IF CNT8 = 11111111 THEN CLKIND7.0CLKOUTfpqinst CNT8 := D; -当当CNT8CNT8计数计满时,输入数据计数计满时,输入数据D D被同步预置给计数器被同步预置给计数器CNT8CNT8 FULL = 1; -同时使溢出标志信号同时使溢出标志信号FULLFULL输出为高电平输出为高电平 ELSE CNT8 := CNT8 + 1; -否则继续作加否则继续作加1 1计数计数 FULL = 0; -且输出溢出标志信号且输出溢出标

4、志信号FULLFULL为低电平为低电平 END IF; END IF; END PROCESS P1 ; P2: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 := NOT CNT2; -如果溢出标志信号如果溢出标志信号FULLFULL为高电平,为高电平,D D触发器输出取反触发器输出取反 CLKOUT 88* *25Hz)25Hz),实现扫描显示的目的。,实现扫描显示的目的。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE

5、.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN_LED IS PORT ( CLK : IN STD_LOGIC; -扫描时钟扫描时钟信号输入信号输入 A1,A2,A3,A4,A5,A6,A7,A8 : IN INTEGER RANGE 0 TO 15; SG: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -段控制信号输出段控制信号输出(g-a)(g-a) BT: OUT STD_LOGIC_VECTOR(8 DOWNTO 1));-位控制信号输出位控制信号输出(k8-k1)(k8-k1) END SCAN_LED;ARCHITECTURE on

6、e OF SCAN_LED ISSIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A :INTEGER RANGE 0 TO 15;BEGINP1:PROCESS( CNT8 ) BEGIN 扫描译码显示电路的扫描译码显示电路的VHDLVHDL设计设计CLKA13.0A23.0A33.0A43.0A53.0A63.0A73.0A83.0SG6.0BT8.1SCAN_LEDinst CASE CNT8 IS WHEN 000 = BT = 00000001 ; A BT = 00000010 ; A BT = 00000100 ; A BT = 0

7、0001000 ; A BT = 00010000 ; A BT = 00100000 ; A BT = 01000000 ; A BT = 10000000 ; A NULL ; END CASE ; END PROCESS P1; P2:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; END PROCESS P3; END one; 共阴数码管及其电路共阴数码管及其电路 CASE A IS WHEN 0

8、 = SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; Library ieee;Use ieee.std_logic_1164.all;Entity c_b isPort (clr,din,clk: in std_logic; y: out std_logic_vector(4 downto 0);End c_b;Architecture behav of c_b issignal tem:std_logic_vector(5 downto 0);beginp1: process(clk) begin if (

9、clkevent and clk=1) thenif clr=0 thentem=000000;elsif tem(0)=0 thentem=din & 01111;elsetem=din & tem(5 downto 1);end if;end if;end process p1;p2: process(tem) begin if tem(0)=0 then y=tem(5 downto 1); else y=00000; end if; end process p2;end behav;5 5位串位串- -并转换的并转换的VHDLVHDL设计设计clrdinclkY4.0c

10、_b_5inst5 5位串位串- -并转换仿真波形并转换仿真波形注意:串注意:串-并转换需延时输出并转换需延时输出4 4位并位并- -串转换的串转换的VHDLVHDL设计设计clrclkdin3.0Yb_c_4inst4 4位并位并- -串转换仿真波形串转换仿真波形分析波形,找出问题,修改完善!分析波形,找出问题,修改完善!数字序列信号发生器的数字序列信号发生器的VHDL设计设计cpresyxxinst数字序列信号产生波形数字序列信号产生波形当当reg、n定义为变量时,有何不同?请修改完善!定义为变量时,有何不同?请修改完善!数字序列检测器的数字序列检测器的VHDL设计设计cpcxycxjci

11、nst数字序列检测数字序列检测仿真波形仿真波形数字序列检测数字序列检测State MachinaState Machina Viewer Viewer分析波形,找出问题,修改完善!分析波形,找出问题,修改完善!8位并行数据位并行数据“0”个数检测器的个数检测器的VHDL设计设计clkclrd7.0q2.0zerojcinst8 8位并行数据位并行数据“0”0”个数检测仿真波形个数检测仿真波形正弦波形产生电路设计正弦波形产生电路设计-宏功能模块应用举例宏功能模块应用举例正弦信号输出频率正弦信号输出频率f = f0 /N 正弦波形产生电路设计要点:正弦波形产生电路设计要点:自顶向下自顶向下子电路生

12、成子电路生成宏模块调用宏模块调用混合输入混合输入正弦波形产生电路设计步骤:正弦波形产生电路设计步骤:建立顶层设计项目建立顶层设计项目编程创建子电路编程创建子电路定制调用宏模块定制调用宏模块原理框图混合输入原理框图混合输入clrenclkaddr_cnt645.0addr_cnt64instclrenclkaddr_cnt645.0addr_cnt64inst定制定制LPM_ROM LPM_ROM 建立建立.mif.mif格式文件格式文件 address5.0clockq7.0sin_64rominst1定制定制LPM_ROM元件元件 LPM宏功能块设定宏功能块设定 7.2.2 定制初始化数据文

13、件定制初始化数据文件 7.2.3 7.2.3 定制定制LPM_ROM元件元件 选择选择data_rom模块数据线和地址线宽度模块数据线和地址线宽度 选择使能、清零信号端子选择使能、清零信号端子 调入调入ROMROM初始化数据文件并选择在系统读写功能初始化数据文件并选择在系统读写功能 完成顶层设计完成顶层设计 仿真波形输出仿真波形输出 嵌入式逻辑分析仪获得的波形嵌入式逻辑分析仪获得的波形 ttttttttt01000011000001010二进制代码(a)(b)(c)(d)(e)(f)(g)(h)(i)数数字字基基带带信信号号的的常常用用码码型型(a)(a) 单极性单极性(NRZ)(NRZ)码码

14、 ;(b) (b) 双极性双极性(NRZ)(NRZ)码;码;(c) (c) 单极性单极性(RZ)(RZ)码;码; (d) (d) 双极性双极性(RZ)(RZ)码;码;(e) (e) 差分码;差分码;(f) (f) 交替极性码交替极性码(AMI)(AMI); (g) (g) 三阶高密度双极性三阶高密度双极性码码(HDB(HDB3 3) );(h) (h) 分相码;分相码;( (i i) ) 信号反转码信号反转码(CMI) (CMI) 数字序列数字序列AMI编码设计编码设计 AMI AMI码是传号交替反转码,在码是传号交替反转码,在AMIAMI码中,二进制码码中,二进制码0 0用用0 0电平表示,

15、二进制码电平表示,二进制码1 1交替地用交替地用+1+1和和-1-1表示表示 。其编码规则是将二进制消息代码。其编码规则是将二进制消息代码“1”(1”(传号传号) )交替地交替地变变换为传输码的换为传输码的“+1”+1”和和“-1”-1”,而,而“0”(0”(空号空号) )保持不变。例如:保持不变。例如:数字序列数字序列 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 AMIAMI码:码: +1 0 0 1 +1 0 0 0 0 0 0 0 -1 +1 0 0 -1 +1+1 0 0 1 +1 0

16、0 0 0 0 0 0 -1 +1 0 0 -1 +1 clkinputoutput1output2amiinstAMI编码程序编码程序仿真波形仿真波形AMI编码编码VHDL程序程序AMI译码程序及仿真波形译码程序及仿真波形clkinput1input2outputamiyminst 第第 8 8 章章 习题习题 应用应用VHDLVHDL描述语句设计描述语句设计: : (1) (1) 分频系数为分频系数为19,47,11119,47,111的奇数分频器的奇数分频器 (2) (2) 分频系数为分频系数为80,88,100,11280,88,100,112的数控分频器的数控分频器 (3) (3)

17、扫描驱动共阴数码管,显示字符扫描驱动共阴数码管,显示字符“HELLO”HELLO” (4) “01” (4) “01”序列的产生与检测电路序列的产生与检测电路 (5) 16(5) 16位串行数据帧位串行数据帧“1”1”个数检测个数检测 研究生大作业选题研究生大作业选题(1)(1)参考参考P157(P157(数控分频器数控分频器),),设计一个设计一个SPWMSPWM波形发生器波形发生器( (设开关频率设开关频率=10KHz)=10KHz)。(2)(2)参考参考P162(P162(正弦信号发生器正弦信号发生器),),设计一个三相正弦信号发生器设计一个三相正弦信号发生器( (设信号频率设信号频率=

18、50Hz) =50Hz) 。(3)(3)参考参考P162(P162(正弦信号发生器正弦信号发生器),),利用双口利用双口RAMRAM设计一个任意波形回放器设计一个任意波形回放器( (设信号频率设信号频率=1KHz)=1KHz)(4)(4)参考参考P191(P191(频率计电路频率计电路),),设计一个设计一个8 8位数码管显示频率计位数码管显示频率计( (信号频率信号频率1M,1M,频率分辨率频率分辨率1Hz) 1Hz) 。(5)(5)参考参考P191(P191(频率计电路频率计电路),),设计一个设计一个4 4位数码管显示相位检测器位数码管显示相位检测器( (信号频率信号频率1M,1M,相位

19、分辨率相位分辨率1 1) )(6)(6)参考参考P219(P219(序列检测电路序列检测电路),),设计一任意序列检测器设计一任意序列检测器( (预置序列预置序列/ /右移串入右移串入/ /并出并出,9600b/s),9600b/s)(7)(7)参考参考P219(ADC0809P219(ADC0809控制器控制器),),设计一个基于设计一个基于ADC0809ADC0809的数据采集的数据采集/ /存储模块存储模块( (信号频率信号频率10kHz,256)10kHz,256)。(8)(8)参考参考P360(DDSP360(DDS信号发生器信号发生器),),设计一个多功能相设计一个多功能相/ /频

20、可调信号源频可调信号源( (信号频率信号频率=100Hz-10KHz=100Hz-10KHz;信号相;信号相位位=0-180=0-180) ) 。(9)(9)参考参考P360(DDSP360(DDS信号发生器信号发生器),),设计一个载波移相调制设计一个载波移相调制CPS-PWMCPS-PWM信号发生模块信号发生模块(10kHz,5)(10kHz,5)(10)(10)参考参考P390(13.3),P390(13.3),设计一个步进电机细分驱动控制器设计一个步进电机细分驱动控制器(32(32细分细分) ) 。(11)(11)参考参考P396(13.4),P396(13.4),设计一个直流电机设计

21、一个直流电机PWMPWM控制器控制器(10kHz,(10kHz,占空比占空比0.1-0.90.1-0.9可调可调) ) 。(12)(12)参考课件内容参考课件内容, ,设计一个数字基带信号编码设计一个数字基带信号编码/ /解码模块解码模块( (码元速率码元速率9600b/s)9600b/s)。(13)(13)参考课件内容参考课件内容, ,设计一个数字调制信号调制设计一个数字调制信号调制/ /解调模块解调模块( (码元速率码元速率9600b/s) 9600b/s) 。(14)(14)参考相关内容参考相关内容, ,设计一个通用设计一个通用PWMIPPWMIP核模块核模块( (带死区控制三相带死区控制三相6 6路互补输出路互补输出, ,频率频率10Kz-100KHz /10Kz-100KHz /占空比可占空比可0.1-0.9,0.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论