|
楼主 |
发表于 2021-10-17 11:38:35
|
显示全部楼层
本帖最后由 anpengfei 于 2021-10-21 16:55 编辑
vhdl -> vlog转换时遇到问题和转换出的错误:
1. entity和architecture不写在同一文件里的,部分转换出来不完整,且port中没有reg类型;
2. 输入输出为std_logic_vector类型的function转换不正确,需要自己确定function输入输出位宽,手动修改;
3. 转换出的组合逻辑always块中的赋值用的<=,需修改为=;
4. vhdl中unsigned类型数据转换后位宽不一致;
5. vhdl中某些带有大写的信号转换后成了小写;
6. vhdl中这样的port例化:A(0) => B, A(1) => C, A(3 downto 2) => D 转换不正确;
7. vhdl中for loop中有使用variable类型去截取位宽的语句 eg:A <= B(i*8+1:i*8),转换后需套generate语句目前只编译过了……还未formal和回归……
formal中:
1. 与未注明位宽数作运算有可能导致fail,eg: A=B + 3;需标明3的位宽;
2. 有些表明状态的parameter(状态机中用到)位宽超出状态个数,eg:parameter [1:0] state_A = 0, state_B = 1(2bit位宽,2个状态),也可导致fail,需把param A位宽改为1;
|
|