一、訊號埠採用名稱關聯
語法結構:
.portname(port_expr)
//portname是頂層的名稱,port_expr是底層埠
//port_expr可以是一下任何型別
1.識別符號
2.位選擇,如.c(d[0]),c埠連線到d訊號的第0位
3.部分選擇,例.bus(din[5:4])
例:module yumen(c,a,b)
.c(t3)//
二、各分層模組之編寫
底層編寫:正常書寫後,最後用assign語句將輸出定義
例:output [3:0] key_value;
原來的按鍵輸出按鍵值的次數,那麼次數是reg型,
always @(posedge clk or negedge rst)
if(!rst)
ci<=5'b0;
else if(dawn_flagr!=4'b0)
ci<=ci+1'b1;
//此時ci是按鍵輸出值,是reg型,此時需要換一下輸出值,重新定義輸出陣列,用assign賦值語句將ci賦值給輸出
//即assign key_value=ci;
三、頂層模組的編寫
1.所有中間變數必須重新宣告,否則會預設為一位的
2.注意在對在同一條線上的變數命名的時候使用同一名字
3.模組例化後在連線語法:
module_name1 u1//模組名字空格 加u?
( .clk(clk),//注意,用逗號,外邊是頂層外部訊號,括號內是底層模組訊號名字
.rst(rst),
.top_in_signal(u1_in_signal),//頂層輸入訊號進入u1模組
....
.u1_signal_output(u2_in),//u1輸出連到u2輸入,此訊號需要宣告一下,否則會預設是一位的
....
);//括號內用逗號隔開,最後乙個不加逗號,
module_name2 u2//
(.clk(clk),//注意,用逗號,外邊是底層外部訊號,括號內是頂層模組訊號名字
.rst(rst),
.u2_in(u1_output),
....top_out_signal(u1_out_signal),//不是很確定,有待驗證
...);//用分號
fpga中例化乘法器 FPGA乘法器的應用
這是兩個 位ain,bin 結果為位 yout 的例子。module mux 4 clkrst n start ainbin yout done input clk晶元的時鐘訊號。input rst n 低電平復位 清零訊號。定義為 表示晶元復位 定義為 表示復位訊號無效。input start 晶...
FPGA設計 VHDL語言篇 1 模組例化
關於模組例化有兩種方式,一種是通過宣告,在進行例化,另一種是直接進行例化操作,第一種可以通過configuration進行配置,便於統一管理配置,第二種呼叫方便,但不能通過configuration進行配置,不利於日後配置結構體。宣告 component port port1 port2 end c...
FPGA 程式130例 例10 7 例10 7
10.1 非流水線方式的8位全加器 module adder8 cout,sum,ina,inb,cin,clk output cout reg cout output 7 0 sum reg 7 0 sum input 7 0 ina,inb input cin reg 7 0 tempa,tem...