导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→高手求助:vhdl程序设计[飞天一剑]

 *第25825篇: 高手求助:vhdl程序设计

  
楼 主:飞天一剑 2004年9月16日23:53
 高手求助:vhdl程序设计
我想用cpld来实现数值转换,下面是vhdl程序,编译通过,但是仿真波形不对,data_out的输出有问题,仿真波形在下一个贴中,请各位高手帮帮小弟。

library IEEE;                     
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
use IEEE.Std_logic_unsigned.all;

Entity part11 is 
Port(  clk : IN   std_logic;                      
   data_in: in   STD_LOGIC_VECTOR(15 DOWNTO 0);  
       data_out : out  STD_LOGIC_VECTOR(15 DOWNTO 0));
end part11;

architecture rtl of part11 is

begin

process (clk)
variable q1 : STD_LOGIC_VECTOR(15 DOWNTO 0) ;
variable q2 : STD_LOGIC_VECTOR(15 DOWNTO 0);
variable q3 : STD_LOGIC_VECTOR(19 DOWNTO 0):="00000000000000000000";
variable q4 : STD_LOGIC_VECTOR(19 DOWNTO 0):="00000000000000000000";
variable q5 : STD_LOGIC_VECTOR(19 DOWNTO 0):="00000000000000000000";
variable q6 : STD_LOGIC_VECTOR(19 DOWNTO 0) ;
begin
  if(clk'event and clk ='0')then
     q1:= data_in ;
     if(q1   < "1000111101011100")then            --输入q1值小于8f5c,输出为0000;
      q2(15 DOWNTO 0):="0000000000000000";
     elsif(q1>  "1010001111010110")then            --输入q1值大于A3D6,输出为3FFE;            
      q2(15 DOWNTO 0):="0011111111111110";
     else   
                             --数值变换,8y=25x-917500,x为输出值(8F5C ---  A3D6),y为变换后的值(0000  --  3FFE);        
        q3(15 DOWNTO 0):=q1;                
        q4(19 DOWNTO 4):=q3(15 DOWNTO 0);               -- 左移四位;
        q5(18 DOWNTO 3):=q3(15 DOWNTO 0);               --左移三位; 
        q6:=q3+q4+q5+"00100000000000000100";       --25x-917500;                         
        q2(15 DOWNTO 0):= q6(18 DOWNTO 3);             --右移三位;
     end if;
     data_out  <= q2(15 DOWNTO 0);
end if;
end process;
end rtl;


  
2楼:飞天一剑 2004年9月16日23:56
 [贴图]
按此在新窗口浏览图片

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:提供arm嵌入式资料的网站(uboot,开发板资料)

[下一篇主题]:请教jflash问题,请高手们指点一下