——實現74hc85的功能以及16位數值比較器
一、實驗目的
二、實現74hc85的功能
三、用74hc85組成16位數值比較器
//檔名稱:_74hc85.v
//fuchaoxinhust12052020
module _74hc85(i_geq,i_leq,i_eq,a,b,f_geq,f_leq,f_eq);
input [3:0] a,b;
input i_geq,i_leq,i_eq;
output reg f_geq, f_leq, f_eq;
/*說明:
輸入端:i是用於級聯的輸入訊號,[3:0] a,b是輸入的待比較數字;
*/always @(*) begin
// 預設比較時a在前b在後
以串聯拓展為例:
//檔名稱:_74hc85.v
//檔名稱:compare_16.v
//fuchaoxinhust12052020
module _74hc85(i_geq,i_leq,i_eq,a,b,f_geq,f_leq,f_eq);
input [3:0] a,b;
input i_geq,i_leq,i_eq;
output reg f_geq, f_leq, f_eq;
/*說明:
輸入端:i是用於級聯的輸入訊號,[3:0] a,b是輸入的待比較數字;
*/always @(*) begin
// 預設比較時a在前b在後
if (a[3]>b[3]) begin
f_geq=1; f_leq=0; f_eq=0;
endelse if (a[3]b[2]) begin
f_geq=1; f_leq=0; f_eq=0;
endelse if (a[2]b[1]) begin
f_geq=1;
f_leq=0;
f_eq=0;
endelse if (a[1]b[1]) begin
f_geq=1; f_leq=0; f_eq=0;
endelse if (a[1]=0;i=i-1) assign a_0[i]=a[i], b_0[i]=b[i];
for(i=7;i>=4;i=i-1) assign a_1[i-4]=a[i], b_1[i-4]=b[i];
for(i=11;i>=8;i=i-1) assign a_2[i-8]=a[i], b_2[i-8]=b[i];
for(i=15;i>=12;i=i-1) assign a_3[i-12]=a[i], b_3[i-12]=b[i];
//先後執行四位數值比較
_74hc85 u0(i_geq,i_leq,i_eq,a_0,b_0,f_geq[0],f_leq[0],f_eq[0]);
_74hc85 u1(f_geq[0],f_leq[0],f_eq[0],a_1,b_1,f_geq[1],f_leq[1],f_eq[1]);
_74hc85 u2(f_geq[1],f_leq[1],f_eq[1],a_2,b_2,f_geq[2],f_leq[2],f_eq[2]);
_74hc85 u3(f_geq[2],f_leq[2],f_eq[2],a_3,b_3,f_geq[3],f_leq[3],f_eq[3]);
//輸出
assign f_geqq=f_geq[3];
assign f_leqq=f_leq[3];
assign f_eqq =f_eq [3];
endmodule
//檔名稱:test_compare_16.v
//fuchaoxinhust12052020
`timescale 10ns/1ns
module test_cd4532;
reg i_geq,i_leq,i_eq;
reg [15:0] a,b;
wire f_geqq,f_leqq,f_eqq;
compare_16 u0(i_geq,i_leq,i_eq,a,b,f_geqq,f_leqq,f_eqq);//例項化元件
initial
$monitor($time,":\t i_geq=%b, i_leq=%b, i_eq=%b, a=%b, b=%b, f_geqq=%b, f_leqq=%b, f_eqq=%b \n", i_geq,i_leq,i_eq,a,b,f_geqq,f_leqq,f_eqq);
//監視器的顯示內容
initial begin
//使能訊號為0時
i_geq=0; i_leq=0; i_eq=1; a=16'b0010_0000_0000_0000; b=16'b0010_0000_0000_0100;
#5i_geq=0; i_leq=0; i_eq=1; a=16'b1000_0000_0000_0000; b=16'b0100_0000_0000_0000;
#5i_geq=0; i_leq=0; i_eq=1; a=16'b0100_0000_0000_0000;b=16'b0100_0000_0000_0000;
#5//使能訊號為1時
i_geq=0; i_leq=0; i_eq=1; a=16'b0001_0000_0000_0000; b=16'b1000_0000_0000_0000;
#5i_geq=0; i_leq=0; i_eq=1; a=16'b0000_0000_0100_0000; b=16'b0100_0000_0000_0000;
#5i_geq=0; i_leq=0; i_eq=1; a=16'b0000_0000_0000_0001; b=16'b1000_0000_0000_0000;
#5$stop;//停止模擬**
74hc和74ls的區別
74hc和74ls的區別 一 74ls屬於ttl型別的積體電路,而74hc屬於cmos積體電路。ls hc 二者高電平低電平定義不同,hc高電平規定為0.7倍電源電壓,低電平規定為0.3倍電源電壓。ls規定高電平為2.0v,低電平為0.8v。帶負載特性不同。hc上拉下拉能力相同,ls上拉弱而下拉強。...
74HC595的中文資料
74hc595 具有三態輸出鎖存功能的8位序列輸入 序列 並行輸出移位暫存器 本文翻譯自nxp的74hc595的datasheet 74hc595和74hct595是帶有儲存暫存器和三態輸出的8位序列移位暫存器,移位暫存器和儲存暫存器有各自的時鐘。每當移位暫存器輸入時鐘shcp上公升沿來臨之時,資料...
除錯74HC165過程出現的問題
除錯過程很奇怪,記錄下來,作為紀念.1.電路 1 165接6路單刀雙擲開關,公共端接165晶元,常閉端接5v,常開端接地.最高位的2路 d7,d6 直接接地.165晶元5v供電.2 微控制器使用是stm32f103,i o管腳通過9012pnp型三極體,將3.3v轉為5v,控制165晶元的pl端和c...