⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataformat_adjust_widefreq.vhd

📁 ISE7.1
💻 VHD
字号:
--------------------------------------------------------------------------------
-- Company: 
-- Engineer:
--
-- Create Date:    21:07:50 01/24/07
-- Design Name:    
-- Module Name:    dataformat_adjust_widefreq - Behavioral
-- Project Name:   
-- Target Device:  
-- Tool versions:  
-- Description:
--
-- Dependencies:
-- 
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
-- 
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity dataformat_adjust_widefreq is
port(
     select_clk           :in std_logic;------选择的ADC时钟
     reset                :in std_logic;------------复位脉冲
     en_clk_1024          :in std_logic;  ------求和点数决定的时钟
	  data_in              :in std_logic_vector(21 downto 0);-----累加器的输出
	  dataout_widefreq     :out std_logic_vector(7 downto 0);
	  mux_en               :out std_logic
     );
end dataformat_adjust_widefreq;

architecture Behavioral of dataformat_adjust_widefreq is

type states is(x_wait,adjust,send_data1,send_data2);
signal state:states:=x_wait;
signal data1:std_logic_vector(7 downto 0);-----调整后的寄存器1;
signal data2:std_logic_vector(7 downto 0);-----调整后的寄存器1;
	begin
		process(select_clk,reset)
		begin
			if(rising_edge(select_clk))then
			  if(reset='0')then
			  state<=x_wait;
			  else
				    case state is
					   when x_wait=>
						    if (en_clk_1024='1')then
							   state<=adjust;
							 else 
							   state<=x_wait;mux_en<='0';
							 end if;
				      when adjust=>
						      data1<=data_in(21 downto 14);
						      data2<=data_in(13 downto 6);	 ----在上位机的程序中并未采用由最高位判断是否
								state<=send_data1;						 ----为一个完整数据。而是根据传过来的个数即默认发送无错误
				      when send_data1=>
						      dataout_widefreq<=data1;				 -----每200个字节组成100个数据
						      mux_en<='1';
						      state<=send_data2;
				      when send_data2=>
						      dataout_widefreq<=data2;
								mux_en<='1';
						      state<=x_wait;
				    end case;
			  end if;
			end if;
		end process;
	end 	Behavioral;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -