Bảng đối chiếu Verilog và VHDL
TRANG CHỦ | TIN TỨC | DIỄN ĐÀN | BÀI VIẾT | DOWNLOADS | HỎI ĐÁP | TRỢ GIÚP flagflag
Tra từ điển
Menu chính
Tư liệu - Tiện ích
Đăng nhập
Bí danh:

Mật khẩu:



Lost Password?

Register now!
Thanks to
TOP  >  LSI/FPGA Design  >  Bảng đối chiếu Verilog và VHDL
VHDL Verilog
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; (Dùng trong tính toán)

entity エンティティ名 is
    定数宣言
    port(入出力宣言);
end エンティティ名;

architecture アーキ識別名 of エンティティ名 is
    定数宣言
    コンポーネント宣言
    ローカル信号宣言
begin
        :
        :
end アーキ識別名;
module モジュール名(ポートリスト);
    定数宣言
    入出力宣言
    ローカル信号宣言
      :
      :
endmodule
ポート名 :in    std_logic;
input  ポート名;
ポート名 :out   std_logic;
output ポート名;
ポート名 :inout std_logic;
inout  ポート名;
ポート名 :in    std_logic_vector(n-1 downto 0);
ポート名 :out   std_logic_vector(n-1 downto 0);
ポート名 :inout std_logic_vector(n-1 downto 0);
input  [n-1:0] ポート名;
output [n-1:0] ポート名;
inout  [n-1:0] ポート名;
generic (n:integer:=8);
constant en:std_logic_vector(1 downto 0):="00";
parameter n = 8;
parameter en = 2'b00;
signal 信号名:std_logic;

signal 信号名:std_logic_vector(n-1 downto 0);
wire 信号名;
reg  信号名;
wire [n-1:0] 信号名;
reg  [n-1:0] 信号名;
component コンポーネント名   không có "is"
    port(入出力宣言);
end component;
-
インスタンス名:コンポーネント名
    port map(ポートリスト);
-
-
モジュール名 インスタンス名(ポートリスト);
--   1行のみのコメント
/* Comment nhiều dòng */
(↑Không nên dùng)
// Comment một dòng
and or not xor (イメージは違うけど)
&   |   ~   ^
and or not xor
&&  ||  !
=   /=  >=  <=
==  !=  >=  <=
('0' & a)
(enb & addr)
{1'b0, a}
{enb, addr}
'1'  '0'  'z'
1'b1  1'b0  1'bz
B"1111_0000"
B"zzzz_zzzz" (Có thể lược bỏ B)
8'b1111_0000
8'bzzzz_zzzz
X"F0"
X"zz"
8'hf0   8'hF0
8'hzz 8'hZZ
(0=>cin, oTDers=>'0')
-
左辺 <= 右辺;
assign 左辺 = 右辺;
左辺 <= (右辺1) when (条件式) else (右辺2);
assign 左辺 = (条件式) ? (右辺1):(右辺2);
if(条件式) TDen 式1;
else 式2;
end if;
if(条件式) 式1;
else 式2;
if(条件式1) TDen 式1;
elsif(条件式2) TDen 式2;  Không phải "elseif" (chú ý)
else 式3;
end if;
if(条件式1) 式1;
else if(条件式2) 式2;
else 式3;
case(信号名) is
    when ケース1 => 式1;
    when ケース2 => 式2;
        :
        :
    when oTDers => 式n;
end case;
case(信号名)
    ケース1: 式1;
    ケース2: 式2;
        :
        :
    default: 式n;
endcase  Không có ";"
process(信号名, 信号名) begin 
    :
    :
end process;
always@(信号名 or 信号名) begin 
    :
    :
end  Không có ";"
process(CLK) begin
    if(CLK'event and CLK='1') TDen 
        :
        :
    end if;
end process;
always@(posedge CLK) begin 
        :
        :
end
process(CLK) begin
    if(CLK'event and CLK='1') TDen
        if(同期クリア) TDen 式1;
        else 式2;
        end if;
    end if;
end process;
always@(posedge CLK) begin
    if(同期クリア) 式1;
    else 式2;
end
process(CLK, 非同期クリア) begin
    if(非同期クリア) TDen 式1;
    elsif(CLK'event and CLK='1') TDen 式2;
    end if;
end process;
always@(posedge CLK or negedge 非同期クリア) begin
    if(~非同期クリア) 式1;
    else 式2;
end
トライステート信号名 <=
      接続信号名 when (制御信号条件式) else 'Z';
assign トライステート信号名 = 
      制御信号名 ? 接続信号名:1'bZ;
- Không phân biệt chữ hoa với chữ thường
- out宣言した場合、その値を信号代入文の右辺には使用できない(参照できない)。 左辺には使用可能で、ローカル信号を宣言し、出力へは <=で再代入すること。
- Có phân biệt chữ hoa, chữ thường
- always文中の信号代入文の左辺は reg宣言した信号名であること
Tell a friend
Votes:0 Average:0.00
top of the category
LSI/FPGA Design

Danh sách lời bình

Thảo luận mới
Giải trí - Cười
Copyright © 2005-2008 Nhatban.net. All Rights Reserved.