- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello:
Here's my problem: I have synchronizers which are used for control signals crossing clock domains. Because of this I am getting setup/hold violations. I want to use the X_ON_VIOLATION_OPTION on the first stage of my synchronizers such that a setup/hold violation will not propagate a "X" in my simulation. It appears that the X_ON_VIOLATION_OPTION assignment is what I want but when I add this to my project it has no effect (i.e. I still get an "X" in the simulation). I've tried a few different assignments in the QSF file: set_instance_assignment -name X_ON_VIOLATION_OPTION OFF -to /pcie_larch_tb/pcie_larch_top_0/pots_mod_core_1_1/sync_redge_det_0/sync_cp2cp_rsh_p1_0/s1_signal_q[0] set_instance_assignment -name X_ON_VIOLATION_OPTION OFF -to "pots_mod_core:pots_mod_core_1_1|sync_redge_det:sync_redge_det_0|sync_cp2cp_rsh_p1:sync_cp2cp_rsh_p1_0|s1_signal_q*" Quartus does not give any errors or warnings about the commands I've listed above. Has anyone used this option and can you tell me what I'm doing wrong. Also does anyone know how Quartus applies the X_ON_VIOLATION_OPTION OFF? For example does it set this option in the netlist, the back annotated delay file etc? Thanks, AlanLink Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Hello: Here's my problem: I have synchronizers which are used for control signals crossing clock domains. Because of this I am getting setup/hold violations. I want to use the X_ON_VIOLATION_OPTION on the first stage of my synchronizers such that a setup/hold violation will not propagate a "X" in my simulation. It appears that the X_ON_VIOLATION_OPTION assignment is what I want but when I add this to my project it has no effect (i.e. I still get an "X" in the simulation). I've tried a few different assignments in the QSF file: set_instance_assignment -name X_ON_VIOLATION_OPTION OFF -to /pcie_larch_tb/pcie_larch_top_0/pots_mod_core_1_1/sync_redge_det_0/sync_cp2cp_rsh_p1_0/s1_signal_q[0] set_instance_assignment -name X_ON_VIOLATION_OPTION OFF -to "pots_mod_core:pots_mod_core_1_1|sync_redge_det:sync_redge_det_0|sync_cp2cp_rsh_p1:sync_cp2cp_rsh_p1_0|s1_signal_q*" Quartus does not give any errors or warnings about the commands I've listed above. Has anyone used this option and can you tell me what I'm doing wrong. Also does anyone know how Quartus applies the X_ON_VIOLATION_OPTION OFF? For example does it set this option in the netlist, the back annotated delay file etc? Thanks, Alan --- Quote End --- Hi Alan, which simulator do use ? If your are using an "advanced" simulator like Modelsim with Verilog, you can use the command line option called "+notimingchecks". I don't know how you can handle this in VHDL. Kind regards GPK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
All:
This was one of operator error late at night. I started over after posting this and set the assignment X_ON_VIOLATION_OPTION on the first registers in my synchronizers. And it worked. It actually sets a defparam on the actual FF's in the netlist. I don't know what signals I was selecting last night but they were not the right ones. Alan
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page