Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
các anh chị cho em hỏi làm sao để tạo được 1 tập 32 thanh ghi 32bits (register files) trong verilog ?và cả bộ cách tạo bộ nhớ (data memory) nữa.ai biết xin chỉ giúp em với.
sơ đồ đây ạh
[IMG][/IMG]
Về tạo register file, có thể dùng 1 trong 2 cách sau
- Bạn có thể chỉ dùng code VHDL/Verilog
- Nếu viết để chạy trên FPGA, bạn có thể dùng Dual-port RAM (Ram có 2 cổng)
Cách 1 dùng HDL để viết:
Sau khi khai báo các cổng input/output, để khai báo một dãy các thanh ghi:
- Verilog:
reg [31:00] register_file [0:REG_FILE_SIZE-1];
- VHDL :
type REG_FILE is array (0 to REG_FILE_SIZE-1) of std_logic_vector(31 downto 0);
signal register_file : REG_FILE;
Cách 2 dùng dual-port RAM (cách này không nên dùng trừ phi rất thiếu Flipflop. Nếu như REG_FILE_SIZE = 32 thì sơ sơ mất hết 1000 (32x32bit) Flipflop rồi. Dùng dual-port RAM thì sẽ gặp khó khăn về timing cũng như khi port từ FPGA này sang FPGA khác.
- Về tạo memory: Xilinx và Altera đều có code mẫu (Xilinx: click icon hình bóng đèn, Altera: chuột phải, insert template)
Cho em hỏi làm thế nào để tạo xung clock đồng bộ trong mô phỏng đc ah? trước giờ trên trường em chỉ sử dụng Quartus II thôi chứ chưa tìm hiểu các phần mềm khác.thầy nói không cần xét xung clock nhg nếu vậy lỡ lệnh trước chưa thực hiện xong thì PC đã đc cập nhật, lệnh kế tiếp lại nhảy vào thì làm sao ah?
hi,thanks a đã reply.em muốn hỏi là khi mô phỏng thì mình đưa xung clock vào như thế nào?Em nghĩ nếu ko có clock để đồng bộ thì lệnh sau sẽ chèn lên lệnh trước (do PC cập nhật nhanh).
Mạch này chắc chắn phải có clock.
Trường hợp 1: không sử dụng pipeline (tạm dịch là đường ống), sau khi khi PC load giá trị PC0 thì sẽ mất một khoảng thời gian để thực hiện lệnh, khoảng thời gian này gọi là trễ. Trong khoảng thời gian này PC ko được thay đổi giá trị. Trong hệ thống đồng bộ, trễ của các mạch tổ hợp giữa 2 flip-flop phải nhỏ hơn chu kì clock.
Trường hợp 2: sử dụng pipeline, để chạy hiệu quả hơn, giữa các stage (Sau Instruction memory, Register File, ALU), người ta dùng register. Với các register này, trễ sẽ nhỏ hơn và mạch chạy nhanh hơn. Trong thiết kế này, tương tự như dây chuyền sản xuất, mỗi lệnh sẽ được thực hiện trong nhiều stage, mỗi stage sẽ thực hiện 1 phần của 1 lênh trong 1 chu kì. http://en.wikipedia.org/wiki/Classic_RISC_pipeline
Khi mô phỏng, tạo clock:
always@(*)
#5 clk <= ~ clk;
Rất sorry cùng các bạn Trong bài vửa post có một lổ hổng về nguyên lý vì nếu các mosfet chay giống như tiếp điểm contactor thì 16 van đóng cắt trên hoạt động OK. Nhưng khổ nỗi nó chì dẫn một chiều như vậy để đáp ứng cả hai tình huống...
Trong bối cảnh toàn cầu hóa giáo dục, ngày càng nhiều học sinh được gia đình chắp cánh để truy cầu kiến thức từ các quốc gia phát triển, đặc biệt là Hoa Kỳ. Từ ước mơ thụ hưởng nền giáo dục chất lượng, không ít học sinh nhìn...
Hoạt động của thế hệ mạch cân bằng trước đây dựa trên nguyên lý so áp giữa 2 string liền kề. Hoạt động cân bằng chỉ kích hoạt khi sự chênh lệch vượt ngưỡng 100mV và ngưng hoạt động khi mức chênh lệch giảm xuống còn 30mV. Bản...
Xem hình minh họa có phần thuyết minh bên trong tiện việc quan sát và đọc thuyết minh. Khi G1 high dòng điện chạy theo các đường màu đen khi G2 high dòng điện chạy theo các đường màu nâu đỏ.
Bổ sung một tính chất củng cố cho tên gọi tụ bay: Trong mạch đề cập chỉ...
Sản phẩm này ghi version 2.0 01-2024 MADE IN CHINA nhưng không thấy thương hiệu hình 1
Do 8 chân G của 8 mosfet được đấu song song thành 2 nhóm nên có cùng biên độ xung kích 12V. Nhưng Q1 và Q2 nằm cuối dãy, chân S cùa chúng có điện áp DC cao đến...
Comment