打印

求verilog程序修改。。

[复制链接]
1893|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leoloveyy|  楼主 | 2011-5-30 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity xianshi is
port(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9:IN STD_LOGIC;

clk:in std_logic;


q1,q2,q3,q4,q5,q6,q7,q8:out std_logic_vector(3 downto 0));

end;
architecture one of xianshi is
begin
process(clk,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)
VARIABLE P:STD_LOGIC_VECTOR(9 DOWNTO 0);
VARIABLE s:integer range 0 to 8;
VARIABLE t:STD_LOGIC_VECTOR(3 DOWNTO 0);
VARIABLE w:STD_LOGIC_VECTOR(7 DOWNTO 0);
variable m1,m2,m3,m4,m5,m6,m7: std_logic_vector(3 downto 0);
begin
if clk'event and clk='1'then
p:=A0&A1&A2&A3&A4&A5&A6&A7&A8&A9;

if p>0 then s:=s+1;


if s>8 then s:=0;


end if;


case s is


when 0 =>w:="00000000";


when 1 =>w:="00000001";


when 2 =>w:="00000011";


when 3 =>w:="00000111";


when 4 =>w:="00001111";


when 5 =>w:="00011111";


when 6 =>w:="00111111";


when 7 =>w:="01111111";


when 8 =>w:="11111111";


when others =>null;


end case;


case p is


when "0000000001"=>t:="1001";


when "0000000010"=>t:="1000";


when "0000000100"=>t:="0111";


when "0000001000"=>t:="0110";


when "0000010000"=>t:="0101";


when "0000100000"=>t:="0100";


when "0001000000"=>t:="0011";


when "0010000000"=>t:="0010";


when "0100000000"=>t:="0001";


when "1000000000"=>t:="0000";


when others =>null;


end case;


if w="00000001" then q1<=t;


m1:=t;


elsif w="00000011" then q2<=m1;q1<=t;


m2:=m1;m1:=t;


elsif w="00000111" then q3<=m2;q2<=m1;q1<=t;


m3:=m2;m2:=m1;m1:=t;


elsif w="00001111" then q4<=m3;q3<=m2;q2<=m1;q1<=t;


m4:=m3;m3:=m2;m2:=m1;m1:=t;


elsif w="00011111" then q5<=m4;q4<=m3;q3<=m2;q2<=m1;q1<=t;



m5:=m4;m4:=m3;m3:=m2;m2:=m1;m1:=t;


elsif w="00111111" then q6<=m5;q5<=m4;q4<=m3;q3<=m2;q2<=m1;q1<=t;


m6:=m5;m5:=m4;m4:=m3;m3:=m2;m2:=m1;m1:=t;


elsif w="01111111" then q7<=m6;q6<=m5;q5<=m4;q4<=m3;q3<=m2;q2<=m1;q1<=t;


m7:=m6;m6:=m5;m5:=m4;m4:=m3;m3:=m2;m2:=m1;m1:=t;


elsif w="11111111" then q8<=m7;q7<=m6;q6<=m5;q5<=m4;q4<=m3;q3<=m2;q2<=m1;q1<=t;


end if;


end if;

end if;
end process;
end;


用verilog HDL编译发现很多错误,,希望有同学可以帮忙改下。。。

相关帖子

沙发
atua| | 2011-5-31 13:17 | 只看该作者
这是VHDL啊

使用特权

评论回复
板凳
chenxiaomai| | 2011-6-4 00:39 | 只看该作者
写任何程序。。。除非是含义相近的三行,要不都必须写注释,不然都不值得被人浏览。。这是基本功的要求,楼主注意!

使用特权

评论回复
地板
djiesl| | 2011-7-19 18:37 | 只看该作者
o,my god.这是VHDL语言啊,你也不注释

使用特权

评论回复
5
weshiluwei6| | 2011-10-29 13:54 | 只看该作者
这是VHDL 不是verilog哦 楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

1

粉丝