狂羁青马 发表于 2021-5-19 18:35:18

verilog语句 assign Y= flag?(en?1'bz:a):1'b0;怎么转为vhdl

verilog 如下:
assign Y= flag?(en?1'bz:a):1'b0;
这个逻辑用VHDL如何描述呢

bj232 发表于 2021-5-19 21:57:32

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity verilogtovhdl is

port
(
        flag        :        in                std_logic;
        en                :        in                std_logic;
        a                :        in                std_logic;
        Y                :        out                std_logic

);
end verilogtovhdl;

architecture behave of verilogtovhdl is
begin
        process(flag,en,a)
                begin       
                if flag = '1' then               
                        if en = '1' then               
                                Y <= 'Z';                       
                        else                               
                                Y <= a;                               
                        end if;               
                else                               
                        Y <= '0';
                end if;
                end process;
end behave;

bj232 发表于 2021-5-19 22:03:39

语法本身应该没有问题,你看看组合逻辑是否满足你项目需要?我用两个FPGA的开发软件,单独语法检测是通过的




ackyee 发表于 2021-5-20 09:04:08

用VERILOG 吧XILINX 的参考代码都是VERILOG身边也没人用VHDL了

狂羁青马 发表于 2021-5-22 09:27:13

ackyee 发表于 2021-5-20 09:04
用VERILOG 吧XILINX 的参考代码都是VERILOG身边也没人用VHDL了

老板用的VHDL{:sad:}

狂羁青马 发表于 2021-5-22 09:27:38

bj232 发表于 2021-5-19 22:03
语法本身应该没有问题,你看看组合逻辑是否满足你项目需要?我用两个FPGA的开发软件,单独语法检测是通过的 ...

好的,谢谢
页: [1]
查看完整版本: verilog语句 assign Y= flag?(en?1'bz:a):1'b0;怎么转为vhdl