2.2.4 傳輸模塊
本模塊的作用是接收存儲(chǔ)模塊的啟動(dòng)指令并接收從存儲(chǔ)模塊傳輸過(guò)來(lái)的以編碼完成的數(shù)據(jù),并將這個(gè) 45 位的 2 進(jìn)制編碼 通過(guò) I2C 串口發(fā)送給上級(jí)接口,其內(nèi)部結(jié)構(gòu)圖如下:

圖 2-6 傳輸模塊
當(dāng)接收模塊收到存儲(chǔ)模塊發(fā)來(lái)的啟動(dòng)信號(hào)(COMX=’0’)時(shí),I2C_DATA 開(kāi)始接收 DATA_IN 傳輸來(lái)的數(shù)據(jù)。具體方法為:通過(guò)捕捉 CLK 上升沿,每次上升沿計(jì)數(shù)器加 1,每次傳輸 1 字節(jié)的數(shù)據(jù)。這樣計(jì)數(shù) 45 次,便能把 45 位的數(shù)據(jù)從 I2C_DATA串行接口 1 字節(jié) 1 字節(jié)的發(fā)送給上級(jí)端口。
當(dāng) 45 位編碼全部傳輸完畢后,傳輸模塊便會(huì)向存儲(chǔ)模塊發(fā)送“發(fā)送完畢”指令,回到等待狀態(tài)。
2.3 頂層模塊設(shè)計(jì)
頂層模塊的主要作用是將上述時(shí)鐘分頻模塊,計(jì)數(shù)器模塊與存儲(chǔ)轉(zhuǎn)發(fā)模塊連接起來(lái),主要使用元件例化語(yǔ)句。
具體語(yǔ)句如下:
entity su mmar y1 is
Port ( sck : in STD_LOGIC;
reset: in std_log ic;
com_in1:in std_log ic_vector(1 downto 0);
com_in2:in std_log ic;
com_out1 :out std_lo gic_vector(1 downto 0);
com_out2 :out std_lo gic;
data_in1 : in STD_LOGIC_vector(11 downto
0);
data_in2 : in STD_LOGIC_vector(11 do wnto 0);
data_o ut:out std_logic);
用
end summar y1 ;
architecture Behavioral o f summar y1 is
component clk is --CLK 分頻模塊調(diào)
Port ( sck : in STD_LOGIC;
clk1 : out STD_LOGIC;
clk2 : out STD_LOGIC;
clk3 : out STD_LOGIC;
clk4 : out STD_LOGIC);
end compo nent;
component count is --計(jì)數(shù)器模塊調(diào)用
Port ( clk1 : in STD_LOGIC;
com1 : o ut STD_LOGIC_VECTOR (1 downto 0);
com2 : o ut STD_LOGIC);
end compo nent;
用
0);
component logic_2 is --存儲(chǔ)轉(zhuǎn)發(fā)模塊調(diào)
Port (
clk4 : in STD_LOGIC;
com1 : in std_logic_vector(1 downto 0);
com2 : in std_logic;
data_in1 : in STD_LOGIC_vector(11 downto 0);
data_in2 : in STD_LOGIC_vector(11 downto
data_o ut : out STD_LOGIC);
end compo nent;
signal clk1,clk2,clk3,clk4:std_lo gic;
begin
u0:clk po rt map(sck,clk1,clk2,clk3,clk4);
u1:count po rt map(clk1,co m_out1,co m_o ut2);
--端口映射
u2:logic_2 port map( clk4,com_in1,com_in2,data_ in1,data_in2,data_out)
end Behavio ral;
電子發(fā)燒友App

















評(píng)論