home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / vhdl / 536 < prev    next >
Encoding:
Internet Message Format  |  1992-11-18  |  2.9 KB

  1. Path: sparky!uunet!sun-barr!cs.utexas.edu!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!uknet!root44!hrc63!rknight
  2. From: rknight@gec-rl-hrc.co.uk (Roger Knight (B21))
  3. Newsgroups: comp.lang.vhdl
  4. Subject: Re: Subset of VHDL for synthesis.
  5. Keywords: VHDL Synthesis portability
  6. Message-ID: <1992Nov18.195347.22306@gec-rl-hrc.co.uk>
  7. Date: 18 Nov 92 19:53:47 GMT
  8. References: <3200@ucl-cs.uucp>
  9. Sender: <rknight@gec-rl-hrc.co.uk>
  10. Organization: GEC Hirst Research Centre
  11. Lines: 50
  12.  
  13. In article <3200@ucl-cs.uucp> you write:
  14. >
  15. >I believe there is a group (VHDL Synthesis Working Group in Europe???) that
  16. >is trying to specify this subset.
  17. >
  18. If you are interested in writing portable VHDL then a subset of
  19. the syntax is not very useful. The most important area were
  20. the synthesis tools differ is in the interpretation of semantics.
  21.  
  22. For example we are using Mentor's AutoLogic and working with customers
  23. who have Racal and Synopsys.  The Racal user doesn't think our VHDL
  24. will synthesise well on SilcSyn because it doesn't do resource
  25. sharing and so the same (large) adder would be built separately
  26. for each decode in the controlling state machine. AutoLogic builds
  27. a single adder cells and multiplexes the input where needed.  They've
  28. also found nested IF's don't give good results on Racal so avoid
  29. using them.  We've never had that sort of problem and use netsted
  30. IF's all the time.
  31.  
  32. Even clock recognition is not simple. We have described clocks
  33. as IEEE 1164 9-state logic and used the syntax:-
  34.    IF clk = '1' AND clk'LAST_VALUE = '0' AND clk'EVENT THEN
  35. This tells AutoLogic the clock has changed and is a rising edge.
  36. Unfortunately when our customer tried to compile it under Synopsys
  37. he had to remove the 'LAST_VALUE test. OK using 'LAST_VALUE is pedantic 
  38. but logically more correct since a 'X' to '1' transition is not a rising
  39. edge and so without the 'LAST_VALUE test there could be differences
  40. between a VHDL simulation and synthesised logic's behaviour when
  41. a 'X'-->'1' vector is applied to a clock.
  42.  
  43. There are also incompatibilities in the way arithmetic is interpreted.
  44. Should bit level values be magnitude or 2's complement? How do you
  45. define overflow in arithmetic operations? A VHDL simulator will
  46. report a run-time error on overflow but the synthesised logic can't!
  47. Would the logic wrap around through zero, reset or go to some
  48. random undefined value?
  49.  
  50. The good news is Synopsys, Mentor and Viewlogic are supposed to
  51. be working together on a unified arithmetic library for the IEEE
  52. 1164 logic type ( the IEEE only defined logical operations on the
  53. type).  I just hope its not too diferent from the arithmetic which
  54. Mentor have already implemented! 
  55.  
  56. Roger Knight                   rknight@gec-rl.hrc.co.uk
  57. VHDL ASIC Design Group
  58. Hirst Research Centre,
  59. GEC-Marconi Ltd.
  60.  
  61. DISCLAIMER: I said it not my company.If any of the above is bu****t,
  62. misleading or just plain wrong - thats your problem not mine.
  63.