日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有限状态机HDL模板

發布時間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有限状态机HDL模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?邏輯設計, 顧名思義, 只要理清了 邏輯 時序, 剩下的設計只是做填空題而已。

?下面給出了有限狀態機的標準設計,分別為 VHDL 和 Verilog 代碼

1? 有限狀態機

  

2? VHDL模板一

library IEEE; use ieee.std_logic_1164.all;--! 1) 端口定義 entity <entity_name> is port (DIN : in <data_type>;RST : in std_logic;CLK : in std_logic; DOUT : out <data_type> ); end <entity_name>;--! 2) 狀態定義 architecture <arch_name> of <entity_name> istype state is (IDLE, ST1, ST2, ...); signal c_state, n_state : state;begin--! 3) 時序邏輯 pfsmsyn: process (rst, clk) beginif (rst = '1') thenc_state <= IDLE;elsif (clk'event and clk='1') thenc_state <= n_state;endif; end process;--! 4) 組合邏輯 pfsmlogic: process (din, c_state) begincase c_state iswhen IDLE =>if (din = ...) thendout <= <value>; -- 輸出c_state <= state1; -- 狀態else ...end if;when ST1 =>... ...... ...... ...when others =>... ...end case; end process;end <arch_name>;

?

3? Verilog模板一

// 1) 端口聲明 module fsm(clk, rst, ctrl, dout);input clk, rst, ctrl;output [n-1:0] dout; // n 取決于輸出值的位數reg [n-1:0] dout;// 2) 狀態定義parameter IDLE = 0, ST1 = 1, ST2 = 2, ST3 = 3, ....;reg [m-1:0] c_state, n_state; // m 取決于‘“狀態”數量的位數// 3) 時序邏輯 always @ (posedge clk or posedge rst) begin: SEQif (rst)c_state = IDLE;elsec_state = n_state; end// 4) 組合邏輯 module @ (ctrl or c_state) begin: COMBcase (c_state)IDLE: begindout = <value0>;n_state = ST1;endST1: begindout = <value1>;n_state = ST2;endST2: . . . . . .. . . . . .. . . . . .endcase endendmodule

?

參考資料:

?<Circuit Design with VHDL>? chapter 8? State Machines

?<HDL Chip Design>

轉載于:https://www.cnblogs.com/xinxue/p/5223810.html

總結

以上是生活随笔為你收集整理的有限状态机HDL模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。