【iCore1S 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用

时间:2023-03-10 00:55:26
【iCore1S 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用

实验现象:

打开tool-->Netlist viewer-->RTL viewer可观察各个逻辑连接

核心代码:

//-----------------Module_logic_gates---------------//
module logic_gates(
input CLK_12M,
output c,
output d,
output e,
output f,
output g,
output h,
output i,
output j,
output k,
output l
); //-----------------------rst_n----------------------//
reg rst_n;
reg [:]cnt_rst; always@(posedge CLK_12M)
begin
if(cnt_rst=='d10)
begin
rst_n <= 'd1;
cnt_rst <= 'd10;
end
else cnt_rst <= cnt_rst + 'd1;
end //--------------------signal_a---------------------//
reg [:]a; always@(posedge CLK_12M or negedge rst_n) //产生输入信号a
begin
if(!rst_n)
a <= 'd0;
else if(a == 'd255)
a <= 'd0;
else a <= a + 'd1;
end //---------------------signal_b----------------------//
reg [:]b; always@(posedge CLK_12M or negedge rst_n) //产生输入信号b
begin
if(!rst_n)
b <= 'd0;
else if(b == 'd1023)
b <= 'd0;
else b <= b + 'd1;
end //----------------------逻辑运算----------------------//
assign c = a[] && b[]; //逻辑与
assign d = a[] || b[]; //逻辑或
assign e = !a[]; //逻辑非 //-----------------------位运算----------------------//
assign f = a[] & b[]; //按位与
assign g = a[] | b[]; //按位或
assign h = ~a[]; //按位非
assign i = a[] &~ b[]; //按位与非
assign j = a[] |~ b[]; //按位或非
assign k = a[] ^ b[]; //按位异或
assign l = a[] ~^ b[]; //按位同或 //-----------------------endmodule-------------------//
endmodule

实验方法及指导书:

链接:http://pan.baidu.com/s/1hskV8OG 密码:su3g

【iCore1S 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用