問題1:任意測試題目設計:設計壹個異步清零信號的4位二進制減法計數器。
程序源代碼如下(包括異步清零?並包含同步設置):仿真結果和RTL圖如圖所示。
圖書館?ieee
使用?IEEE . STD _ logic _ 1164 . all;
使用?IEEE . STD _ logic _ arith . all;
使用?IEEE . STD _ logic _ unsigned . all;
- * - * -
實體?子_計數器?是嗎?
端口(時鐘:?在?std _ logic?
?clr:?在?std _ logic
?預設?:?在?std _ logic
?d:?在?std_logic_vector(3?唐托?0);
?問:?出局?std_logic_vector(3?唐托?0);
?博?:?出局?STD _ logic);?
結束?sub _ counter?
- * - * -
- * - * -
建築?拱門?的?子_計數器?是
信號?i_cnt?:?std_logic_vector(3?唐托?0);
開始
P1?:進程(時鐘、時鐘)
開始
如果?clr='0 '?然後
i_cnt?& lt=?"1001";
博?& lt=?'0';
埃爾西弗?時鐘事件?然後呢。clk='0 '?然後
如果?preset='0 '?然後
i_cnt?& lt=?d;
埃爾西弗?preset='1 '?然後
i_cnt?& lt=?I _ CNT-1;
如果?i_cnt="0000 "?然後
BO & lt=?'1';
i_cnt?& lt=?"1001";
其他
BO & lt=?'0';
結束?如果;
結束?如果;
結束?如果;
結束?流程?p 1;
P2?:?進程(i_cnt)
開始
q?& lt=?i _ cnt
結束?流程?P2;
結束?拱門;
- * - * -
第二個問題是時序邏輯門電路的設計:設計壹個異步復位的JK觸發器。
原始代碼如下:
圖書館?ieee
使用?IEEE . STD _ logic _ 1164 . all;
使用?IEEE . STD _ logic _ arith . all;
使用?IEEE . STD _ logic _ unsigned . all;
- * -實體- * -
實體?JK?是
端口(clk?:?在?std _ logic
?設置?:?在?std _ logic
?j,K?:?在?std _ logic
?q?:?出局?std _ logic
Q1?:?出局?STD _ logic);
結束?JK;
- * -結束- * -
- * -建築- * -
建築?拱門?的?JK?是
信號?Q_pre?:?std _ logic
開始
P1?:?進程(時鐘,設置)
開始
如果?set='0 '?然後
Q_pre?& lt=?'0';
埃爾西弗?時鐘事件?然後呢。clk='1 '?然後
如果?J='0 '然後呢?K='0 '?然後
Q_pre?& lt=?Q _ pre
埃爾西弗?J='0 '然後呢?那麽K='1 '
Q_pre?& lt=?'0';
埃爾西弗?J='1 '然後呢?那麽K='0 '
Q_pre?& lt=?'1';
埃爾西弗?J='1 '然後呢?那麽K='1 '
Q_pre?& lt=?不是嗎?Q _ pre
其他
NULL
結束?如果;
結束?如果;
結束?流程?p 1;
- * - * -
P2?:?流程(Q_pre)
開始
q?& lt=?Q _ pre
q 1 & lt;=?不是嗎?Q _ pre
結束?過程;
結束?拱門;
- * -結束- * -