wave-gen.vhd
来自「design compile synthesis user guide」· VHDL 代码 · 共 51 行
VHD
51 行
package ROMS is -- a 4x13 ROM called ROM that contains the waveform constant ROM_WIDTH: INTEGER := 4; subtype ROM_WORD is BIT_VECTOR (1 to ROM_WIDTH); subtype ROM_RANGE is INTEGER range 0 to 12; type ROM_TABLE is array (0 to 12) of ROM_WORD; constant ROM: ROM_TABLE := ROM_TABLE'( "1100", -- time step 0 "1100", -- time step 1 "0100", -- time step 2 "0000", -- time step 3 "0110", -- time step 4 "0101", -- time step 5 "0111", -- time step 6 "1100", -- time step 7 "0100", -- time step 8 "0000", -- time step 9 "0110", -- time step 10 "0101", -- time step 11 "0111"); -- time step 12end ROMS;use work.ROMS.all;entity WAVEFORM is -- Waveform generator port(CLOCK: in BIT; RESET: in BOOLEAN; WAVES: out ROM_WORD);end; architecture BEHAVIOR of WAVEFORM is signal STEP: ROM_RANGE;begin TIMESTEP_COUNTER: process -- Time stepping process begin wait until CLOCK'event and CLOCK = '1'; if RESET then -- Detect reset STEP <= ROM_RANGE'low; -- Restart elsif STEP = ROM_RANGE'high then -- Finished? STEP <= ROM_RANGE'high; -- Hold at last value-- STEP <= ROM_RANGE'low; -- Continuous wave else STEP <= STEP + 1; -- Continue stepping end if; end process TIMESTEP_COUNTER; WAVES <= ROM(STEP);end BEHAVIOR;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?