论文在急,菜鸟求高手改改

[复制链接]
2085|0
 楼主| cjjcff520 发表于 2007-7-1 11:27 | 显示全部楼层 |阅读模式
se, ST, ic, TE, ev
我做的一个自动门,源程序如下:library&nbsp;ieee;<br />use&nbsp;ieee.std_logic_1164.all;<br />use&nbsp;ieee.std_logic_unsigned.all;<br />entity&nbsp;zdm&nbsp;is<br />port&nbsp;(<br />clk:&nbsp;in&nbsp;std_logic;<br />sen_1,sen_2&nbsp;:&nbsp;in&nbsp;std_logic;<br />device_open&nbsp;:&nbsp;out&nbsp;std_logic;<br />device_close:out&nbsp;std_logic&nbsp;;<br />close_min:in&nbsp;std_logic;<br />open_max:&nbsp;in&nbsp;std_logic);<br />end&nbsp;zdm;<br />architecture&nbsp;beh&nbsp;of&nbsp;zdm&nbsp;is<br />type&nbsp;state_type&nbsp;is&nbsp;(qa,qb,qc,qd);<br />signal&nbsp;state:&nbsp;state_type;<br />begin<br />process&nbsp;(clk,open_max,close_min)<br />begin<br />if&nbsp;clk'event&nbsp;and&nbsp;clk&nbsp;=&nbsp;'1'&nbsp;then<br />case&nbsp;state&nbsp;is<br />when&nbsp;qa&nbsp;=&gtdevice_open&lt='0';<br />device_close&lt='0';<br />if&nbsp;(sen_2&nbsp;or&nbsp;sen_1)&lt='1'&nbsp;then<br />state&lt=qb;<br />else&nbsp;state&lt=qa;<br />end&nbsp;if;<br />when&nbsp;qb&nbsp;=&gtdevice_open&lt='1';<br />device_close&lt='0';<br />if&nbsp;(sen_2&nbsp;or&nbsp;sen_1)&lt='1'&nbsp;then<br />if&nbsp;open_max&lt='1'&nbsp;then<br />state&lt=qd;<br />else&nbsp;state&lt=qa;<br />end&nbsp;if;<br />else&nbsp;state&lt=qc;<br />end&nbsp;if&nbsp;;<br />when&nbsp;qc&nbsp;=&gtdevice_open&lt='0';<br />device_close&lt='1';<br />if&nbsp;(sen_1&nbsp;or&nbsp;sen_2)&lt='0'&nbsp;then<br />if&nbsp;close_min&lt='1'then<br />state&nbsp;&lt=qa;<br />end&nbsp;if;<br />else&nbsp;state&lt=qb;<br />end&nbsp;if&nbsp;;<br />when&nbsp;qd=&gtdevice_open&lt='0';<br />device_close&lt='0';<br />if&nbsp;(sen_1&nbsp;or&nbsp;sen_2)&lt='0'then<br />state&lt=qc;<br />else&nbsp;state&lt=qd;<br />end&nbsp;if;<br />when&nbsp;others=&gtstate&lt=qa;<br />end&nbsp;case;<br />end&nbsp;process;<br />end&nbsp;beh;<br />我在quartus2上编译成功,但是防真波形不符,原版程序是书上下的,因为原版程序在qusrtus2上编译有错,但是在MAX+plus上成功,我只学了quartus所以我做了一点改动,把19行成if&nbsp;clk'event&nbsp;and&nbsp;clk&nbsp;=&nbsp;'1'&nbsp;then,原版程序19行为wait&nbsp;until&nbsp;clk'event&nbsp;and&nbsp;clk&nbsp;=&nbsp;'1'&nbsp;后编译成功,但是防真波形不符合逻辑,状态图,qc,qb,在不停的自转,问题在哪呢?Sen_1&nbsp;和sen_2&nbsp;为传感器信号,为高电<br />平时有人活动;Clock&nbsp;为0.1s&nbsp;时钟脉冲输<br />入;o&nbsp;p&nbsp;e&nbsp;n&nbsp;_&nbsp;m&nbsp;a&nbsp;x&nbsp;开门最大控制点,当<br />o&nbsp;p&nbsp;e&nbsp;n&nbsp;_&nbsp;m&nbsp;a&nbsp;x&nbsp;为高电平时,为开最大。<br />Close_min关门最小控制点,当close_min为<br />高电平时,为关最小。Device_open&nbsp;为高电<br />平时,执行开门驱动。Device_close为高电<br />平时为,执行关门驱动。应用状态机设计,<br />Q&nbsp;A&nbsp;为关门停止状态,QB&nbsp;为开门状态,QC<br />为关门状态,Q&nbsp;D&nbsp;为开最大停止状态。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部