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

📄 vhdl编程基础-通用寄存器.txt

📁 用vhdl写的有关寄存器的源代码
💻 TXT
字号:
VHDL编程基础-通用寄存器 
        做了一个简单的通用寄存器,能实现并行寄存、左移、右移等。通过mod端口控制该寄存器的工作模式,作为一般寄存器,其数据位宽实现了参数化。
仿真波形如下图所示:






源代码如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY general_reg IS
 
 GENERIC( n: Positive:= 8 );
 PORT
 (
  clock           : IN  STD_LOGIC;
  serinl, serinr  : IN  STD_LOGIC;
  mode            : IN  STD_LOGIC_VECTOR(1 DOWNTO 0);
  datain          : IN  STD_LOGIC_VECTOR((n-1) DOWNTO 0);
  dataout         : out STD_LOGIC_VECTOR((n-1) DOWNTO 0)
 
 );
END ENTITY general_reg;
ARCHITECTURE rtl OF general_reg IS
 
 SIGNAL int_reg  : STD_LOGIC_VECTOR((n-1) DOWNTO 0); 
 
BEGIN
 main_proc : PROCESS
 BEGIN
  WAIT UNTIL rising_edge(clock);
  CASE mode IS
   -- ?′??
   WHEN "00" => int_reg <= (OTHERS => '0');
   -- 2¢DD??′?
   WHEN "01" => int_reg <= datain;
   -- ×óò?
   WHEN "10" => int_reg <= int_reg((n-2) DOWNTO 0) & serinl;
   -- óòò?
   WHEN "11" => int_reg <= serinr & int_reg((n-1) DOWNTO 1);
   
   WHEN OTHERS => NULL;
  END CASE;
 END PROCESS;
 dataout <= int_reg;
END rtl;   

⌨️ 快捷键说明

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