带load、clr等功能的寄存器.vhd
上传用户:easylife05
上传日期:2013-03-21
资源大小:42k
文件大小:2k
源码类别:

VHDL/FPGA/Verilog

开发平台:

C/C++

  1. -- Register Inference
  2. -- Download from: http://www.fpga.com.cn
  3. Library IEEE ;
  4. use IEEE.std_logic_1164.all ;
  5. ENTITY reginf IS
  6. PORT
  7. (
  8. d, clk, clr, pre, load, data : IN BIT;
  9. q1, q2, q3, q4, q5, q6, q7 : OUT BIT
  10. );
  11. END reginf;
  12. ARCHITECTURE maxpld OF reginf IS
  13. BEGIN
  14. -- Register with active-high Clock
  15. PROCESS
  16. BEGIN
  17.     WAIT UNTIL clk = '1';         
  18.     q1 <= d;
  19. END PROCESS;
  20. -- Register with active-low Clock
  21. PROCESS
  22. BEGIN
  23.     WAIT UNTIL clk = '0';          
  24.     q2 <= d;
  25. END PROCESS;
  26. -- Register with active-high Clock & asynchronous Clear
  27. PROCESS (clk, clr)                      
  28. BEGIN
  29.     IF clr = '1' THEN    
  30.         q3 <= '0';
  31.     ELSIF clk'EVENT AND clk = '1' THEN
  32.         q3 <= d;
  33.     END IF;
  34. END PROCESS;
  35. -- Register with active-low Clock & asynchronous Clear
  36. PROCESS (clk, clr)                     
  37. BEGIN
  38.     IF clr = '0' THEN    
  39.         q4 <= '0';
  40.     ELSIF clk'EVENT AND clk = '0' THEN
  41.         q4 <= d;
  42.     END IF;
  43. END PROCESS;
  44. -- Register with active-high Clock & asynchronous Preset
  45. PROCESS (clk, pre)                      
  46. BEGIN
  47.     IF pre = '1' THEN    
  48.         q5 <= '1';
  49.     ELSIF clk'EVENT AND clk = '1' THEN
  50.         q5 <= d;
  51.     END IF;
  52. END PROCESS;
  53. -- Register with active-high Clock & asynchronous load
  54. PROCESS (clk, load, data)                      
  55. BEGIN
  56.     IF load = '1' THEN    
  57.         q6 <= data;
  58.     ELSIF clk'EVENT AND clk = '1' THEN
  59.         q6 <= d;
  60.     END IF;
  61. END PROCESS;
  62. -- Register with active-high Clock & asynchronous Clear & Preset
  63. PROCESS (clk, clr, pre)                      
  64. BEGIN
  65.     IF clr = '1' THEN    
  66.         q7 <= '0';
  67. ELSIF pre = '1' THEN
  68. q7 <= '1';
  69.     ELSIF clk'EVENT AND clk = '1' THEN
  70.         q7 <= d;
  71.     END IF;
  72. END PROCESS;
  73. END maxpld;