New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Errors in implement a Verilog design involving in uart485 and rom #2103
Comments
Based on your debugging where do you believe the error arose? If you use yosys + Vivado, does the design work? If you run the bitstream through xc-bit2fasm and simulate the output, can you see where the error arose? |
I did not try yosys + Vivado, but I tried behavioral simulation of top_synth.v. The wave was similiar to image2. State was also a five-bit reg. Sub_state was a three-bit reg too. I don't know how to use yosys + Vivado. |
If behavior simulation of |
Tried these test exmples and I founed that the behavior simulation of top_post_synthesis is different from on board,whether it means that the genfasm has bug! Had someone thought to use yosys+vpr+vivado to generate bit and then compare with the bit generated by symbiflow such as v2b? |
Yes, the same issue ocures. Maybe there are someting wrong with yosys in bram initializing. |
We specifically handle |
This command makes (x -> 0). But there should not be any x in top_synth.premap.v, since the initialization data-width is 16-bit. |
So you are assuming a specific data pattern that may not be true based on the Yosys BRAM mapping. Please review https://github.com/YosysHQ/yosys/blob/master/techlibs/xilinx/brams_init.py and https://github.com/YosysHQ/yosys/blob/master/techlibs/xilinx/xc7_brams_map.v and double check your assumptions.
|
Hi,
I tried to implement a Verilog design based on the bram_init_test_18 . I found the following errors:
Because I do not have a development board with RS232, I modified the design from RS232 to RS485. Besides, I added a controller module to enable or disable the bram test function. However, the controller didn't work. Yet, the controller implemented by vivado can work well.
In addition, the output data was "E"...."0D" "0A", which indicated that the BRAM initial data was not correct. To ensure the BRAM data, I further modified the Rom_test and ERROR_OUTPUT_LOGIC into ROM_READ module in top.v. The output data did not correct either.
According to my design, the output data should include rom_data and rom_address. Since the BRAM was initiated to data equal to address, the output data should be someting like "... 01 B1 01 B1 01 B2 01 B2 01 B3 01 B3 01 B4 01 B4 01 B5 01 B5 01 B6 01 B6 01 B7 01 B7..."(the output data was correct while implemented by vivado again). However, the output data was actually someting like "...01 B1 01 B2 01 B3 01 B4 01 B5 01 B6 01 B7...". In order to locate the fault, I tried to simulate it. That's how I found the third error.
During Post_implement function simulation, the state-jump of the FSM in ROM_READ module is faulty.
The wave should be:
image1
However, the wave actually was:
image2
State became a five-bit reg, which should be a four-bit reg. And Sub_state became a three-bit reg, which should be a two-bit reg.
I wondow whether you have tried the bram init test. Could you tell my your test process and your result? Would you give me some advice in how to debug/implement my design? @mithro
The text was updated successfully, but these errors were encountered: