mac_mult_itg1.tdf 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --alt_mac_mult DATAA_CLEAR="NONE" DATAA_CLOCK="NONE" DATAA_WIDTH=9 DATAB_CLEAR="NONE" DATAB_CLOCK="NONE" DATAB_WIDTH=10 MULT_CLEAR="NONE" MULT_CLOCK="NONE" MULT_INPUT_A_IS_CONSTANT="NO" MULT_INPUT_B_IS_CONSTANT="NO" MULT_PIPELINE=0 MULT_REPRESENTATION_A="UNSIGNED" MULT_REPRESENTATION_B="UNSIGNED" OUTPUT_CLEAR="NONE" OUTPUT_CLOCK="NONE" OUTPUT_WIDTH=19 SIGNA_CLEAR="NONE" SIGNA_CLOCK="NONE" SIGNB_CLEAR="NONE" SIGNB_CLOCK="NONE" dataa datab dataout signa signb CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 DEVICE_FAMILY="Cyclone IV E"
  2. --VERSION_BEGIN 13.0 cbx_alt_mac_mult 2013:04:24:18:08:47:SJ cbx_mgl 2013:04:24:18:11:10:SJ VERSION_END
  3. -- Copyright (C) 1991-2013 Altera Corporation
  4. -- Your use of Altera Corporation's design tools, logic functions
  5. -- and other software and tools, and its AMPP partner logic
  6. -- functions, and any output files from any of the foregoing
  7. -- (including device programming or simulation files), and any
  8. -- associated documentation or information are expressly subject
  9. -- to the terms and conditions of the Altera Program License
  10. -- Subscription Agreement, Altera MegaCore Function License
  11. -- Agreement, or other applicable license agreement, including,
  12. -- without limitation, that your use is for the sole purpose of
  13. -- programming logic devices manufactured by Altera and sold by
  14. -- Altera or its authorized distributors. Please refer to the
  15. -- applicable agreement for further details.
  16. FUNCTION mult_apl (dataa[8..0], datab[9..0])
  17. RETURNS ( result[18..0]);
  18. --synthesis_resources = lut 135
  19. SUBDESIGN mac_mult_itg1
  20. (
  21. dataa[8..0] : input;
  22. datab[9..0] : input;
  23. dataout[18..0] : output;
  24. signa : input;
  25. signb : input;
  26. )
  27. VARIABLE
  28. mult1 : mult_apl;
  29. tmp_dataout[18..0] : WIRE;
  30. x_dataa[8..0] : WIRE;
  31. x_datab[9..0] : WIRE;
  32. x_output[18..0] : WIRE;
  33. BEGIN
  34. mult1.dataa[] = x_dataa[];
  35. mult1.datab[] = x_datab[];
  36. dataout[] = tmp_dataout[];
  37. tmp_dataout[] = (x_output[] & (((signa # (! signa)) # signb) # (! signb)));
  38. x_dataa[] = ( dataa[]);
  39. x_datab[] = ( datab[]);
  40. x_output[18..0] = mult1.result[18..0];
  41. END;
  42. --VALID FILE