采用DDS技术的波形发生器(FPGA实现)

源代码在线查看: altsyncram_hq31.tdf

软件大小: 517 K
上传用户: foreigngirl
关键词: FPGA DDS 波形发生器
下载地址: 免注册下载 普通下载 VIP

相关代码

				--altsyncram ADDRESS_ACLR_A="NONE" CBX_DECLARE_ALL_CONNECTED_PORTS="OFF" CYCLONEII_M4K_COMPATIBILITY="ON" DEVICE_FAMILY="Cyclone" ENABLE_RUNTIME_MOD="NO" INIT_FILE="./romdata/delta.mif" LOW_POWER_MODE="AUTO" NUMWORDS_A=256 OPERATION_MODE="ROM" OUTDATA_ACLR_A="NONE" OUTDATA_REG_A="CLOCK0" WIDTH_A=8 WIDTH_BYTEENA_A=1 WIDTHAD_A=8 address_a clock0 q_a CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48
				--VERSION_BEGIN 6.0 cbx_altsyncram 2006:03:30:14:59:04:SJ cbx_cycloneii 2006:02:07:15:19:20:SJ cbx_lpm_add_sub 2006:01:09:11:17:20:SJ cbx_lpm_compare 2006:01:09:11:15:40:SJ cbx_lpm_decode 2006:01:09:11:16:44:SJ cbx_lpm_mux 2006:01:09:11:16:16:SJ cbx_mgl 2006:04:14:11:14:36:SJ cbx_stratix 2006:02:07:15:17:04:SJ cbx_stratixii 2006:03:03:09:35:36:SJ cbx_util_mgl 2006:01:09:10:46:36:SJ  VERSION_END
				
				
				--  Copyright (C) 1991-2006 Altera Corporation
				--  Your use of Altera Corporation's design tools, logic functions 
				--  and other software and tools, and its AMPP partner logic 
				--  functions, and any output files any of the foregoing 
				--  (including device programming or simulation files), and any 
				--  associated documentation or information are expressly subject 
				--  to the terms and conditions of the Altera Program License 
				--  Subscription Agreement, Altera MegaCore Function License 
				--  Agreement, or other applicable license agreement, including, 
				--  without limitation, that your use is for the sole purpose of 
				--  programming logic devices manufactured by Altera and sold by 
				--  Altera or its authorized distributors.  Please refer to the 
				--  applicable agreement for further details.
				
				
				PARAMETERS
				(
					PORT_A_ADDRESS_WIDTH = 1,
					PORT_A_BYTE_ENABLE_MASK_WIDTH = 1,
					PORT_A_DATA_WIDTH = 1,
					PORT_B_ADDRESS_WIDTH = 1,
					PORT_B_BYTE_ENABLE_MASK_WIDTH = 1,
					PORT_B_DATA_WIDTH = 1
				);
				FUNCTION cyclone_ram_block (clk0, clk1, clr0, clr1, ena0, ena1, portaaddr[PORT_A_ADDRESS_WIDTH-1..0], portabyteenamasks[PORT_A_BYTE_ENABLE_MASK_WIDTH-1..0], portadatain[PORT_A_DATA_WIDTH-1..0], portawe, portbaddr[PORT_B_ADDRESS_WIDTH-1..0], portbbyteenamasks[PORT_B_BYTE_ENABLE_MASK_WIDTH-1..0], portbdatain[PORT_B_DATA_WIDTH-1..0], portbrewe)
				WITH ( 	CONNECTIVITY_CHECKING,	DATA_INTERLEAVE_OFFSET_IN_BITS,	DATA_INTERLEAVE_WIDTH_IN_BITS,	DONT_POWER_OPTIMIZE,	INIT_FILE,	INIT_FILE_LAYOUT,	LOGICAL_RAM_NAME,	mem_init0,	mem_init1,	MIXED_PORT_FEED_THROUGH_MODE,	OPERATION_MODE,	PORT_A_ADDRESS_CLEAR,	PORT_A_ADDRESS_WIDTH,	PORT_A_BYTE_ENABLE_CLEAR,	PORT_A_BYTE_ENABLE_MASK_WIDTH,	PORT_A_DATA_IN_CLEAR,	PORT_A_DATA_OUT_CLEAR,	PORT_A_DATA_OUT_CLOCK,	PORT_A_DATA_WIDTH,	PORT_A_FIRST_ADDRESS,	PORT_A_FIRST_BIT_NUMBER,	PORT_A_LAST_ADDRESS,	PORT_A_LOGICAL_RAM_DEPTH,	PORT_A_LOGICAL_RAM_WIDTH,	PORT_A_WRITE_ENABLE_CLEAR,	PORT_B_ADDRESS_CLEAR,	PORT_B_ADDRESS_CLOCK,	PORT_B_ADDRESS_WIDTH,	PORT_B_BYTE_ENABLE_CLEAR,	PORT_B_BYTE_ENABLE_CLOCK,	PORT_B_BYTE_ENABLE_MASK_WIDTH,	PORT_B_DATA_IN_CLEAR,	PORT_B_DATA_IN_CLOCK,	PORT_B_DATA_OUT_CLEAR,	PORT_B_DATA_OUT_CLOCK,	PORT_B_DATA_WIDTH,	PORT_B_FIRST_ADDRESS,	PORT_B_FIRST_BIT_NUMBER,	PORT_B_LAST_ADDRESS,	PORT_B_LOGICAL_RAM_DEPTH,	PORT_B_LOGICAL_RAM_WIDTH,	PORT_B_READ_ENABLE_WRITE_ENABLE_CLEAR,	PORT_B_READ_ENABLE_WRITE_ENABLE_CLOCK,	POWER_UP_UNINITIALIZED,	RAM_BLOCK_TYPE) 
				RETURNS ( portadataout[PORT_A_DATA_WIDTH-1..0], portbdataout[PORT_B_DATA_WIDTH-1..0]);
				
				--synthesis_resources = M4K 16 
				OPTIONS ALTERA_INTERNAL_OPTION = "OPTIMIZE_POWER_DURING_SYNTHESIS=NORMAL_COMPILATION";
				
				SUBDESIGN altsyncram_hq31
				( 
					address_a[7..0]	:	input;
					clock0	:	input;
					q_a[7..0]	:	output;
				) 
				VARIABLE 
					ram_block1a0 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 0,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a1 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 1,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a2 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 2,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a3 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 3,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a4 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 4,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a5 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 5,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a6 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 6,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					ram_block1a7 : cyclone_ram_block
						WITH (
							CONNECTIVITY_CHECKING = "OFF",
							DONT_POWER_OPTIMIZE = "ON",
							INIT_FILE = "./romdata/delta.mif",
							INIT_FILE_LAYOUT = "port_a",
							LOGICAL_RAM_NAME = "ALTSYNCRAM",
							OPERATION_MODE = "rom",
							PORT_A_ADDRESS_CLEAR = "none",
							PORT_A_ADDRESS_WIDTH = 8,
							PORT_A_DATA_OUT_CLEAR = "none",
							PORT_A_DATA_OUT_CLOCK = "clock0",
							PORT_A_DATA_WIDTH = 1,
							PORT_A_FIRST_ADDRESS = 0,
							PORT_A_FIRST_BIT_NUMBER = 7,
							PORT_A_LAST_ADDRESS = 255,
							PORT_A_LOGICAL_RAM_DEPTH = 256,
							PORT_A_LOGICAL_RAM_WIDTH = 8,
							RAM_BLOCK_TYPE = "auto"
						);
					address_a_wire[7..0]	: WIRE;
				
				BEGIN 
					ram_block1a[7..0].clk0 = clock0;
					ram_block1a[7..0].portaaddr[] = ( address_a_wire[7..0]);
					address_a_wire[] = address_a[];
					q_a[] = ( ram_block1a[7..0].portadataout[0..0]);
				END;
				--VALID FILE
							

相关资源