home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / verilog / 346 < prev    next >
Encoding:
Internet Message Format  |  1992-09-15  |  1.1 KB

  1. Path: sparky!uunet!optilink!manley
  2. From: manley@optilink.UUCP (BIFF!!!!1)
  3. Newsgroups: comp.lang.verilog
  4. Subject: constant expressions, parameters, `define
  5. Message-ID: <12351@optilink.UUCP>
  6. Date: 15 Sep 92 22:48:54 GMT
  7. Distribution: usa
  8. Organization: DSC/Optilink Access Products
  9. Lines: 39
  10.  
  11.  
  12. I'd like to do the following:
  13.  
  14. parameter pOW = 27;
  15. parameter [pOW-1:0]  
  16.   Xvob = pOW'b1 << 26;
  17.          ^^^
  18.  
  19. Apparently, verilog doesn't allow this wanting instead:
  20.  
  21.   Xvob = 27'b1 << 26;
  22.          ^^
  23.  
  24. I guess I have to use: 
  25.  
  26. `define pOW 27
  27. parameter [`pOW-1:0]  
  28.   Kibo = `pOW'b1 << 26;  
  29.  
  30. I'd been using parameters instead of `defines to avoid
  31. having to use the ` on macro substitutions.  Why does
  32. verilog require the ` ?  This aspect of the language
  33. seems a little ridiculous.
  34.  
  35. I'd like to get rid of the "26" as well, replacing it with a 
  36. variable so that I can do things like:
  37.  
  38. i = `pOW-1;
  39. parameter [`pOW-1:0]
  40.   Obik = `pOW'b1 << i; i=i-1;
  41.   Xibo = `pOW'b1 << i; i=i-1;
  42.  
  43. Oh yeah, I want to take my source into synopsys for synthesis.
  44.  
  45. Any comments? Ideas?
  46.  
  47. --
  48. dave
  49. manley@optilink.com
  50.