第6章综合设计实例_第1页
第6章综合设计实例_第2页
第6章综合设计实例_第3页
第6章综合设计实例_第4页
第6章综合设计实例_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、二进制乘法二进制乘法 其乘法原理是:乘法通过逐项位移相加原其乘法原理是:乘法通过逐项位移相加原理来实现,从乘数的最低位开始,若为理来实现,从乘数的最低位开始,若为1,则被乘数左移后与上一次和相加;若为则被乘数左移后与上一次和相加;若为0,则左移后以全零相加,直至乘数的最高位。则左移后以全零相加,直至乘数的最高位。8位乘法器的设计位乘法器的设计乘法器设计原理图乘法器设计原理图1) 选通与门模块的源程序选通与门模块的源程序ANDARITH.VHD -ANDARITH.VHDLPROCESS (ABIN, DIN) IS BEGIN FOR I IN 0 TO 7 LOOP -循环,分别完循环,分别

2、完成成8位数据与一位控制位的与操作位数据与一位控制位的与操作 DOUT (I)=DIN (I)AND ABIN; END LOOP; END PROCESS; 2) 16位锁存器的源程序位锁存器的源程序REG16B.VHD -REG16B.VHD -16位锁存器位锁存器 PORT(CLK: IN STD_LOGIC; -锁存信号锁存信号 CLR: IN STD_LOGIC; -清零信号清零信号 D: IN STD_LOGIC_VECTOR (8 DOWNTO 0); -9位数据位数据输入输入 Q: OUT STD_LOGIC_VECTOR(15 DOWNTO 0); -16位位数据输出数据输出

3、 END ENTITY REG16B; ARCHITECTURE ART OF REG16B IS SIGNAL R16S: STD_LOGIC_VECTOR(15 DOWNTO 0); -16位寄存器设置位寄存器设置 BEGIN PROCESS (CLK, CLR) IS BEGIN IF CLR = 1 THEN R16S= 0000000000000000;-异步复位信号异步复位信号 ELSIF CLKEVENT AND CLK = 1 THEN-时钟到来时,锁存输入值时钟到来时,锁存输入值 R16S(6 DOWNTO 0)=R16S(7 DOWNTO 1); -右移低右移低8位位R16

4、S(15 DOWNTO 7)=D; -将输入锁到高能位将输入锁到高能位 END IF; END PROCESS; Q=R16S; END ARCHITECTURE ART; 3) 8位右移寄存器的源程序位右移寄存器的源程序SREG8B.VHD -SREG8B.VHD 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); QB: OUT S

5、TD_LOGIC); END ENTITY SREG8B; ARCHITECTURE ART OF SREG8B IS SIGNAL REG8B: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS (CLK, LOAD) IS BEGIN IF CLKEVENT AND CLK= 1 THEN IF LOAD = 1 THEN REG8B=DIN; -装载新数据装载新数据 ELSE REG8B(6 DOWNTO 0)=REG8B(7 DOWNTO 1);-数据右移数据右移 END IF; END IF; END PROCESS; QB=REG8B(0);

6、-输出最低位输出最低位 END ARCHITECTURE ART; 4) 乘法运算控制器的源程序乘法运算控制器的源程序ARICTL.VHD -ARICTL.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ARICTL IS -乘法运算控制器乘法运算控制器 PORT(CLK: IN STD_LOGIC; START: IN STD_LOGIC; CLKOUT: OUT STD_LOGIC; RSTALL: OUT STD_LOGIC; ARIEND: OUT STD_LO

7、GIC); END ENTITY ARICTL; ARCHITECTURE ART OF ARICTL IS SIGNAL CNT4B: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN RSTALL=START; PROCESS(CLK, START) IS BEGIN IF START = 1 THEN CNT4B= 0000; -高电平清零计数器高电平清零计数器 ELSIF CLKEVENT AND CLK = 1 THEN IF CNT4B8 THEN -小于则计数,等于小于则计数,等于8表明乘法运表明乘法运算已经结束算已经结束 CNT4B=CNT4B+1; EN

8、D IF; END IF; END PROCESS; PROCESS (CLK, CNT4B, START) IS BEGIN IF START = 0 THEN IF CNT4B8 THEN -乘法运算正在进行乘法运算正在进行 CLKOUT =CLK; ARIEND= 0; ELSE CLKOUT = 0; ARIEND= 1;-运算已经结束运算已经结束 END IF; ELSE CLKOUT =CLK; ARIEND= 0; END IF; END PROCESS; END ARCHITECTURE ART; 5) 8位乘法器的源程序位乘法器的源程序MULTI8X8.VHD -MULTI8

9、X8.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MULTI8X8 IS -8位乘法器顶层设计位乘法器顶层设计 PORT(CLK: IN STD_LOGIC; START: IN STD_LOGIC;-乘法启动信号,高电平复乘法启动信号,高电平复位与加载,低电平运算位与加载,低电平运算 A: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位被乘数位被乘数 B: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -8位乘数位乘数 ARIEND: OUT STD_LOGIC; -乘法运算结束标志

10、位乘法运算结束标志位 DOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0); -16位乘积输出位乘积输出 END ENTITY MULTI8X8; ARCHITECTURE ART OF MULTI8X8 IS COMPONENT ARICTL IS -待调用的乘法控制器端口定义待调用的乘法控制器端口定义 PORT(CLK: IN STD_LOGIC; START: IN STD_LOGIC; CLKOUT: OUT STD_LOGIC; RSTALL: OUT STD_LOGIC; ARIEND: OUT STD_LOGIC); END COMPONENT ARIC

11、TL; COMPONENT ANDARITH IS -待调用的控制与门端口定义待调用的控制与门端口定义 PORT(ABIN: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0); END COMPONENT ANDARITH; COMPONENT ADDER8B IS -待调用的待调用的8位加法器端口定义位加法器端口定义 COMPONENT SREG8B IS -待调用的待调用的8位右移寄存器端口定义位右移寄存器端口定义 COMPONENT REG16B IS -

12、待调用的待调用的16位右移寄存器端口定义位右移寄存器端口定义 SIGNAL S1, S2, S3, S4: STD_LOGIC; SIGNAL S5: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL S6: STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL S7: STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN DOUT=S7; S1CLK, START=START, CLKOUT=S2, RSTALL=S3, ARIEND=ARIEND); U2: SREG8B PORT MAP(CLK=S2, LOAD=S3, D

13、IN=A, QB=S4); U3: ANDARITH PORT MAP(ABIN=S4, DIN=B, DOUT=S5); U4: ADDER8B PORT MAP(C8=S1, A8=S7(15 DOWNTO 8), B8=S5, S8=S6(7 DOWNTO 0), CO8 =S6(8); U5: REG16B PORT MAP(CLK =S2, CLR=S3, D=S6, Q=S7); END ARCHITECTURE ART; 6.2.1 数字式波形生成的基础知识数字式波形生成的基础知识波形发生器的系统组成波形发生器的系统组成一周期的正弦波形与时钟周期的关系一周期的正弦波形与时钟周期的

14、关系 采用采用DDS方式的波形发生器方式的波形发生器输出信号的频率为:输出信号的频率为:DATAffmclk2例如:例如: 在地址加法器的数据宽度在地址加法器的数据宽度m15的情况的情况下,欲得到步长为下,欲得到步长为500HZ的波形数据,则的波形数据,则时钟频率时钟频率 为:为: 若考虑到波形数据的精度,取若考虑到波形数据的精度,取n10,则输,则输出频率出频率f最高可达最高可达:clkfMfclk384.1625001515.5 kHZl预计达到指标预计达到指标(1)频率测试功能:测频范围)频率测试功能:测频范围0.1Hz100MHz。测频精度:测。测频精度:测频全域相对误差恒为百万分之一

15、。频全域相对误差恒为百万分之一。(2)脉宽测试功能:测试范围)脉宽测试功能:测试范围0.1s1s,测试精度,测试精度0.01s 。(3)占空比测试功能:测试精度)占空比测试功能:测试精度199。NsFsNxFx/NxNsFsFx)/( 频率计测控时序频率计测控时序等精度测频可能产生的相对误差等精度测频可能产生的相对误差被测信号的频率被测信号的频率在测量中,由于在测量中,由于fx计数的起停时间都是由该计数的起停时间都是由该信号的上升沿触发的,所以信号的上升沿触发的,所以NX是没有误差的是没有误差的,对,对fs的计数的计数Ns最多相差一个数的误差。最多相差一个数的误差。因此相对误差为:因此相对误差

16、为:对于普通的对于普通的VGAVGA显示器,其引出线共含显示器,其引出线共含5 5个信号:个信号:R、G、B:三基色信号三基色信号HS:行同步信号行同步信号VS:场同步信号场同步信号 对这对这5 5个信号的时序驱动,对于个信号的时序驱动,对于VGAVGA显示器要严格遵循显示器要严格遵循“VGAVGA工业标准工业标准”,即,即64064048048060Hz60Hz模式,否则会损模式,否则会损害害VGAVGA显示器。显示器。 VGAVGA行扫描、场扫描时序示意图行扫描、场扫描时序示意图VGAVGA工业标准要求的频率:工业标准要求的频率:时钟频率(时钟频率(Clock frequencyClock frequency) :25.175 MHz 25.175 MHz (像素输出的频率)(像素输出的频率)行频(行频(Line frequencyLine frequency):):31469 Hz31469 Hz场频(场频(Field frequency Field frequency ):):59.94 Hz59.94 Hz(每秒图像刷新频率)(每秒图像刷新频率)行扫描时序要求: (单位:像素,

温馨提示

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

评论

0/150

提交评论