FPGA之旅 例化

2022-09-13 05:30:17 字數 1168 閱讀 1186

一、訊號埠採用名稱關聯

語法結構:

.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...