Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Verilog

Pelabuhan Verilog

Port adalah seperangkat sinyal yang bertindak sebagai input dan output ke modul tertentu dan merupakan cara utama untuk berkomunikasi dengannya. Pikirkan modul sebagai chip buatan yang ditempatkan pada PCB dan menjadi sangat jelas bahwa satu-satunya cara untuk berkomunikasi dengan chip adalah melalui pinnya. Port seperti pin dan digunakan oleh desain untuk mengirim dan menerima sinyal dari dunia luar.

verilog-port

Jenis Port

Port Deskripsi
Masukan Modul desain hanya dapat menerima nilai dari luar menggunakan input port
Keluaran Modul desain hanya dapat mengirim nilai ke luar menggunakan output port
Keluar Modul desain dapat mengirim atau menerima nilai menggunakan inout port

Port secara default dianggap sebagai jaring dengan tipe wire .

Sintaks

Port dideklarasikan sebagai inout dapat bertindak sebagai input dan output.

  
  
	input  [net_type] [range] list_of_names; 	// Input port
	inout  [net_type] [range] list_of_names; 	// Input & Output port
	output [net_type] [range] list_of_names; 	// Output port driven by a wire
	output [var_type] [range] list_of_names; 	// Output port driven by a variable

  

Contoh

Pada kode di bawah ini, ada tiga input port, satu output port dan satu inout pelabuhan.

  
  
module  my_design ( input wire			clk,
                    input 					en,
                    input 					rw,
                    inout [15:0]	  data,
                    output 					int );
                    
	// Design behavior as Verilog code
	
endmodule

  

Adalah ilegal untuk menggunakan nama yang sama untuk beberapa port.

  
  
	input  aport;         // First declaration - valid
	input  aport;         // Error - already declared
	output aport;         // Error - already declared

  

Port yang ditandatangani

signed atribut dapat dilampirkan ke deklarasi port atau deklarasi net/reg atau keduanya. Jaring implisit secara default tidak ditandatangani .

  
  
module ( input      a, 
                    b,
         output     c);
		 
	// ports a, b, and c are by default unsigned
endmodule

  

Jika deklarasi net/reg memiliki signed atribut, maka yang lain juga harus dianggap ditandatangani.

  
  
	module ( input signed a, b,
	         output c);
		wire a, b;          // a, b are signed from port declaration
		reg signed c;       // c is signed from reg declaration
	endmodule

  

Variasi Port

Verilog 1995

Verilog telah mengalami beberapa revisi dan versi IEEE asli pada tahun 1995 memiliki cara berikut untuk deklarasi port. Di sini, deklarasi modul harus terlebih dahulu mencantumkan nama port di dalam tanda kurung dan kemudian arah port yang ditentukan kemudian di dalam badan modul.

  
  	
module test (a, b, c);
	
	input 	[7:0] a;            // inputs "a" and "b" are wires
	input 	[7:0] b;  
	output 	[7:0] c; 			// output "c" by default is a wire
	
	// Still, you can declare them again as wires to avoid confusion
	wire 	[7:0] a;
	wire 	[7:0] b;
	wire 	[7:0] c;
endmodule
	
	
module test (a, b, c);
	
	input  [7:0] a, b;
	output [7:0] c;           // By default c is of type wire
	
	// port "c" is changed to a reg type
	reg    [7:0] c;           
endmodule
  

Verilog 2001 dan seterusnya

Penamaan port gaya ANSI-C diperkenalkan pada tahun 2001 dan memungkinkan jenisnya ditentukan di dalam daftar port.

  
  
module test ( input [7:0]	a,
                            b, 		// "b" is considered an 8-bit input
              output [7:0]  c);
			  
	// Design content			  
endmodule

module test ( input wire [7:0]	a, 	
              input wire [7:0]  b, 		
              output reg [7:0]  c);
			  
	// Design content
endmodule

  

Jika deklarasi port menyertakan tipe net atau variabel, maka port tersebut dianggap sepenuhnya dideklarasikan. Adalah ilegal untuk mendeklarasikan ulang port yang sama dalam deklarasi tipe net atau variabel.

  
  
module test ( input      [7:0] a,       // a, e are implicitly declared of type wire
	          output reg [7:0] e );

   wire signed [7:0] a;     // illegal - declaration of a is already complete -> simulator dependent
   wire        [7:0] e;     // illegal - declaration of e is already complete
   
   // Rest of the design code
endmodule

  

Jika deklarasi port tidak menyertakan tipe net atau variabel, maka port dapat dideklarasikan kembali dalam deklarasi tipe net atau variabel.

  
  
module test ( input      [7:0] a,
              output     [7:0] e);
	              
     reg [7:0] e;              // Okay - net_type was not declared before
     
     // Rest of the design code
endmodule

  

Verilog

  1. Tutorial Verilog
  2. Rangkaian Verilog
  3. Tugas Verilog
  4. Pemblokiran &Non-Pemblokiran Verilog
  5. Fungsi Verilog
  6. Tugas Verilog
  7. Generator Jam Verilog
  8. Fungsi Matematika Verilog
  9. Format Waktu Verilog
  10. Lingkup Skala Waktu Verilog