图第6章仍D4设计应用实例 COMPONENT SREG8B 待调用的8位右移寄存器端口定义 COMPONENT REG16B 待调用的16右移寄存器端口定义 SIGNAL GNDINT: STD LOGIC SIGNAL INTCLK STD LOGIC SIGNAL RSTALL: STD LOGIC: SIGNAL QB: STD LOGIC SIGNAL ANDSD: STD LOGIC VECTOR(T DOWNTO O); SiGNAL DTBIN: StD LOGIC VECTOR(& DOWNTO 0) SIGNAL DTBOUT: STD LOGIC VECTOR(I5 DOWNTO O) BEGIN
第6章 VHDL设计应用实例 COMPONENT SREG8B --待调用的8位右移寄存器端口定义 ... COMPONENT REG16B --待调用的16右移寄存器端口定义 ... SIGNAL GNDINT:STD_LOGIC; SIGNAL INTCLK:STD_LOGIC; SIGNAL RSTALL:STD_LOGIC; SIGNAL QB:STD_LOGIC; SIGNAL ANDSD:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL DTBIN:STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL DTBOUT:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN
图第6章仍D4设计应用实例 DOUT<-DTBOUT: GNDINT<='0 Ul: ARICTL PORT MAP(CLK->CLK, START->START CLKOUT=>INTCLK, RSTALL=>RSTALL, ARIEND=>ARIEND) U2: SREG&B PORT MAP(CLK->INTCLK, LOAD=>RSTALL DN→>B,QB=>QB); U3: ANDARITH PORT MAP(ABIN=>QB, DIN=>A, DOUT->ANDSD) u4 adder&B PORT MAP(CIN→> GNDINT,A→> DTBOUT(15 DOWNTO8), B=>ANDSD, S>DTBIN( DOWNTO 0), COUT=>DTBIN(8)) U5: REG16B PORT MAP(CLK=>INTCLK, CLR=>RSTA D→>DTB,Q> DTBOUT); END ART
第6章 VHDL设计应用实例 DOUT<=DTBOUT;GNDINT<= '0'; U1:ARICTL PORT MAP(CLK=>CLK, START=>START, CLKOUT=>INTCLK, RSTALL=>RSTALL, ARIEND=>ARIEND); U2:SREG8B PORT MAP(CLK=>INTCLK, LOAD=>RSTALL. DIN=>B, QB=>QB); U3:ANDARITH PORT MAP(ABIN=>QB,DIN=>A,DOUT=>ANDSD); U4:ADDER8B PORT MAP(CIN=>GNDINT,A=>DTBOUT(15 DOWNTO 8), B=>ANDSD, S=>DTBIN(7 DOWNTO 0),COUT =>DTBIN(8)); U5:REG16B PORT MAP(CLK =>INTCLK,CLR=>RSTALL, D=>DTBIN, Q=>DTBOUT); END ART;
图第6章仍D4设计应用实例 3.硬件逻辑验证 选择实验电路结构图NO.1,由5.2节的实验电路结构图NO.1 和图62确定引脚的锁定。如乘法运算时钟CIK接 CLOCK0,清 零及启动运算信号 START由键8(PO49)控制,乘数B[70]接 PO7~PIO0(由键2,键1输入8位二进制数),被乘数A[7.0]接 PO15~PO8(由键4,键3输入8位二进制数),乘积输出 DOUT[15.0]接PIO31~PO16,乘法运算结束信号 ARIEND接 PIO39(D8)
第6章 VHDL设计应用实例 3. 硬件逻辑验证 选择实验电路结构图NO.1,由5.2节的实验电路结构图NO.1 和图6.2确定引脚的锁定。如乘法运算时钟CLK接CLOCK0,清 零及启动运算信号START由键8 (PIO49)控制,乘数B[7..0]接 PIO7~PIO0(由键2,键1输入8位二进制数),被乘数A[7..0]接 PIO15~PIO8(由键4,键3输入8位二进制数),乘积输出 DOUT[15..0]接PIO31~PIO16,乘法运算结束信号ARIEND接 PIO39(D8)
图第6章仍D4设计应用实例 进行硬件验证时方法如下:①键2和键1分别输入乘数的高 4位和低4位(输入值显示于数码2和数码1);②键4和键3分别输 入被乘数的高4位和低4位(输入值显示于数码4和数码3);③乘 法操作时钟信号输入接 CLOCK0;④键8输入高电平时,乘积 锁存器清零,乘数和被乘数数值加载,低电平时开始作乘法 8个脉冲后乘法结束,乘积显示于数码管8~5,高位在左
第6章 VHDL设计应用实例 进行硬件验证时方法如下:① 键2和键1分别输入乘数的高 4位和低4位(输入值显示于数码2和数码1);② 键4和键3分别输 入被乘数的高4位和低4位(输入值显示于数码4和数码3);③ 乘 法操作时钟信号输入接CLOCK0;④ 键8输入高电平时,乘积 锁存器清零,乘数和被乘数数值加载,低电平时开始作乘法, 8个脉冲后乘法结束,乘积显示于数码管8~5,高位在左
图第6章仍D4设计应用实例 63序列检测器的设计 1.设计思路 序列检测器可用于检测一组或多组由二进制码组成的脉冲序 列信号,这在数字通信领域有广泛的应用。当序列检测器连续收 到一组串行二进制码后,如果这组码与检测器中预先设置的码相 同,则输出1,否则输出0。由于这种检测的关键在于正确码的收 到必须是连续的,这就要求检测器必须记住前一次的正确码及正 确序列,直到在连续的检测中所收到的每一位码都与预置数的对 应码相同。在检测过程中,任何一位不相等都将回到初始状态重 新开始检测。如图6.3所示,当一串待检测的串行数据进入检测器 后,若此数在每一位的连续检测中都与预置的密码数相同,则输 出“A”,否则仍然输出“B
第6章 VHDL设计应用实例 6.3 序列检测器的设计 1.设计思路 序列检测器可用于检测一组或多组由二进制码组成的脉冲序 列信号,这在数字通信领域有广泛的应用。当序列检测器连续收 到一组串行二进制码后,如果这组码与检测器中预先设置的码相 同,则输出1,否则输出0。由于这种检测的关键在于正确码的收 到必须是连续的,这就要求检测器必须记住前一次的正确码及正 确序列,直到在连续的检测中所收到的每一位码都与预置数的对 应码相同。在检测过程中,任何一位不相等都将回到初始状态重 新开始检测。如图6.3所示,当一串待检测的串行数据进入检测器 后,若此数在每一位的连续检测中都与预置的密码数相同,则输 出“A”,否则仍然输出“B