mrflibble
Advanced Member level 5
- Joined
- Apr 19, 2010
- Messages
- 2,720
- Helped
- 679
- Reputation
- 1,360
- Reaction score
- 652
- Trophy points
- 1,393
- Activity points
- 19,551
Every now and then I evaluate some tools just to see if I'm missing any tooling goodness. I've mentioned it in the past, and I'll mention it here again. One of the things I really really miss in HDL tools is refactoring support. Even if it is something trivial as renaming a module. You know how it goes. You produce some code, but it's one of those days where you are not very creative in coming up with proper descriptive names. Or you change things slightly, such that a somewhat modified name would now be more descriptive. Now if this were a regular programming language, in any modern tool I can just select the module/class/function/whatever ... press refactor, review changes, and done.
ISE/Vivado of course do not come even close to supporting this but that is no surprise. AFAIK Altera tools are not much better in this regard.
Maybe I am just too used to mature refactoring support in imperative programming country. Maybe if all you know is HDL related tools then you don't mind because you don't know what you are missing. But I find it to be a real pain in the donkey when I want to re-use an old design, or pimp an old design to improve it's re-use. Translation: polish a collection of older modules so they are easier to use in the future, where essentially future == now.
So I was wondering what you people use when refactoring.
- refactor? wut? We don't do that. We rewrite everything from scratch because it's hip and we have plenty of time.
- refactor? wut? We don't do that. We rewrite everything from scratch, which is a pain because we always run out of time. AAARGH the pressure!
- refactor? Yeah, we use a shitload of perl regex's, do a diff which we then inspect and manually edit where needed.
- refactor? Hah! We use Magic Tool XYZ!
- refawuzzawah?
In related news for those using System Verilog, SVEditor is slowly but surely getting there. Compared to the offerings by xilinx/altera it's pretty sweet. It even plays nice with UVM out of the box. The best part IMO is the fast code navigation. Well that and code completion & easy to configure templates. MINUS THE BLEEDING HAVING TO ... ahem.... Minus the having to restart eclipse when you edit templates in a funny way. But oh well, you don't edit templates that often.
Oh and View Class Diagram is really nice. Put cursor on SV class name in your code, CTRL-SHIFT-D and tadaaa nice and readable overview of all related classes.
ISE/Vivado of course do not come even close to supporting this but that is no surprise. AFAIK Altera tools are not much better in this regard.
Maybe I am just too used to mature refactoring support in imperative programming country. Maybe if all you know is HDL related tools then you don't mind because you don't know what you are missing. But I find it to be a real pain in the donkey when I want to re-use an old design, or pimp an old design to improve it's re-use. Translation: polish a collection of older modules so they are easier to use in the future, where essentially future == now.
So I was wondering what you people use when refactoring.
- refactor? wut? We don't do that. We rewrite everything from scratch because it's hip and we have plenty of time.
- refactor? wut? We don't do that. We rewrite everything from scratch, which is a pain because we always run out of time. AAARGH the pressure!
- refactor? Yeah, we use a shitload of perl regex's, do a diff which we then inspect and manually edit where needed.
- refactor? Hah! We use Magic Tool XYZ!
- refawuzzawah?
In related news for those using System Verilog, SVEditor is slowly but surely getting there. Compared to the offerings by xilinx/altera it's pretty sweet. It even plays nice with UVM out of the box. The best part IMO is the fast code navigation. Well that and code completion & easy to configure templates. MINUS THE BLEEDING HAVING TO ... ahem.... Minus the having to restart eclipse when you edit templates in a funny way. But oh well, you don't edit templates that often.
Oh and View Class Diagram is really nice. Put cursor on SV class name in your code, CTRL-SHIFT-D and tadaaa nice and readable overview of all related classes.