518011孙大扛eda技术实用教程习题答案——潘松_黄继业【精选】内容摘要:
process。 程序 2: Architecture one of sample is variable a, b, c:integer。 begin c=a+b。 将‚ c=a+b‛改成‚ c:=a+b‛ end。 程序 3: library ieee。 use。 entity mux21 is PORT(a,b:in std_logic。 sel:in std_loglc。 c:out std_logle。 )。 将‚。 )‛改成‚ )‛ end sam2。 将‚ sam2‛改成‚ entity mux21‛ architecture one of mux2l is begin 增加‚ process(a,b,sel) begin‛ if sel= 39。 039。 then c:=a。 else c:=b。 end if。 应改成‚ if sel= 39。 039。 then c=a。 else c=b。 end if。 ‛ 增加‚ end process。 ‛ end two。 将‚ two‛改成‚ architecture one‛ 72 LPM_ROM、 LPM_RAM、 LPM_FIFO等模块与 FPGA中嵌入的 EAB、ESB、 M4K有怎样的联系 ? 答: ACEXlK系列为 EAB; APEX20K系列为 ESB; Cyclone系列为 M4K 第八章 81仿照例 81,将例 84单进程用两个进程,即一个时序进程,一个组合进程表达出来。 解:【例 84】的改写如下: LIBRARY IEEE。 USE。 ENTITY MOORE1 IS PORT(DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0)。 CLK,RST: IN STD_LOGIC。 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END MOORE1。 ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0,ST1,ST2,ST3,ST4)。 SIGNAL C_ST,N_ST: ST_TYPE。 BEGIN REG: PROCESS(CLK,RST) BEGIN IF RST=39。 139。 THEN C_ST=ST0。 Q=0000。 ELSIF CLK39。 EVENT AND CLK=39。 139。 THEN C_ST=N_ST。 END IF。 END PROCESS REG。 COM: PROCESS(C_ST,DATAIN) BEGIN CASE C_ST IS WHEN ST0= IF DATAIN=10 THEN N_ST=ST1。 ELSE N_ST=ST0。 END IF。 Q=1001。 WHEN ST1= IF DATAIN=11 THEN N_ST=ST2。 ELSE N_ST=ST1。 END IF。 Q=0101。 WHEN ST2= IF DATAIN=01 THEN N_ST=ST3。 ELSE N_ST=ST0。 END IF。 Q=1100。 WHEN ST3= IF DATAIN=00 THEN N_ST=ST4。 ELSE N_ST=ST2。 END IF。 Q=0010。 WHEN ST4=IF DATAIN=11 THEN N_ST=ST0。 ELSE N_ST=ST3。 END IF。 Q=1001。 WHEN OTHERS= N_ST=ST0。 END CASE。 END PROCESS COM。 END behav。 82为确保例 85( 2进程 Mealy型状态机)的状态机输出信号没有毛刺,试用例 84的方式构成一个单进程状态,使输出信号得到可靠锁存,在相同输入信号条件下,给出两程序的仿真波形。 解:【例 85】改写如下: LIBRARY IEEE。 USE。 ENTITY MEALY1 IS PORT(CLK,DATAIN,RESET: IN STD_LOGIC。 Q:OUT STD_LOGIC_VECTOR(4 DOWNTO 0))。 END MEALY1。 ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0,st1,st2,st3,st4)。 SIGNAL STX: states。 BEGIN PROCESS(CLK,RESET) 单一进程 BEGIN IF RESET=39。 139。 THEN STX=ST0。 ELSIF CLK39。 EVENT AND CLK=39。 139。 THEN CASE STX IS WHEN st0= IF DATAIN=39。 139。 THEN STX=st1。 END IF。 IF DATAIN=39。 139。 THEN Q=10000。 ELSE Q=01010。 END IF。 WHEN st1= IF DATAIN=39。 039。 THEN STX=st2。 END IF。 IF DATAIN=39。 039。 THEN Q=10111。 ELSE Q=10100。 END IF。 WHEN st2= IF DATAIN=39。 139。 THEN STX=st3。 END IF。 IF DATAIN=39。 139。 THEN Q=10101。 ELSE Q=10011。 END IF。 WHEN st3= IF DATAIN=39。 039。 THEN STX=st4。 END IF。 IF DATAIN=39。 039。 THEN Q=11011。 ELSE Q=01001。 END IF。 WHEN st4= IF DATAIN=39。 139。 THEN STX=st0。 END IF。 IF DATAIN=39。 139。 THEN Q=11101。 ELSE Q=01101。 END IF。 WHEN OTHERS= STX=st0。 Q=00000。 END CASE。 END IF。 END PROCESS。 END behav。 图 86 控制 ADC0809采样状态图 【例 82】根据图 86 状态图,采用 Moore 型状态机,设计ADC0809采样控制器。 LIBRARY IEEE。 USE。 ENTITY ADCINT IS PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 来自 0809转换好的 8位数据 CLK: IN STD_LOGIC。 状态机工作时钟 EOC: IN STD_LOGIC。 转换状态指示,低电平表示正在转换 ALE:OUT STD_LOGIC。 8 个模拟信号通道地址锁存信号 START:OUT STD_LOGIC。 转换开始信号 OE:OUT STD_LOGIC。 数据输出三态控制信号 ADDA:OUT STD_LOGIC。 信号通道最 低位控制信号 LOCK0:OUT STD_LOGIC。 观察数据锁存时钟 Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 8 位数据输出 END ADCINT。 ARCHITECTURE behav OF ADCINT IS TYPE states IS(st0,st1,St2,st3,st4)。 定义各状态子类型 SIGNAL current_state,next_state: states:=st0。 SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL LOCK: STD_LOGIC。 转换后数据输出锁存时钟信号 BEGIN ADDA=39。 139。 当 ADDA=39。 039。 ,模拟信号进入通道 IN0;当ADDA=39。 139。 ,则进入通道 INI Q=REGL。 LOCK0=LOCK。 COM: PROCESS(current_state,EOC) BEGIN 规定各状态转换方式 CASE current_state IS WHEN st0= ALE=39。 039。 START=39。 039。 LOCK=39。 039。 OE=39。 039。 next_state=st1。 0809初始化 WHEN st1= ALE=39。 139。 START=39。 139。 LOCK=39。 039。 OE=39。 039。 next_state=st2。 启动采样 WHEN st2= ALE=39。 039。 START=39。 039。 LOCK=39。 039。 OE=39。 039。 IF(EOC=39。 139。 ) THEN next_state=st3。 EOC=1表明转换结束 ELSE next_state=st2。 END IF。 转换未结束,继续等待 WHEN st3= ALE=39。 039。 START=39。 039。 LOCK=39。 039。 OE=39。 139。 next_state=st4。 开启 OE,输出转 换好的数据 WHEN st4= ALE=39。 039。 START=39。 039。 LOCK=39。 139。 OE=39。 139。 next_state=st0。 WHEN OTHERS=next_state=st0。 END CASE。 END PROCESS COM。 REG:PROCESS(CLK) BEGIN IF(CLK39。 EVENT AND CLK=39。 139。 ) THEN current_state=next_state。 END IF。 END PROCESS REG。 由信号 current_state将当前状态值带出此进程: REG LATCH1: PROCESS(LOCK) 此进程中,在 LOCK 的上升沿,将转换好的数据锁入 BEGIN IF LOCK=39。 139。 AND LOCK39。 EVENT THEN REGL=D。 END IF。 END PROCESS LATCH1。 END behav。 85在不改变原代码功能的条件下用两种方法改写例 82,使其输出的控制信号 (ALE、 START、 OE、 LOCK)没有毛刺。 方法 1:将。518011孙大扛eda技术实用教程习题答案——潘松_黄继业【精选】
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。